Hola, disculpen que demore en contestar pero hace d�as no ten�a conexi�n tienen raz�n haciendo un commit se soluciona todo, agrego el trozo de c�digo de la funci�n ya modificada
<code>
//procedimeinto para eliminar registro.
procedure TForm1.EliminaRegistro(reg : String);
begin
with SQLQuery1 do begin
Close;
SQL.Strings[1] := 'DELETE FROM persona WHERE id = ' + reg + ';';
SQL.Strings[2] := 'COMMIT;');
ExecSQL;
Close;
end;
SQLTransaction1.CommitRetaining;
end;
</code>Saludos
El jue, 28-06-2012 a las 16:26 +0000, Jose Antonio. Cuello Principal escribi�: prueba ese mismo c�digo pero con un starttransaction antes y un commit despues del execsql.
Show quoted text 205 lines
deber�a funcionar.
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: 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/
_______________________________________________
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/
