Asunto: Cómo ejecutar SQL insertar registros con Delphi en Access
Estoy utilizando Borland Delphi 6 para realizar una aplicación de facturación y contabilidad que utiliza como base de datos Microsoft Access (mdb), utilizando el método de conexión por ODBC como indica el siguiente artículo de esta web:
Explica cómo hacerlo con un TTable para insertar y mostrar registros con controles enlazados, pero ¿se pueden insertar registros con una sentencia SQL "insert into"? ¿se pueden ejecutar consultas con sentencias SQL "select"? ¿se puede modificar la estructura de las tablas o crear tablas con "create table" o "alter table?
Publicado:
Mie Dic 16, 2009 7:39 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Cómo ejecutar SQL insertar registros con Delphi en Acces
Anuncios
varios escribió:
Estoy utilizando Borland Delphi 6 para realizar una aplicación de facturación y contabilidad que utiliza como base de datos Microsoft Access (mdb), utilizando el método de conexión por ODBC como indica el siguiente artículo de esta web:
Explica cómo hacerlo con un TTable para insertar y mostrar registros con controles enlazados, pero ¿se pueden insertar registros con una sentencia SQL "insert into"? ¿se pueden ejecutar consultas con sentencias SQL "select"? ¿se puede modificar la estructura de las tablas o crear tablas con "create table" o "alter table?
Sí que puedes ejecutar sentencias SQL desde Delphi para obtener o modificar datos de Access, incluso podrás ejecutar consultas SQL de tipo DDL (definición de datos), es decir, podrás ejecutar consultas del tipo CREATE TABLE o ALTER TABLE y también, por supuesto, consultas DML (manipulación de datos) del tipo INSERT, UPDATE, SELECT.
Para insertar un registro en una tabla mediante SQL desde Delphi conectado por ODBC a Microsoft Access sigue los pasos del manual que indicas y añades un TQuery, lo enlazas con el TDatabase mediante la propiedad "DatabaseName" y puedes hacerlo por código (tiempo de ejecución) o en tiempo de diseño. Lo lógico es hacerlo por código con algo así:
Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('insert into facturas (descripcion) values (:pValor)');
Query1.ParamByName('pValor').DataType := ftString;
Query1.ParamByName('pValor').AsString := 'Prueba inserción con SQL y Delphi en Microsoft Access mdb';
Query1.ExecSQL;
end;
Ultima edición por alonsojpd el Mie Dic 16, 2009 8:16 am, editado 1 vez
Publicado:
Mie Dic 16, 2009 7:44 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Cómo ejecutar SQL insertar registros con Delphi en Acces
Anuncios
Ten en cuenta que para las sentencias de modificación de datos del tipo UPDATE, INSERT, DELETE deberás utilizar "nombreQuery.ExecSQL" y para las de consulta (SELECT) deberás utilizar "nombreQuery.Open".
Por ejemplo, para mostrar determinados registros de la tabla facturas que cumplan una determinada condición (filtro o criterio) puedes utilizar el siguiente código:
Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from factura where cliente like :pValor');
Query1.ParamByName('pValor').DataType := ftString;
Query1.ParamByName('pValor').AsString := '%AjpdSoft%';
Query1.open;
ShowMessage(IntToStr(Query1.RecordCount));
end;
Publicado:
Mie Dic 16, 2009 7:59 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Cómo ejecutar SQL insertar registros con Delphi en Acces
Anuncios
En general cualquier consulta que no devuelva registros (que no sea de tipo SELECT), también las de tipo DDL (CREATE, ALTER, DROP) debes utilizar "ExecSQL". Por ejemplo, para crear una tabla llamada "albaran" por SQL desde Delphi en Access:
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A