SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: aguilot_21 en Miércoles 27 de Julio de 2005, 10:53

Título: Consulta Sql
Publicado por: aguilot_21 en Miércoles 27 de Julio de 2005, 10:53
Buenas,

Tengo un problema con una consulta. Necesito que pasando los primeros caracteres del parametro cliente me retorne todos los clientes que empiecen por esos caracteres.

Ahora lo hago asi, pero solo me funciona con el texto completo:  

CClients->Active = false;
  CClients->Close();
  CClients->SQL->Clear();
  CClients->SQL->Add ("SELECT Clientes.Codigo, Clientes.Nombre FROM Clientes WHERE Clientes.Nombre=:C");
  CClients->Prepare();
  CClients->ParamByName("C")->AsString = Cliente;
  CClients->Open();

Gracias
Título: Re: Consulta Sql
Publicado por: mumo en Miércoles 27 de Julio de 2005, 19:04
CClients->Close();
CClients->SQL->Clear();
CClients->SQL->Add ("SELECT Clientes.Codigo, Clientes.Nombre FROM Clientes WHERE Clientes.Nombre LIKE '%"+Cliente+"%' ");
CClients->Open();
Título: Re: Consulta Sql
Publicado por: juanma en Viernes 29 de Julio de 2005, 15:07
Hola,

Solo hacer una pequeña puntualizacion al mensaje de mumo.

Si busca que comience el campo por el/los caracteres determinados el primer % debes quitarlo, quedando la consulta:

CClients->SQL->Add ("SELECT Codigo, Nombre FROM Clientes WHERE Nombre LIKE '"+Cliente+"%' ");

Tambien decirte que el Like segun que motor de datos SQL uses, pueden variar los comodines e incluso como ocurre en Informix sería:

CClients->SQL->Add ("SELECT Codigo, Nombre FROM Clientes WHERE Nombre MACHES '"+Cliente+"*' ");

Saludos
Juanma
Título: Re: Consulta Sql
Publicado por: JuanK en Viernes 29 de Julio de 2005, 15:34
Bienvenido Juanma, siempre es gratificante recibir personas que colaboren  :lol: