Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Como ejecutar un Consulta de SQL desde la app (conectada a la DB a traves de ADO) (https://www.clubdelphi.com/foros/showthread.php?t=59696)

mibandeja 04-09-2008 21:54:12

Como ejecutar un Consulta de SQL desde la app (conectada a la DB a traves de ADO)
 
Estimados.

Estoy creando mi segunda aplicación usando Delphi, en estos momentos estoy generando un program que tiene que ejecutar una consultad de SQL cada X cantidad de tiempo. Puntualmente el problema es que al no tener experiencia nose como utilizar el componente "TADOQuery" para ejecutar la siguiente consulta:

SELECT so.so_id
,so.so_des
,se.se_des
,replace(us.us_login,'TESACOM\','')+'@tesacom.net' EMAIL_DESTINATARIO
,us2.Nombre+' '+us2.Apellido RESUELTO_POR
FROM Solicitud so
,Seguimiento se
,Usuario us
,Usuario us2
WHERE so.so_id=se.so_id
AND se.se_id = (SELECT max(se_id)
FROM Seguimiento se2
WHERE se2.so_id=se.so_id)
AND se.es_id=3 --Resuelto
AND so.so_mail=0
AND so.us_id_solic=us.us_id
AND se.us_id=us2.us_id
ORDER BY 1


Uso Delphi 2007 y ya estoy conectado con la Db (SQL Server).


Saludos y gracias por leer mi consulta.

Caral 04-09-2008 22:00:05

Código Delphi [-]
SELECT so.so_id
,so.so_des
,se.se_des
,replace(us.us_login,'TESACOM\','')+'@tesacom.net' EMAIL_DESTINATARIO
,us2.Nombre+' '+us2.Apellido RESUELTO_POR
FROM Solicitud so
,Seguimiento se
,Usuario us
,Usuario us2
WHERE so.so_id=se.so_id
AND se.se_id = (SELECT max(se_id)
FROM Seguimiento se2
WHERE se2.so_id=se.so_id)
AND se.es_id=3 --Resuelto
AND so.so_mail=0
AND so.us_id_solic=us.us_id
AND se.us_id=us2.us_id
ORDER BY 1

Caral 04-09-2008 22:01:33

Hola
Bienvenido.
Pregunto:
La consulta donde la pones, directamente en el query (osea en el string) o por codigo en el programa?.
Saludos

ContraVeneno 04-09-2008 23:14:16

Código Delphi [-]
with TuADOQuery do begin
 If active then close;
 SQL.Clear;
 SQL.Add('Select T.UnCampo, ''otro ''+T.OtroCampo');
 SQL.Add('From UnaTabla T');
 SQL.Add('Where T.ID = :ID');
 Parameters.ParamByName('ID').Value = UnEdit.Text;
 Open;
 Showmessage('Valor: '+FieldByName('UnCampo').AsString);
// First; 
 //While not EOF do begin
 //Showmessage('Valor: '+FieldByName('UnCampo').AsString);
 // Next;
 //end; //while
 //Close;
end; //with

Eso es un ejemplo de como utilizar un TADOQuery

mibandeja 05-09-2008 14:10:08

Hola caral, gracias por la celeridad en tu respuesta.
sinceramente no estoy seguro donde introducir la consulta, supongo que desde el código del programa, es lo que tenía planeado hacer.
Saludos

Caro 05-09-2008 15:40:00

Cita:

Empezado por mibandeja (Mensaje 312017)
sinceramente no estoy seguro donde introducir la consulta, supongo que desde el código del programa, es lo que tenía planeado hacer.

Si es así entonces debes hacerlo como te indica el amigo Contraveneno, acomodando tu consulta.

Saluditos

mibandeja 05-09-2008 15:59:29

Cita:

Empezado por Caro (Mensaje 312032)
Si es así entonces debes hacerlo como te indica el amigo Contraveneno, acomodando tu consulta.

Saluditos

Estimada Caro,

La otra posiblidad es escribir la consulta desde el SQL Server, guardarla y luego llamarla desde el código del Delphi no es cierto?. Puede que esa variante sea mas sencilla a la hora de programar?. En caso afirmativo, como se puede levantar desde Delphi 2007 una consulta cualquiera generada desde SQL Server?.

Desde ya le agradezco la voluntad y la rapidez con la que ha respondido mi consulta anterior.

A todos les agradezco la ayuda que me estan proporcionando.

Saludos.

ContraVeneno 05-09-2008 16:01:51

Supongo que tendría que ser un procedimiento almacenado (Stored Procedure) y por tanto no utilizarías un TADOQuery sino un TADOStoredProc

Caro 05-09-2008 16:36:36

Hola de nuevo, a parte de lo que te dice el amigo ContraVeneno, supongo que también puedes guardar tu consulta como una vista y cuando quieras recuperar desde delphi lo haces como si fuera una tabla con el AdoQuery inclusive puedes utilizar un AdoTable.

Código Delphi [-]
 with ADOQuery1 do
 begin
  If active then close;  
  SQL.Clear;
  SQL.Add('Select * ');
  SQL.Add('From NombreVista');
  Open;
  Showmessage('Campo1:'+FieldByName('so_id').AsString+' Campo2:'+FieldByName(se_des').AsString);

Saluditos

mibandeja 10-09-2008 15:11:55

Muchas gracias a todos
 
Gracias por la ayuda que me brindaron. He salido adelante con el proyecto.

Saludos y sigan así.


La franja horaria es GMT +2. Ahora son las 06:42:20.

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