[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