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 sql en adodataset (https://www.clubdelphi.com/foros/showthread.php?t=27357)

davidgaldo 18-11-2005 09:34:38

consulta sql en adodataset
 
Hola estoy creando una aplicación con delphi7 y utilizando el componente Tadodataset para hacer una consulta, mi problema es que en la propiedad commandtext al meter la consulta me da un error al compilar que me dice que el nº de caracteres permitidos no debe exceder de 255, como puedo hacer una consulta de más caracteres??

epuigdef 18-11-2005 12:06:59

Puedes utilizar un TADOQuery, con la propiedad SQL


Edu

lucasarts_18 18-11-2005 14:43:02

Hola

Algo así...

Código Delphi [-]
 
  adoquery.add(select campo1,campo3,campoN..);
  adoquery.add(from tabla);
  adoquery.open;

En definitiva, puedes separar la instrucción como sale mas arriba.

Hasta Luego -

vtdeleon 18-11-2005 14:47:11

Saludos
lucasarts_18, una observacion .Sql:
Código Delphi [-]
 adoquery.Sql.add('select * from campo1,campo2,');
 adoquery.Sql.add('campo3,campoN');
 adoquery.Sql.add('from tabla');
 adoquery.Sql.open;
:)

lucasarts_18 18-11-2005 15:49:09

Cita:

Empezado por vtdeleon
lucasarts_18, una observacion

Gracias Nuevamente VTDELEON, esto de hacer las cosas sin delphi, sino directamente desde acá...:(:)



davidgaldo 18-11-2005 17:58:00

solo me funciona si hago la consulta en el primer add, ti la parto en dos ya no me funciona.

lucasarts_18 18-11-2005 19:17:29

Hola:

Pone el código para ver en que está fallando.....

Hasta Luego -

davidgaldo 21-11-2005 10:12:36

adoquery1.close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from albaranes');
adoquery1.SQL.Add('where year(fecha)=''2005'' and month(fecha)=''11''');
adoquery1.open;

Aquí teneis el código, a ver si me podeis hechar una mano.

epuigdef 21-11-2005 10:30:37

El 2005 y el 11 (año y mes) deben estar sin las comillas, ya que son datos numéricos.


Edu

davidgaldo 21-11-2005 11:26:42

sigue sin irme

epuigdef 21-11-2005 11:36:59

prueba esto:


Código Delphi [-]
ADOQuery1.sql.text := 'select * from albaranes where format(fecha, '''yyyy''')=:paramanyo and format(fecha, '''MM''')=:parammes';
ADOQuery1.parameters.paramByName('paramanyo').Value := 2005
ADOQuery1.parameters.paramByName('parammes').Value := 11
ADOQuery1.open;
Edu

davidgaldo 21-11-2005 11:45:15

si pongo solo el año va pero con el and no va.

epuigdef 21-11-2005 11:47:19

me pasas el código tal y como lo tienes puesto? Esto ya parece un Poltergeist! Qué raro!


Edu

davidgaldo 21-11-2005 11:51:31

adoquery1.close;
adoquery1.SQL.Add('select * from albaranes');
adoquery1.SQL.Add('where year(fecha)=2005 and month(fecha)=11');
adoquery1.open;

Epachsoft 21-11-2005 16:57:20

Hola,

Usualmente yo lo hago asi. Disculpen la sitnaxis va a pura memoria.

Var
S : TStringList;

begin
S:= TStringList.Create;
try
S.Clear;
s.add('select * from albaranes');
s.add('from albaranes');
s.add('where year(fecha)=:year and month(fecha)=:month');
adodataset.CommandText:=S.Text;
adodataset.Parameters.ParseSQL(S.text,true);
adodataset.Parameters.ParamByName('year').value:=2005;
adodataset.parameters.parambyname('month').value:=11;
adodataset.Open;
try
// haga algo
finally
adodataset.close;
end;
finally
S.Free;
end;

Si esta usando un adoquery, yo creo que aun agregando el texto al SQL tstring, el no detecta los parametros en runtime a menos que se llame el parsesql.

Si no va a usar parametros, es mejroq que use un Format y agregue los valores de fecha como %s.

epuigdef 21-11-2005 17:10:39

David, has comprobado que inicialmente no haya nada en la query.sql?


Empieza con query.sql.clear después de cerrarla.

Edu

davidgaldo 21-11-2005 17:24:53

Sí!!, funcionó con tu último código, gracias por todo amigos.


La franja horaria es GMT +2. Ahora son las 23:24:01.

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