Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2012-06

Eliminar registro en BD SQLite

9 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Maikel Enrique Pernía Matos

Hola, estoy desarrollando desde Lazarus, una app que utiliza SQLite como BD, hasta ahora puedo conectarme con la base de datos e insertar datos en la tabla de forma permanente; pero el problema est� en la posibilidad de eliminar un registro de la tabla.

Agrego el codigo de conexi�n y manejo de la Base de Datos:
<code>
  Un formulario con los siguientes componentes:
   Button1: TButton;
   Datasource1: TDatasource;
   DBEdit1: TDBEdit;
   DBGrid1: TDBGrid;
   DBNavigator1: TDBNavigator;
   SQLite3Connection1: TSQLite3Connection;
   SQLQuery1: TSQLQuery;
   SQLTransaction1: TSQLTransaction;
  //Procedimiento para configurar los componentes y activar la conexi�n:
  procedure TForm1.Button1Click(Sender: TObject);
  begin
    with SQLite3Connection1 do begin
       DatabaseName := '/home/maikel/prueba.alf';
       LoginPrompt  := False;
       Transaction  := SQLTransaction1;
       Connected    := True;
    end;
    with SQLQuery1 do begin
       SQL.Add('SELECT nombre FROM persona');
       Transaction := SQLTransaction1;
       DataBase    := SQLite3Connection1;
       Active      := True;
    end;
    SQLTransaction1.Active  := True;
    Datasource1.DataSet     := SQLQuery1;
    DBGrid1.DataSource      := Datasource1;
    DBNavigator1.DataSource := Datasource1;
    DBEdit1.DataSource      := Datasource1;
    DBEdit1.DataField       := 'nombre';
  end;
  //Procedimeinto para almacenar permanentemente los datos
  //luego de la inserci�n.
  procedure TdmDatos.SQLQuery1AfterPost(DataSet: TDataSet);
  begin
     SQLQuery1.ApplyUpdates();
     SQLQuery1.CommitRetaining;
end;
</code>

---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program.

Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/

Reply by email

Maikel Enrique Pernía Matos

Hola, estoy desarrollando desde Lazarus, una app que utiliza SQLite como BD, hasta ahora puedo conectarme con la base de datos e insertar datos en la tabla de forma permanente; pero el problema est� en la posibilidad de eliminar un registro de la tabla.

Agrego el c�digo de conexi�n y manejo de la Base de Datos:
<code>
  Un formulario con los siguientes componentes:
   Button1: TButton;
   Datasource1: TDatasource;
   DBEdit1: TDBEdit;
   DBGrid1: TDBGrid;
   DBNavigator1: TDBNavigator;
   SQLite3Connection1: TSQLite3Connection;
   SQLQuery1: TSQLQuery;
   SQLTransaction1: TSQLTransaction;
  //Procedimiento para configurar los componentes y activar la conexi�n:
  procedure TForm1.Button1Click(Sender: TObject);
  begin
    with SQLite3Connection1 do begin
       DatabaseName := '/home/maikel/prueba.alf';
       LoginPrompt  := False;
       Transaction  := SQLTransaction1;
       Connected    := True;
    end;
    with SQLQuery1 do begin
       SQL.Add('SELECT nombre FROM persona');
       Transaction := SQLTransaction1;
       DataBase    := SQLite3Connection1;
       Active      := True;
    end;
    SQLTransaction1.Active  := True;
    Datasource1.DataSet     := SQLQuery1;
    DBGrid1.DataSource      := Datasource1;
    DBNavigator1.DataSource := Datasource1;
    DBEdit1.DataSource      := Datasource1;
    DBEdit1.DataField       := 'nombre';
  end;
  //Procedimeinto para almacenar permanentemente los datos
  //luego de la inserci�n.
  procedure TdmDatos.SQLQuery1AfterPost(DataSet: TDataSet);
  begin
     SQLQuery1.ApplyUpdates();
     SQLQuery1.CommitRetaining;
end;
</code>

---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program.

Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/

Reply by email

Jorge M. Martinez Saez
to Maikel Enrique Pernía Matos

El 25-06-2012 9:44, Maikel Enrique Pern�a Matos escribi�:

