Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Tquery: capability not supported (https://www.clubdelphi.com/foros/showthread.php?t=2602)

Lepe 30-07-2003 16:50:51

Tquery: capability not supported
 
Hola a todos y Felices vacaciones para el que las esté disfrutando ;) yo no :p

Pues eso, que accediendo a una tabla paradox 7 con BDE y el siguiente codigo:

Código:

with dtm do //datamodule
  begin
    qrylogin.Close;
    qryLogin.ParamByName ('prUsuario').AsString := lowercase(edit1.Text);
    qrylogin.Open; <-- falla
    if qryLogin.Fields[0].IsNull  then
    begin
    ShowMessage(strUsuarioNoExiste);

    end

al abrir la consulta, me peta y me da el error "capability not supported" que ni conozco ni he podido encontrar en la ayuda de delphi.


La SQL que ejecuta es: SELECT user, pwd FROM LOGIN WHERE USER = :prUsuario ;

el sistema es capaz de acceder (mediante otra ventana y un DBgrid) a la tabla login para añadir registros y eliminar.


alguna idea??

Gracias de antemano por vuestro tiempo.

victork_py 30-07-2003 20:18:21

Probalo haciendo Unprepare después del close y Prepare antes del open.
Sería algo así:

qrylogin.Close;
qrylogin.Unprepare; <--- Agregar
qryLogin.ParamByName ('prUsuario').AsString := lowercase(edit1.Text);
qrulogin.Prepare; <-- Agregar
qrylogin.Open;

No sé si esto solucionaría el problema, pero te recomiendo esta prueba porque yo siempre lo hago de esta manera cuando uso parámetros.

andres1569 30-07-2003 21:40:16

Lepe escribió:

Cita:

La SQL que ejecuta es: SELECT user, pwd FROM LOGIN WHERE USER = :prUsuario ;
Quizás el fallo esté en poner smilies dentro de una sentencia SQL. Creo que ningún SGBD los soporta. :D

Lo que sucede es que usas como nombre de un campo una palabra "USER" que es de las palabras reservadas por el standard SQL, de ahí el mensaje de "Capability NOT supported", puesto que usas Paradox y por lo tanto Local SQL. Una posible opción, si estás a tiempo, es cambiar el nombre de ese campo por USUARIO, o algo así, te evitará posteriores quebraderos de cabeza. Si no, deberás encerrar el nombre entre comillas y anteponerle el nombre de la tabla para que el intérprete de SQL Local lo reconozca:

SELECT LOGIN."user", pwd
FROM LOGIN
WHERE LOGIN."USER" = : PrUsuario // en este evito el smilie :)

Ruben_Cu 31-07-2003 00:11:41

Hola Lepe, para que comprendas el origen y como manipular este error visita este link, de la fuente primaria de Delphi;)
http://bdn.borland.com/article/0,1410,25183,00.html
Hay verás la lógica de lo que te escribe Andrés.
Saludos y suerte

Lepe 01-08-2003 16:14:56

Gracias a todos, no habia caido en eso de las palabras reservadas :( eso me pasa por usar el ingles en las aplicaciones :d


La franja horaria es GMT +2. Ahora son las 12:31:04.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi