Sign in Join

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

Mailing lists / lazarus-es / 2015-09

SQLQuery

3 messages · 3 people ·

Reply by email Subscribe to this list Your subscription

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

Héctor Fiandor

Estimados miembros de la lista:

Estoy usando Lazarus para la aplicaci�n y sqlite para las BD.

He usado la facilidad SQLQuery para mostrar un Reporte de una consulta simple, usando en el DataModule el SQLQuery, la Coneccion y la Trnsition, y quiero conocer si tengo que usar la Conecci�n y la Transiti�n para consultas simples y en qu� orden debo cerrarlas cuando termine el Reporte.

Anticip�ndole las gracias,

Ing. H�ctor Fiandor

hfiandor en ceniai.inf.cu

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20150924/782e0f0e/attachment.html>

Reply by email

Claudio Romero
to Héctor Fiandor

Aqui hay un procedimiento de ejemplo, solo le paso el SQL (INSERT, UPDATE, DELETE) y la Ibconeccion y crea todo dinamicamente. Para que lo uses asi, o de guia.
Saludos

procedure EjecutaSql(consulta:string;IBexecSql:TIBConnection);
var SQLQuery1:TSQLQuery;SQLTransaction1:TSQLTransaction;
begin
    try
        SQLQuery1:=TSQLQuery.Create(nil);
        SQLTransaction1:=TSQLTransaction.Create(nil);
        SQLTransaction1.DataBase:=IBexecSql;
        SQLQuery1.UsePrimaryKeyAsKey:=false;
        SQLQuery1.Transaction:=SQLTransaction1;
        //
        SQLQuery1.SQL.add(consulta);
        try
              SQLTransaction1.StartTransaction;
            SQLQuery1.ExecSQL;
            SQLTransaction1.Commit;
        except on e:exception do
               begin
                SQLTransaction1.Rollback;
                mensajeExcepcion('procedure EjecutaSql'+#13+'Error al
ejecutar: '+#13+consulta+#13+e.message);
            end;
        end;
    finally
        SQLTransaction1.free;
        SQLQuery1.free;
    end;
end;

El d�a 24 de septiembre de 2015, 8:47, H�ctor Fiandor <hfiandor en ceniai.inf.cu> escribi�:

Show quoted text 31 lines
Estimados miembros de la lista: Estoy usando Lazarus para la aplicaci�n y sqlite para las BD. He usado la facilidad SQLQuery para mostrar un Reporte de una consulta simple, usando en el DataModule el SQLQuery, la Coneccion y la Trnsition, y quiero conocer si tengo que usar la Conecci�n y la Transiti�n para consultas simples y en qu� orden debo cerrarlas cuando termine el Reporte. Anticip�ndole las gracias, Ing. H�ctor Fiandor hfiandor en ceniai.inf.cu _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

Reply by email

Ismael L. Donis Garcia
to Héctor Fiandor: Estimados miembros de la lista: Estoy usando Lazarus para la aplicaci�n y sqlite para…

Los pasos deben ser:

- Iniciar transacci�n.
- Realizar consulta
- Cerrar transacci�n
- Cerrar consulta

Te paso un ejemplo de preocedimiento p�blico que yo uso, el cual instancio desde los formularios.

procedure Tdm.p_rssc1();
begin
  if trasc1.Active then trasc1.EndTransaction;
  rssc1.Close;
end;
procedure Tdm.p_rssc1(sqlstr: string; blnread: boolean);
begin
  p_rssc1();
  rssc1.Filter:='';
  rssc1.SQL.Clear;
  rssc1.SQL.Text := sqlstr;
  rssc1.ReadOnly := blnread;
  trasc1.StartTransaction;
  rssc1.Open;
end;
procedure Tdm.p_rssc1(sqlstr: string; blnread: boolean; LParam: TStrings;
  LValor: TStrings);
var
  i: Integer;
begin
  p_rssc1();
  rssc1.Filter:='';
  rssc1.SQL.Clear;
  rssc1.SQL.Text := sqlstr;
  rssc1.ReadOnly := blnread;
  for i := 0 to LParam.Count - 1 do begin
   if leftstr(LParam[i], 1) = 'i' then
     rssc1.Params.ParamByName(LParam[i]).AsInteger:=StrToInt(LValor[i])
    else if leftstr(LParam[i], 1) = 'm' then
      rssc1.Params.ParamByName(LParam[i]).AsSmallInt:=StrToInt(LValor[i])
    else if leftstr(LParam[i], 1) = 'd' then
     rssc1.Params.ParamByName(LParam[i]).AsDate:=StrToDate(LValor[i],'yyyy/mm/dd','/')
    else
     rssc1.Params.ParamByName(LParam[i]).AsString:=LValor[i];
  end;
  trasc1.StartTransaction;
  rssc1.Open;
end;

Como te dar�s cuenta es un procedimiento sobrecargado, se ejecutar� en dependencias de los parametros que le pases

Saludos Cordiales
========
| ISMAEL |
========
Only for the small landowners and Cubans companies Website: www.sisconge.byethost15.com
www.sisconge.hol.es

Earlier message 34 lines
----- Original Message ----- From: H�ctor Fiandor To: Spanish version of Lazarus List Sent: Thursday, September 24, 2015 7:47 AM Subject: [Lazarus-es] SQLQuery Estimados miembros de la lista: Estoy usando Lazarus para la aplicaci�n y sqlite para las BD. He usado la facilidad SQLQuery para mostrar un Reporte de una consulta simple, usando en el DataModule el SQLQuery, la Coneccion y la Trnsition, y quiero conocer si tengo que usar la Conecci�n y la Transiti�n para consultas simples y en qu� orden debo cerrarlas cuando termine el Reporte. Anticip�ndole las gracias, Ing. H�ctor Fiandor hfiandor en ceniai.inf.cu ------------------------------------------------------------------------------

Reply by email