Show quoted text 73 lines
Hola, estoy desarrollando desde Lazarus, una app que utiliza SQLite como BD, hasta ahora puedo conectarme con la base de datos e insertar datos en la tabla de forma permanente; pero el problema est� en la posibilidad de eliminar un registro de la tabla. Agrego el c�digo de conexi�n y manejo de la Base de Datos: <code> Un formulario con los siguientes componentes: Button1: TButton; Datasource1: TDatasource; DBEdit1: TDBEdit; DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; SQLite3Connection1: TSQLite3Connection; SQLQuery1: TSQLQuery; SQLTransaction1: TSQLTransaction; //Procedimiento para configurar los componentes y activar la conexi�n: procedure TForm1.Button1Click(Sender: TObject); begin with SQLite3Connection1 do begin DatabaseName := '/home/maikel/prueba.alf'; LoginPrompt := False; Transaction := SQLTransaction1; Connected := True; end; with SQLQuery1 do begin SQL.Add('SELECT nombre FROM persona'); Transaction := SQLTransaction1; DataBase := SQLite3Connection1; Active := True; end; SQLTransaction1.Active := True; Datasource1.DataSet := SQLQuery1; DBGrid1.DataSource := Datasource1; DBNavigator1.DataSource := Datasource1; DBEdit1.DataSource := Datasource1; DBEdit1.DataField := 'nombre'; end; //Procedimeinto para almacenar permanentemente los datos //luego de la inserci�n. procedure TdmDatos.SQLQuery1AfterPost(DataSet: TDataSet); begin SQLQuery1.ApplyUpdates(); SQLQuery1.CommitRetaining; end; </code> ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. -- Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/ _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

Hola Maikel:

Cual es el codigo que usas para eliminar los datos?

Has revisado los permisos que el usuario tiene sobre la base? (para eliminar)

Atte

-- Jorge Martinez Saez 9-8817012

Reply by email

Jose Antonio. Cuello Principal
to Jorge M. Martinez Saez

Hola, tengo varias aplicaciones para pocketpc que usan sqlite y el �nico detalle que me encontr� era que al hacer el commit de la transacci�n despues de haber ejecutado el DELETE correspondiente era que me cerraba los querys (SELECTs) que ten�a abiertos.

Quiero decir, que para eliminar un registro simplemente realizo un DELETE en un Query con su execute. Supongo que en un TDataset si se hace un delete y lugo el appliupdates debe funcionar como cualquier otro motor de bases de datos.

Un saludo.

Earlier message 91 lines
----- Mensaje original ----- De: "Jorge M. Martinez Saez" <jorge.martinez.saez en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviados: Lunes, 25 de Junio 2012 17:01:58 Asunto: Re: [Lazarus-es] Eliminar registro en BD SQLite El 25-06-2012 9:44, Maikel Enrique Pern�a Matos escribi�: > Hola, estoy desarrollando desde Lazarus, una app que utiliza SQLite > como BD, hasta ahora puedo conectarme con la base de datos e insertar > datos en la tabla de forma permanente; pero el problema est� en la > posibilidad de eliminar un registro de la tabla. > > Agrego el c�digo de conexi�n y manejo de la Base de Datos: > <code> > Un formulario con los siguientes componentes: > Button1: TButton; > Datasource1: TDatasource; > DBEdit1: TDBEdit; > DBGrid1: TDBGrid; > DBNavigator1: TDBNavigator; > SQLite3Connection1: TSQLite3Connection; > SQLQuery1: TSQLQuery; > SQLTransaction1: TSQLTransaction; > > > //Procedimiento para configurar los componentes y activar la conexi�n: > procedure TForm1.Button1Click(Sender: TObject); > begin > with SQLite3Connection1 do begin > DatabaseName := '/home/maikel/prueba.alf'; > LoginPrompt := False; > Transaction := SQLTransaction1; > Connected := True; > end; > > with SQLQuery1 do begin > SQL.Add('SELECT nombre FROM persona'); > Transaction := SQLTransaction1; > DataBase := SQLite3Connection1; > Active := True; > end; > > SQLTransaction1.Active := True; > Datasource1.DataSet := SQLQuery1; > DBGrid1.DataSource := Datasource1; > DBNavigator1.DataSource := Datasource1; > DBEdit1.DataSource := Datasource1; > DBEdit1.DataField := 'nombre'; > end; > > //Procedimeinto para almacenar permanentemente los datos > //luego de la inserci�n. > procedure TdmDatos.SQLQuery1AfterPost(DataSet: TDataSet); > begin > SQLQuery1.ApplyUpdates(); > SQLQuery1.CommitRetaining; > end; > </code> > > > > ---------------------------------------------------------------- > This message was sent using IMP, the Internet Messaging Program. > > > -- > > Este mensaje le ha llegado mediante el servicio de correo electronico > que ofrece Infomed para respaldar el cumplimiento de las misiones del > Sistema Nacional de Salud. La persona que envia este correo asume el > compromiso de usar el servicio a tales fines y cumplir con las > regulaciones establecidas > > Infomed: http://www.sld.cu/ > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > Hola Maikel: Cual es el codigo que usas para eliminar los datos? Has revisado los permisos que el usuario tiene sobre la base? (para eliminar) Atte -- Jorge Martinez Saez 9-8817012

