PDA

Ver la Versión Completa : Como correr multiples sentencias SQL en un Tquery al hacer un .ExecSQL/.open


orfeo
26-03-2004, 14:54:45
Hola, creo que el subject lo dice todo, :p
Por si las dudas: quiero correr multiples sentencias SQL en un Tquery.SQL al mismo tiempo, como lo hago en el 'SQL Explorer' indicando el delimitador de sentencias.
Estoy Usando el DBE sobre tablas DBase.

Ahora para enviar multiples sentencias, lo hago de una forma muy incomoda;


sql.Clear;
sql.Add('ALTER TABLE "'+ laTabla.name +'" DROP '+ncCodCarrera);
ExecSQL;
sql.Clear;
sql.Add('ALTER TABLE "'+ laTabla.name +'" DROP '+ncCodMat);
ExecSQL;


me gustaria hacerlo de una sola ves, indicando que el separador de sentencias como ';'.

sql.Clear;
sql.Add('ALTER TABLE "'+ laTabla.name +'" DROP '+ncCodCarrera+';');
sql.Add('ALTER TABLE "'+ laTabla.name +'" DROP '+ncCodMat+';');
ExecSQL;

delphi.com.ar
26-03-2004, 15:08:57
Con Oracle podrías hacer algo así:

Query.Sql.Text := 'BEGIN ' +
'INSERT INTO... ; ' +
'INSERT INTO... ; ' +
'UPDATE.... ; ' +
'END;';
Query.ExecSQL;
Pero creo que no pudedes poner sentencias DML (Data Manipulation Language), solo DDL (Data Definition Language)

orfeo
26-03-2004, 19:09:12
Con Oracle podrías hacer algo así:
Pero creo que no pudedes poner sentencias DML (Data Manipulation Language), solo DDL (Data Definition Language)

Estoy usando SQL del DBE (me olvide de indicarlo, ya lo agrege :p )

de cualquier forma lo voy a probar, y te digo

delphi.com.ar
26-03-2004, 19:32:10
Estoy usando SQL del DBE (me olvide de indicarlo, ya lo agrege :p )
No lo dejas muy claro... ¿Cuál es el motor?

orfeo
27-03-2004, 03:17:44
No lo dejas muy claro... ¿Cuál es el motor?

No se a que te referis con que no lo dejo claro (es verdad que la primera ves me olvide de indicarlo).

El motor es el DBE de delphi 6, dado que estoy accediendo a tablas Dbase (.dbf) con el driver 'dbase' no hay otra cosa entremedio que no sea el Borland Database Engine (BDE).
El trae su propia sintaxis SQL..

jachguate
27-03-2004, 09:58:53
En un TQuery no vas a poder hacerlo... pero si tenes las Rx, creo recordar algo como un TrxSqlScript, que hace lo que pretendes.

Hasta luego.

;)

delphi.com.ar
27-03-2004, 19:55:25
El motor es el DBE de delphi 6, dado que estoy accediendo a tablas Dbase (.dbf) con el driver 'dbase' no hay otra cosa entremedio que no sea el Borland Database Engine (BDE).
Disculpa, no había leído que se trataba de dbf´s... por otro lado, te recomiendo hacer lo que dice Jatchguate

Saludos!