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)
-   -   Consulta con SQL (https://www.clubdelphi.com/foros/showthread.php?t=7149)

davidgaldo 05-02-2004 16:04:12

Consulta con SQL
 
Hola, me gustaría saber con que componentes ADO y si es posible me pusierais un ejemplo de como poder seleccionar filas de una tabla con una sentencia sql y luego borrar las seleccionadas. Creo q es con Query pero no se como se hace. Gracias.

jachguate 05-02-2004 16:37:11

Código:

Select *
  from tabla
 where cliente = 15;

Delete [from] tabla
 where cliente = 15;

El from depende del motor que uses...

Hasta luego.

;)

davidgaldo 05-02-2004 17:07:33

No me he explicado bien,la consulta la sé hacer, el problema es que no se aplicar la consulta al adoquery , y despues no sé como utilizar el adotable para borrar la selección que he hecho.

jachguate 05-02-2004 17:18:00

Pues no trabajo con ado... pero siguiendo la práctica habitual de otros componentes de queries.. me imagino que debe tener una propiedad SQL, donde pones la consulta, luego un método open (esto ya no son suposiciones, pues debe heredar de TDataSet) donde la abris (para verla en un Grid o cualquier otro proceso).

Para borrar toda la selección, yo usaria otro AdoQuery con la sentencia delete y el mismo predicado que el select, por desempeño.. de cualquier forma siempre podes hacer un ciclo:

Código:

AdoQ.First;
while not AdoQ.EOF do
  AdoQ.Delete;

eso si.. si tenes 1,000,000 de registros, esto generará 1,000,000 de llamadas a la base de datos, cada una con una sentencia Delete, saturando tu red y haciendo trabajar sin necesidad al pharser (salvo que sea Oracle). La única sentencia debiera ser 1,000 veces mas rápida en este caso (seguro que en cualquier motor!).

Hasta luego.

;)

__cadetill 05-02-2004 18:10:00

Cita:

Empezado por davidgaldo
No me he explicado bien,la consulta la sé hacer, el problema es que no se aplicar la consulta al adoquery , y despues no sé como utilizar el adotable para borrar la selección que he hecho.

Y porque no borras directamente la selección realizada en la Query???

Código:

adoquery.SQL.Clear;
adoquery.SQL.Add('delete from tabla where condiciones');
adoquery.ExecSQL;

PD: no he trabajado con ADO, pero me imagino que funcionará igual que cualquier otra Query

davidgaldo 05-02-2004 19:12:55

Gracias a todos, amigos.


La franja horaria es GMT +2. Ahora son las 02:06:31.

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