Reply by email

Maikel Enrique Pernía Matos

Error el mio, no especifique en el mail anterior que intento utilizar el TDBNavigator, para las tareas propias de edici�n (insertar, eliminar, editar y actualizar o refrescar la Tabla), es por eso que no inclu� una sintaxis de eliminaci�n en SQL que estoy casi seguro funcionar�a en el trozo de c�digo envi� a la lista. ahora instal� un paquete que viene con lazarus que agrega el componente "TSqlite3Dataset"; pero en lo poco que he probado no puedo asignarlo en la propiedad "DataSource" de cualquier componente de los "DbCtrls"

Saludos

El lun, 25-06-2012 a las 11:01 -0400, Jorge M. Martinez Saez escribi�: El 25-06-2012 9:44, Maikel Enrique Pern�a Matos escribi�:

Show quoted text 87 lines
> Hola, estoy desarrollando desde Lazarus, una app que utiliza SQLite > como BD, hasta ahora puedo conectarme con la base de datos e insertar > datos en la tabla de forma permanente; pero el problema est� en la > posibilidad de eliminar un registro de la tabla. > > Agrego el c�digo de conexi�n y manejo de la Base de Datos: > <code> > Un formulario con los siguientes componentes: > Button1: TButton; > Datasource1: TDatasource; > DBEdit1: TDBEdit; > DBGrid1: TDBGrid; > DBNavigator1: TDBNavigator; > SQLite3Connection1: TSQLite3Connection; > SQLQuery1: TSQLQuery; > SQLTransaction1: TSQLTransaction; > > > //Procedimiento para configurar los componentes y activar la conexi�n: > procedure TForm1.Button1Click(Sender: TObject); > begin > with SQLite3Connection1 do begin > DatabaseName := '/home/maikel/prueba.alf'; > LoginPrompt := False; > Transaction := SQLTransaction1; > Connected := True; > end; > > with SQLQuery1 do begin > SQL.Add('SELECT nombre FROM persona'); > Transaction := SQLTransaction1; > DataBase := SQLite3Connection1; > Active := True; > end; > > SQLTransaction1.Active := True; > Datasource1.DataSet := SQLQuery1; > DBGrid1.DataSource := Datasource1; > DBNavigator1.DataSource := Datasource1; > DBEdit1.DataSource := Datasource1; > DBEdit1.DataField := 'nombre'; > end; > > //Procedimeinto para almacenar permanentemente los datos > //luego de la inserci�n. > procedure TdmDatos.SQLQuery1AfterPost(DataSet: TDataSet); > begin > SQLQuery1.ApplyUpdates(); > SQLQuery1.CommitRetaining; > end; > </code> > > > > ---------------------------------------------------------------- > This message was sent using IMP, the Internet Messaging Program. > > > -- > > Este mensaje le ha llegado mediante el servicio de correo electronico > que ofrece Infomed para respaldar el cumplimiento de las misiones del > Sistema Nacional de Salud. La persona que envia este correo asume el > compromiso de usar el servicio a tales fines y cumplir con las > regulaciones establecidas > > Infomed: http://www.sld.cu/ > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > Hola Maikel: Cual es el codigo que usas para eliminar los datos? Has revisado los permisos que el usuario tiene sobre la base? (para eliminar) Atte -- Jorge Martinez Saez 9-8817012 _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program.

Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/

Reply by email

Jose Antonio. Cuello Principal
to Maikel Enrique Pernía Matos

Para usar los dbcontrols tienes que enlazarlos, junto con el componente dataset (en tu caso el TSqlite3Dataset), mediante un datasource (componente que est� en la pesta�a "Data Access").

