[Lazarus-es] Eliminar registro en BD SQLite
Carlos Alberto Caballero Yunis
ccaballero en virginialab.com.py
Jue Jun 28 18:34:48 CEST 2012
tenes que hacer un commit para confirmar los cambios en tu BD. (o
rollback para des-hacerlos).
saludos cordiales.
On 06/27/2012 11:18 AM, Maikel Enrique Pernía Matos wrote:
> 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
------------------------------------
More information about the Lazarus-es
mailing list