SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: avefenix1810 en Lunes 29 de Agosto de 2011, 21:33

Título: Problema al usar un Query
Publicado por: avefenix1810 en Lunes 29 de Agosto de 2011, 21:33
Hola a todos

Estoy haciendo una consulta y para eso estoy usando un TQuery. Hasta ahora tengo esto:

void __fastcall TForm1::Button4Click(TObject *Sender)
{
   AnsiString laConsulta;
   laConsulta = "DELETE FROM tsolicitantes";

   // SE BORRA LA PRIMER FILA DE LA TABLA
   laConsulta = laConsulta + "WHERE Id_Solicitantes = '1'";

   qPrimario->Close();
   qPrimario->SQL->Clear();
   qPrimario->SQL->Add(laConsulta);     // hasta acá todo bien
   qPrimario->ExecSQL();                     // aparentemente acá se produce el problema y no se como solucionarlo

   MessageDlg("Los datos se Borraron exitosamente", mtInformation, TMsgDlgButtons() << mbOK, 0);

}

Me arroja el siguiente cuadro de dialogo:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to near 'Id_Solicitantes = '1''

Donde Id_Solicitantes es la clave principal de la tabla autoincremental y no nula.

Me pueden ayudar por favor...  :gracias:
Título: Re:Problema al usar un Query
Publicado por: softevolutions en Sábado 15 de Octubre de 2011, 19:12
El error lo tienes al concatenar la consulta, ya que no dejas un espacio en blanco al concatenar el WHERE.

Si haces un showmessage de la cadena lo verás mejor.



Código: C++
  1. void __fastcall TForm1::Button4Click(TObject *Sender)
  2. {
  3.    AnsiString laConsulta;
  4.    laConsulta = "DELETE FROM tsolicitantes<espacio en blanco>";
  5.  
  6.    // SE BORRA LA PRIMER FILA DE LA TABLA
  7.    laConsulta = laConsulta + "WHERE Id_Solicitantes = '1'";
  8.  
  9.    qPrimario->Close();
  10.    qPrimario->SQL->Clear();
  11.    qPrimario->SQL->Add(laConsulta);     // hasta acá todo bien
  12.    qPrimario->ExecSQL();                     // aparentemente acá se produce el problema y no se como solucionarlo
  13.  
  14.    MessageDlg("Los datos se Borraron exitosamente", mtInformation, TMsgDlgButtons() << mbOK, 0);
  15.  
  16. }
  17.  
  18.