Tanto los componentes como el dataset tienen una propiedad "Datasource" donde asignar el datasource que has a�adido y por el cual se enlanzan.

Un saludo

Earlier message 118 lines
----- Mensaje original ----- De: "Maikel Enrique Pern�a Matos" <reprepoli2mz en infomed.sld.cu> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviados: Lunes, 25 de Junio 2012 21:16:42 Asunto: Re: [Lazarus-es] Eliminar registro en BD SQLite Error el mio, no especifique en el mail anterior que intento utilizar el TDBNavigator, para las tareas propias de edici�n (insertar, eliminar, editar y actualizar o refrescar la Tabla), es por eso que no inclu� una sintaxis de eliminaci�n en SQL que estoy casi seguro funcionar�a en el trozo de c�digo envi� a la lista. ahora instal� un paquete que viene con lazarus que agrega el componente "TSqlite3Dataset"; pero en lo poco que he probado no puedo asignarlo en la propiedad "DataSource" de cualquier componente de los "DbCtrls" Saludos El lun, 25-06-2012 a las 11:01 -0400, Jorge M. Martinez Saez escribi�: El 25-06-2012 9:44, Maikel Enrique Pern�a Matos escribi�: > > Hola, estoy desarrollando desde Lazarus, una app que utiliza > SQLite > como BD, hasta ahora puedo conectarme con la base de datos > e insertar > datos en la tabla de forma permanente; pero el problema > est� en la > posibilidad de eliminar un registro de la tabla. > > > > Agrego el c�digo de conexi�n y manejo de la Base de Datos: > > <code> > > Un formulario con los siguientes componentes: > > Button1: TButton; > > Datasource1: TDatasource; > > DBEdit1: TDBEdit; > > DBGrid1: TDBGrid; > > DBNavigator1: TDBNavigator; > > SQLite3Connection1: TSQLite3Connection; > > SQLQuery1: TSQLQuery; > > SQLTransaction1: TSQLTransaction; > > > > > > //Procedimiento para configurar los componentes y activar la conexi�n: > > procedure TForm1.Button1Click(Sender: TObject); > > begin > > with SQLite3Connection1 do begin > > DatabaseName := '/home/maikel/prueba.alf'; > > LoginPrompt := False; > > Transaction := SQLTransaction1; > > Connected := True; > > end; > > > > with SQLQuery1 do begin > > SQL.Add('SELECT nombre FROM persona'); > > Transaction := SQLTransaction1; > > DataBase := SQLite3Connection1; > > Active := True; > > end; > > > > SQLTransaction1.Active := True; > > Datasource1.DataSet := SQLQuery1; > > DBGrid1.DataSource := Datasource1; > > DBNavigator1.DataSource := Datasource1; > > DBEdit1.DataSource := Datasource1; > > DBEdit1.DataField := 'nombre'; > > end; > > > > //Procedimeinto para almacenar permanentemente los datos > > //luego de la inserci�n. > > procedure TdmDatos.SQLQuery1AfterPost(DataSet: TDataSet); > > begin > > SQLQuery1.ApplyUpdates(); > > SQLQuery1.CommitRetaining; > > end; > > </code> > > > > > > > > ---------------------------------------------------------------- > > This message was sent using IMP, the Internet Messaging Program. > > > > > > -- > > > Este mensaje le ha llegado mediante el servicio de correo > electronico > que ofrece Infomed para respaldar el cumplimiento de > las misiones del > Sistema Nacional de Salud. La persona que envia > este correo asume el > compromiso de usar el servicio a tales fines > y cumplir con las > regulaciones establecidas > > > > Infomed: http://www.sld.cu/ > > > > _______________________________________________ > > Lazarus-es mailing list > > Lazarus-es en lists.lazarus.freepascal.org > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > Hola Maikel: > > Cual es el codigo que usas para eliminar los datos? > > Has revisado los permisos que el usuario tiene sobre la base? (para eliminar) > > Atte > > -- Jorge Martinez Saez 9-8817012 > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. -- Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/

Reply by email

Maikel Enrique Pernía Matos

Jose Antonio, ya hice eso pero a�n cuando hago una eliminaci�n de un registro los cambios no son permanentes, despu�s de cerrar la app y volverla a abrir all� est� el registro eliminado, verifiqu� los permisos que tiene el fichero de la BD y todo esta bien. Por �ltimo hice una rutina para eliminar los registros y el comportamiento es el mismo anexo el c�digo.

<code>
//procedimeinto para eliminar registro.
procedure TForm1.EliminaRegistro(reg : String);
begin
    with SQLQuery1 do begin
       Close;
       SQL.Clear;
       SQL.Add('DELETE FROM persona WHERE id = ' + reg);
       ExecSQL;
       Close;
    end;
end;
</code>

El mar, 26-06-2012 a las 05:50 +0000, Jose Antonio. Cuello Principal escribi�: Para usar los dbcontrols tienes que enlazarlos, junto con el componente dataset (en tu caso el TSqlite3Dataset), mediante un datasource (componente que est� en la pesta�a "Data Access").

Show quoted text 142 lines
Tanto los componentes como el dataset tienen una propiedad "Datasource" donde asignar el datasource que has a�adido y por el cual se enlanzan. Un saludo ----- Mensaje original ----- De: "Maikel Enrique Pern�a Matos" <reprepoli2mz en infomed.sld.cu> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviados: Lunes, 25 de Junio 2012 21:16:42 Asunto: Re: [Lazarus-es] Eliminar registro en BD SQLite Error el mio, no especifique en el mail anterior que intento utilizar el TDBNavigator, para las tareas propias de edici�n (insertar, eliminar, editar y actualizar o refrescar la Tabla), es por eso que no inclu� una sintaxis de eliminaci�n en SQL que estoy casi seguro funcionar�a en el trozo de c�digo envi� a la lista. ahora instal� un paquete que viene con lazarus que agrega el componente "TSqlite3Dataset"; pero en lo poco que he probado no puedo asignarlo en la propiedad "DataSource" de cualquier componente de los "DbCtrls" Saludos El lun, 25-06-2012 a las 11:01 -0400, Jorge M. Martinez Saez escribi�: El 25-06-2012 9:44, Maikel Enrique Pern�a Matos escribi�: > > Hola, estoy desarrollando desde Lazarus, una app que utiliza > SQLite > como BD, hasta ahora puedo conectarme con la base de datos > e insertar > datos en la tabla de forma permanente; pero el problema > est� en la > posibilidad de eliminar un registro de la tabla. > > > > Agrego el c�digo de conexi�n y manejo de la Base de Datos: > > <code> > > Un formulario con los siguientes componentes: > > Button1: TButton; > > Datasource1: TDatasource; > > DBEdit1: TDBEdit; > > DBGrid1: TDBGrid; > > DBNavigator1: TDBNavigator; > > SQLite3Connection1: TSQLite3Connection; > > SQLQuery1: TSQLQuery; > > SQLTransaction1: TSQLTransaction; > > > > > > //Procedimiento para configurar los componentes y activar la conexi�n: > > procedure TForm1.Button1Click(Sender: TObject); > > begin > > with SQLite3Connection1 do begin > > DatabaseName := '/home/maikel/prueba.alf'; > > LoginPrompt := False; > > Transaction := SQLTransaction1; > > Connected := True; > > end; > > > > with SQLQuery1 do begin > > SQL.Add('SELECT nombre FROM persona'); > > Transaction := SQLTransaction1; > > DataBase := SQLite3Connection1; > > Active := True; > > end; > > > > SQLTransaction1.Active := True; > > Datasource1.DataSet := SQLQuery1; > > DBGrid1.DataSource := Datasource1; > > DBNavigator1.DataSource := Datasource1; > > DBEdit1.DataSource := Datasource1; > > DBEdit1.DataField := 'nombre'; > > end; > > > > //Procedimeinto para almacenar permanentemente los datos > > //luego de la inserci�n. > > procedure TdmDatos.SQLQuery1AfterPost(DataSet: TDataSet); > > begin > > SQLQuery1.ApplyUpdates(); > > SQLQuery1.CommitRetaining; > > end; > > </code> > > > > > > > > ---------------------------------------------------------------- > > This message was sent using IMP, the Internet Messaging Program. > > > > > > -- > > > Este mensaje le ha llegado mediante el servicio de correo > electronico > que ofrece Infomed para respaldar el cumplimiento de > las misiones del > Sistema Nacional de Salud. La persona que envia > este correo asume el > compromiso de usar el servicio a tales fines > y cumplir con las > regulaciones establecidas > > > > Infomed: http://www.sld.cu/ > > > > _______________________________________________ > > Lazarus-es mailing list > > Lazarus-es en lists.lazarus.freepascal.org > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > Hola Maikel: > > Cual es el codigo que usas para eliminar los datos? > > Has revisado los permisos que el usuario tiene sobre la base? (para eliminar) > > Atte > > -- Jorge Martinez Saez 9-8817012 > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. -- Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/ _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program.

Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/

