![]() |
¿ Alias obligatorios en Select ?
Hola. Posteo una consulta bastante simple, hace poco que estoy trabajando con Firebird 3 y me encuentro con lo siguiente, al hacer un consulta simple a una base de datos:
Si utilizo esta sentencia de pruebas, obtengo el error de "columna desconocida" (unknown column) tanto desde Lazarus como desde Flamerobin o incluso IBExpert: Select * From ENVIADOS Where turno_id > 100 Order by turno_id Para que funcione, tengo que escribirla así: Select * From ENVIADOS Where enviados."turno_id" > 100 Order by enviados."turno_id" O sea que me está obligando a colocar de forma obligatoria el nombre de la tabla ENVIADOS en los nombres de campo. Recuerdo que antes no era necesario, sólo usaba eso cuando tenía un SELECT que se aplicaba a más de una tabla...¿ es alguna particularidad de Firebird 3 ? ¿ Se puede configurar para evitar eso ?. Es una consulta sobre una simple tabla. Tengo componentes como la fantástica grilla RxDbGrid que si activo el orden al hacer clic en el títulos de una columna muestra el mismo error "unknown column", como que usa el nombre de campo directamente sin colocarle el nombre de la tabla antes. Me estoy perdiendo de algo. :confused: |
Así, sin verlo, diría que has creado la base de datos con los nombres de campos entrecomillados, algo así:
Si has hecho eso, entonces tendrás que referirte a los campos exactamente de cómo lo has escrito: "Id", "Nombre", etc. Yo siempre lo creo así:
|
Gracias por responder Casimiro. Efectivamente, al revisar la sentencia SQL de definición (DDL), veo que los nombres de campò están entrecomillados :eek: .Desconozco cómo ocurrió esto, desde la lista de campos en las tablas usando IBExpert o Flamerobin los veía sin comillas, lo mismo dentro de Lazarus. Ya volví a crear la tabla sin las comillas, aprovechando las definicioes del DDL (es una base de datos de prueba, sin contenido más que uno o dos registros de prueba por tabla).
Sigo sin entender en que momento se crearon los campos de TODAS las tablas con comillas. :eek: Saludos cordiales y gracias. |
A propósito, por si alguien no lo conoce, aquí hay un excelente blog dedicado a FIREBIRD con mucho material, todo en español.
https://firebird21.wordpress.com/ |
Cita:
Saludos amigo :) |
Gracias Casimiro por la aclaración. Sabía que tenía algo mal en mi Base de Datos, pero no le había prestado atención a las comillas. Resulta que por ahorrar tiempo convertí un archivo de access a firebird 3 con un programa llamado "DbConvert for MS Access & Firebird" y en las tablas que pasé todas aparecieron con comillas dobles. Las tablas que ya tenía creadas en Firebird desde cero no tienen comillas, pero en el IBExpert se manejaban bien tanto con comillas como sin ellas.
|
Claro, es que para "curarse en salud" esos programas los pasan entrecomillados porque con access puedes crear campos incluso con espacios, ejemplo: "Codigo Cliente", y es por lo que lo pasan todo con comillas y se acabó. Así que luego hay que estar recordando los nombres exactos de cómo se crearon y poniendo las comillas.
|
La franja horaria es GMT +2. Ahora son las 21:19:56. |
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