[Lazarus-es] Más dudas

Claudio Romero clauslack en gmail.com
Mar Nov 24 15:55:09 CET 2009


Por ej: con este procedimiento (Ejecutas INSERT, DELETE, u STORED
PROCEDURE, o EXECUTE BLOCK) Usa SQLDB
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;
//puedes llamarlo asi
    sentencia:='EXECUTE PROCEDURE
PAGO_FACTURA('+GclaveFactura+','+DBEtoco.text+','+Gfecha+',1,'+origen+')';
    EjecutaSql(sentencia,IBConnection1);

//En Firebird es asi EXECUTE PROCEDURE PAGO_FACTURA(CLAVE_FACT, TOCO,
FECPAGO, VENPAGO1, ORIGEN)

Saludos




More information about the Lazarus-es mailing list