Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   flitro mysql con variable en c++ (https://www.clubdelphi.com/foros/showthread.php?t=72544)

vroa74 24-02-2011 21:42:12

flitro mysql con variable en c++
 
estoy migrando de delphi a builder
estroy tratando de hacer esto
Código Delphi [-]
query1.sql.add('SELECT * FRON NAME');
query1.sql.add('WHERE');
query1.sql.add('(NOMBRE LIKE "%'+EDIT1.TEXT+'%")');
query1.OPEN.

LA VERDADESTOY BUSCANDO LA INFORMACION MAS SIN EMBARGO NO HE PODIDO HACER QUE ESTAS SECCION DE QUERY FUNCEIONE
" query1.sql.add('(NOMBRE LIKE "%'+EDIT1.TEXT+'%")'); "


LES AGRADESCO SI ME PUEDE AYUDAR .....

NO SE COMO PODRIA REEMPLASA O CONSTRUIR ESTO EN C++

Código Delphi [-]
  Query1->Close();
  Query1->SQL->Clear();
  Query1->SQL->Add("Select * from name");
  Query1->SQL->Add("WHERE");
  Query1->SQL->Add("(name.nombre LIKE '%" + "A" + "%')"); // AQUI ES DONDE TENGO EL ERROR, SI COMENTO ESTA LINEA CORRE MAS ESTOY INTERESADO EN EL FILTRO.
  Query1->Open();


Ñuño Martínez 25-02-2011 10:30:43

Voy a suponer (y es mucho suponer) que es un error de compilación. Sin embargo no debería, siempre y cuando hayas inluido la cabecera "string", donde se define la clase "string" que sobrecarga el operador "+" para concatenar.

Por cierto, no uses las etiquetas [delphi]···[/delphi] con código que no sea Object Pascal. Usa [code]···[/code] en su lugar.

lmpadron 21-04-2011 17:52:58

El problema esta en el uso de las comillas simples y dobles, esto es algo horrible pero deberia funcionarte bastante bien.

Código:

String k = '"';
        Query1->SQL->Clear();
        Query1->SQL->Add("SELECT * FROM basededatos.tabla WHERE campo LIKE" + k + "%" + Componente1->Text + "%" + k);
        Query1->Open();


ecfisa 21-04-2011 21:03:34

Hola vroa74.

También podés hacer:
Cita:

#include <string.h> /* Para usar "+" como ya ha dicho el amigo Ñuño */
....

IBQuery1->Close();
IBQuery1->SQL->Clear();
IBQuery1->SQL->Add("SELECT * FROM NAME");
IBQuery1->SQL->Add("WHERE NOMBRE LIKE \'%" + Edit1->Text + "%\'");
IBQuery1->Open();
...

Un saludo.

ecfisa 22-04-2011 00:36:47

Hola.

Después me dí cuenta que me faltó poner otra opción: Usando un parámetro.
Cita:

#include<string.h>
...

IBQuery1->Close();
IBQuery1->SQL->Clear();
IBQuery1->SQL->Add("SELECT * FROM NAME");
IBQuery1->SQL->Add("WHERE NOMBRE LIKE :DATO");
IBQuery1->ParamByName("DATO")->AsString = "%"+Edit1->Text+"%" ;
IBQuery1->Open();
...
Un saludo.


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

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