Reply by email

Jose Antonio. Cuello Principal
to Maikel Enrique Pernía Matos

prueba ese mismo c�digo pero con un starttransaction antes y un commit despues del execsql.

deber�a funcionar.
Un saludo

Earlier message 184 lines
----- Mensaje original ----- De: "Maikel Enrique Pern�a Matos" <reprepoli2mz en infomed.sld.cu> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviados: Mi�rcoles, 27 de Junio 2012 17:18:00 Asunto: Re: [Lazarus-es] Eliminar registro en BD SQLite Jose Antonio, ya hice eso pero a�n cuando hago una eliminaci�n de un registro los cambios no son permanentes, despu�s de cerrar la app y volverla a abrir all� est� el registro eliminado, verifiqu� los permisos que tiene el fichero de la BD y todo esta bien. Por �ltimo hice una rutina para eliminar los registros y el comportamiento es el mismo anexo el c�digo. <code> //procedimeinto para eliminar registro. procedure TForm1.EliminaRegistro(reg : String); begin with SQLQuery1 do begin Close; SQL.Clear; SQL.Add('DELETE FROM persona WHERE id = ' + reg); ExecSQL; Close; end; end; </code> El mar, 26-06-2012 a las 05:50 +0000, Jose Antonio. Cuello Principal escribi�: Para usar los dbcontrols tienes que enlazarlos, junto con el componente dataset (en tu caso el TSqlite3Dataset), mediante un datasource (componente que est� en la pesta�a "Data Access"). > > Tanto los componentes como el dataset tienen una propiedad > "Datasource" donde asignar el datasource que has a�adido y por el > cual se enlanzan. > > Un saludo > > ----- Mensaje original ----- > De: "Maikel Enrique Pern�a Matos" <reprepoli2mz en infomed.sld.cu> > Para: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Enviados: Lunes, 25 de Junio 2012 21:16:42 > Asunto: Re: [Lazarus-es] Eliminar registro en BD SQLite > > Error el mio, no especifique en el mail anterior que intento > utilizar el TDBNavigator, para las tareas propias de edici�n > (insertar, eliminar, editar y actualizar o refrescar la Tabla), es > por eso que no inclu� una sintaxis de eliminaci�n en SQL que estoy > casi seguro funcionar�a en el trozo de c�digo envi� a la lista. > ahora instal� un paquete que viene con lazarus que agrega el > componente "TSqlite3Dataset"; pero en lo poco que he probado no > puedo asignarlo en la propiedad "DataSource" de cualquier > componente de los "DbCtrls" > > Saludos > > El lun, 25-06-2012 a las 11:01 -0400, Jorge M. Martinez Saez escribi�: > El 25-06-2012 9:44, Maikel Enrique Pern�a Matos escribi�: > > > Hola, estoy desarrollando desde Lazarus, una app que utiliza > > SQLite > como BD, hasta ahora puedo conectarme con la base de datos > > e insertar > datos en la tabla de forma permanente; pero el > problema > est� en la > posibilidad de eliminar un registro de la > tabla. > > > > > > Agrego el c�digo de conexi�n y manejo de la Base de Datos: > > > <code> > > > Un formulario con los siguientes componentes: > > > Button1: TButton; > > > Datasource1: TDatasource; > > > DBEdit1: TDBEdit; > > > DBGrid1: TDBGrid; > > > DBNavigator1: TDBNavigator; > > > SQLite3Connection1: TSQLite3Connection; > > > SQLQuery1: TSQLQuery; > > > SQLTransaction1: TSQLTransaction; > > > > > > > > > //Procedimiento para configurar los componentes y activar la conexi�n: > > > procedure TForm1.Button1Click(Sender: TObject); > > > begin > > > with SQLite3Connection1 do begin > > > DatabaseName := '/home/maikel/prueba.alf'; > > > LoginPrompt := False; > > > Transaction := SQLTransaction1; > > > Connected := True; > > > end; > > > > > > with SQLQuery1 do begin > > > SQL.Add('SELECT nombre FROM persona'); > > > Transaction := SQLTransaction1; > > > DataBase := SQLite3Connection1; > > > Active := True; > > > end; > > > > > > SQLTransaction1.Active := True; > > > Datasource1.DataSet := SQLQuery1; > > > DBGrid1.DataSource := Datasource1; > > > DBNavigator1.DataSource := Datasource1; > > > DBEdit1.DataSource := Datasource1; > > > DBEdit1.DataField := 'nombre'; > > > end; > > > > > > //Procedimeinto para almacenar permanentemente los datos > > > //luego de la inserci�n. > > > procedure TdmDatos.SQLQuery1AfterPost(DataSet: TDataSet); > > > begin > > > SQLQuery1.ApplyUpdates(); > > > SQLQuery1.CommitRetaining; > > > end; > > > </code> > > > > > > > > > > > > ---------------------------------------------------------------- > > > This message was sent using IMP, the Internet Messaging Program. > > > > > > > > > -- > > > > Este mensaje le ha llegado mediante el servicio de correo > > electronico > que ofrece Infomed para respaldar el cumplimiento de > > las misiones del > Sistema Nacional de Salud. La persona que envia > > este correo asume el > compromiso de usar el servicio a tales > fines > y cumplir con las > regulaciones establecidas > > > > > > Infomed: http://www.sld.cu/ > > > > > > _______________________________________________ > > > Lazarus-es mailing list > > > Lazarus-es en lists.lazarus.freepascal.org > > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > > Hola Maikel: > > > > Cual es el codigo que usas para eliminar los datos? > > > > Has revisado los permisos que el usuario tiene sobre la base? > (para eliminar) > > > > Atte > > > > -- Jorge Martinez Saez 9-8817012 > > > > _______________________________________________ > > Lazarus-es mailing list > > Lazarus-es en lists.lazarus.freepascal.org > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > ---------------------------------------------------------------- > This message was sent using IMP, the Internet Messaging Program. > > > -- > > Este mensaje le ha llegado mediante el servicio de correo > electronico que ofrece Infomed para respaldar el cumplimiento de las > misiones del Sistema Nacional de Salud. La persona que envia este > correo asume el compromiso de usar el servicio a tales fines y > cumplir con las regulaciones establecidas > > Infomed: http://www.sld.cu/ > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. -- Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/

