Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema al ejecutar un query (https://www.clubdelphi.com/foros/showthread.php?t=73132)

aagrlp640 02-04-2011 08:54:52

Problema al ejecutar un query
 
Hola amigos de la comunidad clubdelphi, soy nuevo en Delphi, me da gusto que existan paginas así donde nos podamos ayudar los unos a los otros, les comento acerca de mi problema.
Mi problema es que al ejecutar un Query me manda el siguiente error:
Cita:

Project Projet1.exe raised exception class EDBEngineError with message ‘Invalid filed name juan’. Process stopped. Use Step or Run to continue.
Eso de “Invalid field name juan” es porque yo pongo juan en un edit, juan es un registro que si existe en la bd.
A continuación pongo mi código:
Código Delphi [-]
procedure TForm1.cmdloginClick(Sender: TObject);
var consulta: string; user: string; 
begin
user:= edit1.Text; //en este edit pongo por ejemplo juan que si existe en la bd
//Creo la consulta
consulta:='SELECT Usuario FROM bdusuarios.db WHERE usuario=' + user; //Este Query es el que me manda error
//Limpio la posible consulta
query1.SQL.Clear;
//Añado la consulta al query
query1.SQL.Add(consulta);
//La ejecuto 
query1.Open;
//Voy al primer registro
query1.First;
//Muestro el resultado también en un showmessage
while not query1.Eof do
begin
showmessage(query1.FieldValues['Usuario']);
query1.next;
end;
end;
De hecho en esa parte de:
Código Delphi [-]
consulta:='SELECT Usuario FROM bdusuarios.db WHERE usuario=' + user;
También le he puesto como aparece abajo y así sí me lo muestra bien
Código Delphi [-]
consulta:='SELECT Usuario FROM bdusuarios.db WHERE usuario=”juan”';
Otro problema que tengo es que cuando quiero mostrar varios campos por ejemplo:
Código Delphi [-]
consulta:='SELECT Usuario, Password FROM bdusuarios.db WHERE usuario=”juan”';
me manda este mensaje:
Cita:

Project Project1.exe raised exception class EDBEngineError with message ‘Invalid use of keyword.
Token: Password
Line Number: 1’. Process stopped. Use Step or Run to continue.
De hecho cuando lo pongo como aparece abajo si me los muestra bien todos
Código Delphi [-]
consulta:='SELECT * FROM bdusuarios.db WHERE usuario=”juan”';

Uso Delphi 7 y para la base de datos uso paradox 7 que viene incluida en delphi, uso el componente TQuery, TDataSource y un TDBGrid para mostrar los resultados.
Sólo tengo una tabla que de campos tiene: usuario, password, tipo_usuario.
Gracias ojala puedan ayudarme con este problema.
Saludos:)

ecfisa 02-04-2011 09:16:58

Hola aagrlp640 y bienvenido al Club Delphi.

Realmente hace muchísimos años que no toco Paradox y lo usé muy superficialmente, pero no recuerdo haber visto nunca que en la consulta se incluya la extensión de la tabla.

Armá la consulta de este modo:
Código Delphi [-]
...
  consulta:='SELECT Usuario, Password FROM bdusuarios WHERE usuario=' + QuotedStr(user);
...

Realizé una prueba con la tabla country.db que viene con Delphi (adecuando los nombres lógicamente) y funciona correcto.

Un saludo.

aagrlp640 02-04-2011 09:42:35

Hola amigo, muchisimas gracias!!!! Eres un genio de verdad, efectivamente así si funciono muy bien.
Fue una respuesta rápida y precisa.
Saludos. :)


La franja horaria es GMT +2. Ahora son las 16:35:48.

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