Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-11-2005
davidgaldo davidgaldo is offline
Miembro
 
Registrado: nov 2003
Posts: 220
Poder: 21
davidgaldo Va por buen camino
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??
Responder Con Cita
  #2  
Antiguo 18-11-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Puedes utilizar un TADOQuery, con la propiedad SQL


Edu
Responder Con Cita
  #3  
Antiguo 18-11-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
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 -
__________________
No todo es como parece ser...

Última edición por lucasarts_18 fecha: 18-11-2005 a las 15:50:55. Razón: Correción del Query
Responder Con Cita
  #4  
Antiguo 18-11-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
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;
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 18-11-2005 a las 18:09:58. Razón: Arreglar codigo, Poner ' apostrofe
Responder Con Cita
  #5  
Antiguo 18-11-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por vtdeleon
lucasarts_18, una observacion
Gracias Nuevamente VTDELEON, esto de hacer las cosas sin delphi, sino directamente desde acá...


__________________
No todo es como parece ser...
Responder Con Cita
  #6  
Antiguo 18-11-2005
davidgaldo davidgaldo is offline
Miembro
 
Registrado: nov 2003
Posts: 220
Poder: 21
davidgaldo Va por buen camino
solo me funciona si hago la consulta en el primer add, ti la parto en dos ya no me funciona.
Responder Con Cita
  #7  
Antiguo 18-11-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

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

Hasta Luego -
__________________
No todo es como parece ser...
Responder Con Cita
  #8  
Antiguo 21-11-2005
davidgaldo davidgaldo is offline
Miembro
 
Registrado: nov 2003
Posts: 220
Poder: 21
davidgaldo Va por buen camino
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.

Última edición por davidgaldo fecha: 21-11-2005 a las 10:15:54.
Responder Con Cita
  #9  
Antiguo 21-11-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
El 2005 y el 11 (año y mes) deben estar sin las comillas, ya que son datos numéricos.


Edu
Responder Con Cita
  #10  
Antiguo 21-11-2005
davidgaldo davidgaldo is offline
Miembro
 
Registrado: nov 2003
Posts: 220
Poder: 21
davidgaldo Va por buen camino
sigue sin irme
Responder Con Cita
  #11  
Antiguo 21-11-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
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
Responder Con Cita
  #12  
Antiguo 21-11-2005
davidgaldo davidgaldo is offline
Miembro
 
Registrado: nov 2003
Posts: 220
Poder: 21
davidgaldo Va por buen camino
si pongo solo el año va pero con el and no va.
Responder Con Cita
  #13  
Antiguo 21-11-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
me pasas el código tal y como lo tienes puesto? Esto ya parece un Poltergeist! Qué raro!


Edu
Responder Con Cita
  #14  
Antiguo 21-11-2005
davidgaldo davidgaldo is offline
Miembro
 
Registrado: nov 2003
Posts: 220
Poder: 21
davidgaldo Va por buen camino
adoquery1.close;
adoquery1.SQL.Add('select * from albaranes');
adoquery1.SQL.Add('where year(fecha)=2005 and month(fecha)=11');
adoquery1.open;
Responder Con Cita
  #15  
Antiguo 21-11-2005
Epachsoft Epachsoft is offline
Miembro
 
Registrado: abr 2005
Posts: 167
Poder: 20
Epachsoft Va por buen camino
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.
__________________
Esteban Pacheco
A delphi programming blog

Última edición por Epachsoft fecha: 21-11-2005 a las 17:00:20.
Responder Con Cita
  #16  
Antiguo 21-11-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
David, has comprobado que inicialmente no haya nada en la query.sql?


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

Edu
Responder Con Cita
  #17  
Antiguo 21-11-2005
davidgaldo davidgaldo is offline
Miembro
 
Registrado: nov 2003
Posts: 220
Poder: 21
davidgaldo Va por buen camino
Sí!!, funcionó con tu último código, gracias por todo amigos.

Última edición por davidgaldo fecha: 21-11-2005 a las 17:33:35.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:07:06.


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
Copyright 1996-2007 Club Delphi