Reply by email

Carlos Alberto Caballero Yunis
to Maikel Enrique Pernía Matos: Jose Antonio, ya hice eso pero a�n cuando hago una eliminaci�n de un registro los…

tenes que hacer un commit para confirmar los cambios en tu BD. (o rollback para des-hacerlos).

saludos cordiales.

Maikel Enrique Pern�a Matos wrote 184 lines
Jose Antonio, ya hice eso pero a�n cuando hago una eliminaci�n de un registro los cambios no son permanentes, despu�s de cerrar la app y volverla a abrir all� est� el registro eliminado, verifiqu� los permisos que tiene el fichero de la BD y todo esta bien. Por �ltimo hice una rutina para eliminar los registros y el comportamiento es el mismo anexo el c�digo. <code> //procedimeinto para eliminar registro. procedure TForm1.EliminaRegistro(reg : String); begin with SQLQuery1 do begin Close; SQL.Clear; SQL.Add('DELETE FROM persona WHERE id = ' + reg); ExecSQL; Close; end; end; </code> El mar, 26-06-2012 a las 05:50 +0000, Jose Antonio. Cuello Principal escribi�: Para usar los dbcontrols tienes que enlazarlos, junto con el componente dataset (en tu caso el TSqlite3Dataset), mediante un datasource (componente que est� en la pesta�a "Data Access"). > > Tanto los componentes como el dataset tienen una propiedad > "Datasource" donde asignar el datasource que has a�adido y por el > cual se enlanzan. > > Un saludo > > ----- Mensaje original ----- > De: "Maikel Enrique Pern�a Matos" <reprepoli2mz en infomed.sld.cu> > Para: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Enviados: Lunes, 25 de Junio 2012 21:16:42 > Asunto: Re: [Lazarus-es] Eliminar registro en BD SQLite > > Error el mio, no especifique en el mail anterior que intento > utilizar el TDBNavigator, para las tareas propias de edici�n > (insertar, eliminar, editar y actualizar o refrescar la Tabla), es > por eso que no inclu� una sintaxis de eliminaci�n en SQL que estoy > casi seguro funcionar�a en el trozo de c�digo envi� a la lista. > ahora instal� un paquete que viene con lazarus que agrega el > componente "TSqlite3Dataset"; pero en lo poco que he probado no > puedo asignarlo en la propiedad "DataSource" de cualquier componente > de los "DbCtrls" > > Saludos > > El lun, 25-06-2012 a las 11:01 -0400, Jorge M. Martinez Saez escribi�: > El 25-06-2012 9:44, Maikel Enrique Pern�a Matos escribi�: > > > Hola, estoy desarrollando desde Lazarus, una app que utiliza > > SQLite > como BD, hasta ahora puedo conectarme con la base de datos > > e insertar > datos en la tabla de forma permanente; pero el > problema > est� en la > posibilidad de eliminar un registro de la > tabla. > > > > > > Agrego el c�digo de conexi�n y manejo de la Base de Datos: > > > <code> > > > Un formulario con los siguientes componentes: > > > Button1: TButton; > > > Datasource1: TDatasource; > > > DBEdit1: TDBEdit; > > > DBGrid1: TDBGrid; > > > DBNavigator1: TDBNavigator; > > > SQLite3Connection1: TSQLite3Connection; > > > SQLQuery1: TSQLQuery; > > > SQLTransaction1: TSQLTransaction; > > > > > > > > > //Procedimiento para configurar los componentes y activar la > conexi�n: > > > procedure TForm1.Button1Click(Sender: TObject); > > > begin > > > with SQLite3Connection1 do begin > > > DatabaseName := '/home/maikel/prueba.alf'; > > > LoginPrompt := False; > > > Transaction := SQLTransaction1; > > > Connected := True; > > > end; > > > > > > with SQLQuery1 do begin > > > SQL.Add('SELECT nombre FROM persona'); > > > Transaction := SQLTransaction1; > > > DataBase := SQLite3Connection1; > > > Active := True; > > > end; > > > > > > SQLTransaction1.Active := True; > > > Datasource1.DataSet := SQLQuery1; > > > DBGrid1.DataSource := Datasource1; > > > DBNavigator1.DataSource := Datasource1; > > > DBEdit1.DataSource := Datasource1; > > > DBEdit1.DataField := 'nombre'; > > > end; > > > > > > //Procedimeinto para almacenar permanentemente los datos > > > //luego de la inserci�n. > > > procedure TdmDatos.SQLQuery1AfterPost(DataSet: TDataSet); > > > begin > > > SQLQuery1.ApplyUpdates(); > > > SQLQuery1.CommitRetaining; > > > end; > > > </code> > > > > > > > > > > > > ---------------------------------------------------------------- > > > This message was sent using IMP, the Internet Messaging Program. > > > > > > > > > -- > > > > Este mensaje le ha llegado mediante el servicio de correo > > electronico > que ofrece Infomed para respaldar el cumplimiento de > > las misiones del > Sistema Nacional de Salud. La persona que envia > > este correo asume el > compromiso de usar el servicio a tales fines > > y cumplir con las > regulaciones establecidas > > > > > > Infomed: http://www.sld.cu/ > > > > > > _______________________________________________ > > > Lazarus-es mailing list > > > Lazarus-es en lists.lazarus.freepascal.org > > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > > Hola Maikel: > > > > Cual es el codigo que usas para eliminar los datos? > > > > Has revisado los permisos que el usuario tiene sobre la base? (para > eliminar) > > > > Atte > > > > -- Jorge Martinez Saez 9-8817012 > > > > _______________________________________________ > > Lazarus-es mailing list > > Lazarus-es en lists.lazarus.freepascal.org > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > ---------------------------------------------------------------- > This message was sent using IMP, the Internet Messaging Program. > > > -- > > Este mensaje le ha llegado mediante el servicio de correo electronico > que ofrece Infomed para respaldar el cumplimiento de las misiones del > Sistema Nacional de Salud. La persona que envia este correo asume el > compromiso de usar el servicio a tales fines y cumplir con las > regulaciones establecidas > > Infomed: http://www.sld.cu/ > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. -- Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/
Carlos Alberto Caballero Yunis ------------------------------------

Reply by email