SoloCodigo
Programación General => C/C++ => C++ Builder => Mensaje iniciado 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
-
CClients->Close();
CClients->SQL->Clear();
CClients->SQL->Add ("SELECT Clientes.Codigo, Clientes.Nombre FROM Clientes WHERE Clientes.Nombre LIKE '%"+Cliente+"%' ");
CClients->Open();
-
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
-
Bienvenido Juanma, siempre es gratificante recibir personas que colaboren :lol: