Delphi - Consulta con ADO

   
Vista:

Consulta con ADO

Publicado por Francisco (58 intervenciones) el 01/02/2009 00:34:59
Hola a todos, soy nuevo en delphi y mysql, y utilizo componentes ado, lo que no se hacer es una consulta, mandandole parametros, alguien me podrias ayudar?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta con ADO

Publicado por Eva (484 intervenciones) el 01/02/2009 23:32:39
Busca en estas direcciones sobre SQL

http://www.asptutor.com/sql/
http://www.aspfacil.com/tutsql/
http://programacion.com/tutorial/sql/
http://www.aulaclic.es/sql/f_sql.htm

Un ejemplo

sNombNvo := Trim(AnsiUpperCase(EditNombre.Text));
sApelNvo := Trim(AnsiUpperCase(EditApellidos.Text));
IBDSAlumBus.Close;
IBDSAlumBus.SelectSQL.Text := 'select * from ALUMNOS where UPPER(NOMBRE) = :NOMBNUEVO and UPPER(APELLIDOS) = :APELNUEVO';
IBDSAlumBus.ParamByName('NOMBNUEVO').AsString := sNombNvo;
IBDSAlumBus.ParamByName('APELNUEVO').AsString := sApelNvo;
IBDSAlumBus.Open;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta con ADO

Publicado por Francisco (58 intervenciones) el 02/02/2009 01:54:13
Muchas gracias Eva! No lo probe aun pero seguramente funciona. Besos cuidate
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

sigue el problema!!!

Publicado por Francisco (58 intervenciones) el 02/02/2009 04:58:48
Hola de nuevo, no puede solucionar de la manera que propuso Eva, esto es lo que estoy haciendo: "chistorial" es un componente ADOQuery, pero es como que no me lo esta tomando, no se por que, tampoco se mucho sobre ADO, con las tablas no hay drama. Alguien tiene idea del por que? Saludos

modulo.chistorial.SQL.Clear;
modulo.chistorial.SQL.Add('select * from historial');
modulo.chistorial.SQL.Add('where Cliente=:ape and Pago="Cta Corriente"');
modulo.chistorial.ParamByName('ape').AsString:=combobox1.Text;
modulo.chistorial.active := false;
modulo.chistorial.active := true;
dbgrid1.DataSource:=modulo.fchistorial;

y este es el error: [Error] fconsignado.pas(58): Undeclared identifier: 'ParamByName'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sigue el problema!!!

Publicado por juancho (193 intervenciones) el 02/02/2009 11:14:36
Pero atende lo que dice tu error, te lo esta marcando en otro componente no en el componente que nos estas mostrando por lo demas esta bien como lo haces, un poco desordenado, pero asi debe de funcionar y como lo dice eva tambien funciona perfecto, tu error te lo marca en otro componente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sigue el problema!!!

Publicado por Francisco (58 intervenciones) el 02/02/2009 15:02:25
Hola Juan, antes que nada agradezco tu aporte, te digo que si es el componente, no me lo esta reconociendo como ADOQuery, aunque este definido como tal, me doy cuenta porque al escribir un punto (.) después del componente me despliega la lista de funciones y propiedades del mismo y no incluye en la lista ni el ParamByName, ni el SelectSQL, ni el SQLAdd, yo se los escribí de prepo, pero algo está mal, porque no me lo toma, le faltara alguna definición al componente ADO? Alguna sugerencia? Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sigue el problema!!!

Publicado por E.T. (1106 intervenciones) el 02/02/2009 17:40:05
Solo es cuestion de buscarle un poco, si bien lo que te puso Eva está bien, pues casi todos los componentes usan paramByName, en este caso ADO usa "parameters"

ADOQuery1.Parameters.Items[0].Value := '%'+Edit1.Text+'%';

Quedando de la siguiente forma

modulo.chistorial.SQL.Clear;
modulo.chistorial.SQL.Add('select * from historial');
modulo.chistorial.SQL.Add('where Cliente=:ape and Pago="Cta Corriente"');
modulo.chistorial.Parameters.Items[0].Value:=combobox1.Text;
modulo.chistorial.active := false;
modulo.chistorial.active := true;
dbgrid1.DataSource:=modulo.fchistorial;

Aunque no se si esto es en todas las versiones de ADO, pero en la que tengo es así
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sigue el problema!!!

Publicado por Francisco (58 intervenciones) el 02/02/2009 19:30:07
Excelente! Funciona a la perfeccion, no es la primera vez que me mandas la posta E.T., les estoy muy agradecido a todos los que siempre aportan. Un Abrazo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar