Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-08-2012
LuisMiguel LuisMiguel is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 33
Poder: 0
LuisMiguel Va por buen camino
Duda con Consulta C++ y Mysql

Saludos amigos, tengo algunos problemas con una consulta que estoy haciendo desde C++ hacia Mysq
Para comenzar la conexion de C++ a Mysql lo realizo perfectamente, el problema esta cuando quiero obtener unos de los datos desde la BD
Código:
String Nombre = nombre->Text;
   String Proteinas = proteinas->Text;
   String Carbohidratos = carbohidratos->Text;
   String Grasas = grasas->Text;
   String Fibra = fibra->Text;
   //buscar a ver si existe el Grano
   Form3->GuardarPorcentajes->Close();
   Form3->GuardarPorcentajes->SQL->Clear();
   Form3->GuardarPorcentajes->SQL->Add("SELECT granosporcentajes.Nombre FROM granosporcentajes where Nombre=:Nombre");
  Form3->GuardarPorcentajes->Parameters->ParamByName("Nombre")->Value=Nombre;
   Form3->GuardarPorcentajes->Open();
   String NombreEcontrado=Form3->GuardarPorcentajes->FieldByName("idGrano")->Value;
De esta forma me da error
Código:
 Form3->GuardarPorcentajes->SQL->Add("SELECT granosporcentajes.Nombre FROM granosporcentajes where Nombre=:Nombre");
En Access lo hacia como en la linea anterior
Lo cambie para
Código:
Form3->GuardarPorcentajes->SQL->Add("SELECT  granosporcentajes.Nombre FROM granosporcentajes where  Nombre='Nombre');
Y trabaja pero me da error en la siguiente linea
Código:
Form3->GuardarPorcentajes->Parameters->ParamByName("Nombre")->Value=Nombre;
raised exception class edatabaseerror with message 'GuardarPorcentajes:Parameter'Nombre' not found'
Otra cosa es que si para obtener un campo de la BD lo puedo hacer asi como en access
Código:
String NombreEcontrado=Form3->GuardarPorcentajes->FieldByName("idGrano")->Value;
Saludos a todos.
Responder Con Cita
  #2  
Antiguo 12-08-2012
LuisMiguel LuisMiguel is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 33
Poder: 0
LuisMiguel Va por buen camino
Saludos amigos, el problema lo resolvi, no creo que sea la forma mas optima pero al menos trabaja, si alguien me da una mejor sera bienvenida.
Código:
   String Nombre = nombre->Text;
   String Proteinas = proteinas->Text;
   String Carbohidratos = carbohidratos->Text;
   String Grasas = grasas->Text;
   String Fibra = fibra->Text;
   String Nombregrano="'"+ Nombre +"'";
   //buscar a ver si existe el Grano
   Form3->GuardarPorcentajes->Close();
   Form3->GuardarPorcentajes->SQL->Clear();
   String Consulta = "SELECT *  FROM granosporcentajes where granosporcentajes.Nombre="+Nombregrano;
   Form3->GuardarPorcentajes->SQL->Add(Consulta);
   Form3->GuardarPorcentajes->Open();
   String NombreEcontrado=Form3->GuardarPorcentajes->FieldByName("idGrano")->Value;
Primero el nombre que recibo de
Código:
String Nombre = nombre->Text;
lo pongo dentro de dos comillas simples
Código:
 String Nombregrano="'"+ Nombre +"'";
Y elimino la parte de
Código:
 Form3->GuardarPorcentajes->Parameters->ParamByName("Nombre")->Value=Nombre;
Responder Con Cita
  #3  
Antiguo 12-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola LuisMiguel.

Aunque no mencionas los componentes que usas para conectarte, infiero por Parameters que son ADO. Si es así, este código tendría que funcionarte sin problemas:
Código:
{
   TADOQuery *Qry = static_cast<TADOQuery*>(Form3->GuardarPorcentajes);
   ...
   Qry->Close();
   Qry->SQL->Clear();
   Qry->SQL->Add("SELECT * FROM GRANOSPORCENTAJES ");
   Qry->SQL->Add("WHERE NAME= :PGRANO");
   Qry->Parameters->ParamByName("PGRANO")->Value = Nombregrano;
   Qry->Open();
   ...
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 13-08-2012
LuisMiguel LuisMiguel is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 33
Poder: 0
LuisMiguel Va por buen camino
Saludos ecfisa
Los componentes que usé fueron ADO.
De la forma que usted me dice lo probe varias veces y no me funcionó, me da los errores que mencioné al principio.
Gracias por responder
Responder Con Cita
  #5  
Antiguo 13-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola LuisMiguel.

No se que puede estar sucediendo...

De todos modos, dejando de lado la seguridad (Inyección SQL), el código
Código:
  String Nombre = nombre->Text;
  String Nombregrano="'"+ Nombre +"'";
  ...
  String Consulta = "SELECT *  FROM granosporcentajes where granosporcentajes.Nombre="+Nombregrano;
  ...
  ...->SQL->Add(Consulta);
funciona del mismo modo que con parámetros.


Si bién se podría ahorrar código de este modo:
Código:
  ...
  ...->SQL->Text = "SELECT *  FROM granosporcentajes where granosporcentajes.Nombre="  + QuotedStr(nombre->Text);
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 13-08-2012
LuisMiguel LuisMiguel is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 33
Poder: 0
LuisMiguel Va por buen camino
Saludos ecfisa
Gracias por la aclaración, no sabia eso de QuotedStr. En el caso de la seguridad como podría proteger el código contra la Inyección SQL, lo he hecho en php pero en C++ no.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Duda con conexion ODBC a MySQL dmartinezn C++ Builder 8 20-01-2012 18:28:33
Duda con conexión a mySql radenf Conexión con bases de datos 2 06-02-2009 00:58:14
Duda acerca de conexion remota a MySQL diegofhernando MySQL 3 28-08-2007 03:17:53
Duda PHP+PDF+MySQL Romina A. PHP 4 03-08-2007 00:01:02
duda con una consulta LIKE en MySQL enecumene MySQL 6 06-02-2007 21:06:46


La franja horaria es GMT +2. Ahora son las 12:23:16.


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