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)
-   -   Invalid use of keyword. Token 'any' (https://www.clubdelphi.com/foros/showthread.php?t=7070)

Descendents 02-02-2004 17:03:39

Invalid use of keyword. Token 'any'
 
Me da este error al hacer un select con un where con un campo llamado any.
Invalid use of keyword. Token 'any'

Consulta que da error
select * from stock where any = 2001

Lo que entiendo es que es una palabra reservada.Bueno hasta aqui bien.¿Pero que puedo hacer ahora?

Tengo que entrar unos datos de sql a dbf, y no puedo cambiar el nombre de los campos, por que estas tablas son usados por programas ya hechos desde hace tiempo.Este campo es de una tabla dbf.Cuando cambio el nombre del campo a otro nombre todo correcto.Pero no al ponerle any, y hacer un where en una consulta select relacionada con este campo me da este error.

1.¿Que solucion tengo?
2.¿Hay alguna manera de cambiarle el nombre directamente al campo?Es decir, ¿modificar el nombre del campo de la tabla?.Porque , o que haria, seria modificar el nombre a otro nombre lo primero, luego hacer todas las consultas y todo, y luego volver a poner su nombre de origen.

Gracias
Un saludo

__cadetill 02-02-2004 17:08:29

Prueba a poner el nombre del campo entrecomillado (mira tanto dobles como simples) a ver si te vale

Descendents 02-02-2004 17:24:49

No me funciona me da o el mismo error o type mismatch in expression

Tu te refieres a:

select * from stock where "any" = 2001 o
select * from stock where 'any' = 2001 o
select * from stock where ''any'' = 2001

no?

Lo he probado y me da error de una o de la otra manera

Gracias

¿Lo que dije de cambiar el nombre del campo dentro de la tabla fisicamente, y luego ponerle otra vez el que ya tenia, es posible(por código claro)?

Saludos

Gydba 02-02-2004 17:54:34

Una posible solución sería declarar un alias a la tabla para ver si funciona:
select STK.* from stock STK where STK."any" = 2001
Desde Firebird también sería posible crear una vista referenciando al nombre original de la tabla con otro, claro eso es si utilizás FB pero creo que no es tu caso.

Descendents 02-02-2004 18:06:40

Funciona Gybda

Muchas gracias a todos y a ti especialmente

Saludos

gonza_619 27-09-2010 05:19:13

hola q tal , bueno podrias decir como lo solucionaste, yo tetngo el mismo problema, con un campo, invalid use of keyword token edad= lo puse entre comillas doble y me dice type mismatch in.... con los otros campos no ahi drama, las tablas estan en paradoxx grax

bien esta es la sentecia

query1.sql.text:='select ALUC. count(cod_alucurso) as cant from alucurso ALUC where ALUC."plan"='+inttostr(x);

y me da error en invalid use of keyword token.. count(cod_alucurso) sin esa parte me da bien

pues bien lo solucione sacando ALUC. antes del count gracias

maeyanes 27-09-2010 20:35:01

Hola...

Tu error está en que estás usando mal el count, la forma correcta sería:

Código SQL [-]
select count(ALUC.cod_alucurso) as cant from alucurso ALUC where ALUC.plan = xxxx


Saludos...


La franja horaria es GMT +2. Ahora son las 04:37: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