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)
-   -   Como correr multiples sentencias SQL en un Tquery al hacer un .ExecSQL/.open (https://www.clubdelphi.com/foros/showthread.php?t=8590)

orfeo 26-03-2004 14:54:45

Como correr multiples sentencias SQL en un Tquery al hacer un .ExecSQL/.open
 
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;

Código:

    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 ';'.
Código:

    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í:
Código:

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

Cita:

Empezado por delphi.com.ar
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

Cita:

Empezado por orfeo
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

Cita:

Empezado por delphi.com.ar
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

Cita:

Empezado por orfeo
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!


La franja horaria es GMT +2. Ahora son las 12:35:04.

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