Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   duda realizando sentencias sql (https://www.clubdelphi.com/foros/showthread.php?t=43944)

ercrizeporta 24-05-2007 15:10:42

duda realizando sentencias sql
 
hola! siempre que he realizdo sentencias sql sobre mi base de datso he creado un query y en el en sql he introducido la sentencia que quería realizar. me gustaría saber si hay alguna forma de realizar una sentencia sin tener que crear un tquery, es decir solo mediante codigo. agradecería respuesta con algún ejemplo de sentencia como por ejemplo "delete from tbdos". muchas gracias!!

lgarcia 24-05-2007 15:53:29

Dudas SQL
 
Hola:

Aunque no especificas con que SGBD trabajas, en el caso especifico de SQL Server 2000 yo trabajo a nivel de Procedimientos Almacenados y lo que hago es ejecutarlo, la ventaja que tiene es que la BD es independiente de la interface con que te comuniques y solamente le tienes que pasar los parametros y se garantiza la integridad de la misma. A continuacion un ejemplo:
Cita:

with Bolsos do
begin
Close;
Parameters.ParamByName('@cliente').Value:= FormEntradaCliente.CBClientes.KeyValue;
Parameters.ParamByName('@fecha1').Value:= Int(FormEntradaCliente.DateTimePicker1.Date);
Parameters.ParamByName('@fecha2').Value:= Int(FormEntradaCliente.DateTimePicker2.Date);
Open;
end;
Donde Bolsos es el nombre del SP, esto es para consultas, si es para las operaciones de insertar, actualizar y eliminar, la sentencia Open se sustituye por
Cita:

Prepared:= True;
Execute;
Saludos
Luis Garcia

ercrizeporta 24-05-2007 16:20:15

gracias, pero no se que es el SP...me lo podrías decir??? trabajo en mysql y lo que me gustaría sería poder bloquear tablas y crear un backup..muchas gracias!!

un saludo!!

Lepe 24-05-2007 16:25:07

Lo que pides, se integra en los lenguajes de 4ª generación, donde allí si, se escribe código sql como si fuera instrucciones del lenguaje (en realidad lo son).

Aunque crear un Query es bastante facil:
Código Delphi [-]
function CreateQuery (const TheSql:string):TQuery;
begin 
  Result := TQuery.Create(nil);
  Result.Transaction := tu componente transaction
  Result.Database := tu componente database;
  Result.sql.text := TheSql;
end;

// para usar la función:
var q : TQuery;
begin 

  q := Createqry('select * from tabla order by micampo');
  try
    q.Open;
    dbgrid1.datasource := q; // más o menos ;)
  finally
     q.Free; // esto es importante, tienes que liberarlo
  end;
end;


// otro uso obviando que pueda producir errrores:
var qry:Tquery;
begin 
  q := Createqry('delete from tabla where codigo = 5');
  q.ExecSql;
  q.Free;
end;

La idea ya la tienes, ahora puedes jugar con ella.

Saludos

ercrizeporta 24-05-2007 16:43:53

muchas gracias!!luego probaré a usarlo, espero ya me valga con esto!!


La franja horaria es GMT +2. Ahora son las 00:47:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi