Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   " en SQL (https://www.clubdelphi.com/foros/showthread.php?t=10124)

Jordy 11-05-2004 13:48:06

" en SQL
 
Hola.

Tengo Delphi 7 y Firebird 1.5. Mi problema es que cuando hago una sentencia siempre en los nombres de campos o de tablas tengo que ponerlo entre " " ya que si no lo hago así me da error. Esto tambíen me passa con Interbase.

ejemplo:
Select Campo1, campo2 from Tabla --- me da error de que no conoce Tabla
Select "Campo1","campo2" from "Tabla" ------------- me da correcto

Me passa en DBX, IBX y ADO.

Jordy.

haron 11-05-2004 14:46:52

que cosa mas rara.

a lo mejor es que tiene en cuenta las mayusculas y minusculas.

prueba con

Select "Campo1","campo2" from "tabla"
('t' minuscula)

para ver que pasa

guillotmarc 11-05-2004 14:53:20

Hola.

Efectivamente, es sensible a las mayúsculas/minúsculas. Yo he cogido por costumbre utilizar solo nombres de campo y tabla en mayúsculas.

Saludos.

jachguate 11-05-2004 14:59:47

En Firebird, al igual que en interbase 6, es posible nombrar los objetos con diferentes combinaciones de mayúsculas y minúsculas.

Por ejemplo, podes tener una tabla llamada "TABLA" y otra llamada "Tabla". Sucede lo mismo con los nombres de los campos. Podes tener un campo CAMPO1 y otro Campo1... en fin. Este comportamiento es gobernado por las comillas dobles en el nobmre de los objetos de la BD.

Si una sentencia SQL no incluye comillas, el comportamiento es el "acostumbrado", convirtiendo primero todos los nombres a MAYUSCULAS.

De esta manera, si creas una tabla de la forma

Código SQL [-]
create table tabla (
  campo1   VarChar(50) Primary key,
  campo2   VarChar(50)
);

la tabla se llamará TABLA, y sus campos CAMPO1 y CAMPO2

Pero si la creas de la forma:

Código SQL [-]
create table "tabla" (
  "campo1"   VarChar(50) Primary key,
  "Campo2"   VarChar(50)
);

La tabla, en este caso, se llamará tabla y sus campos campo1 y Campo2.

En las sentencias SQL que envies al servidor, tenes que seguir esta misma regla para ubicar los objetos creados.

Dada mi ignorancia del estándar SQL92 al respecto, quiero resaltar que no solo interbase/firebird implementa este comportamiento. También oracle, a partir de la versión 8 se comporta de la misma manera en este punto... eso me hace sospechar que es un comportamiento estándar.

Hasta luego.

;)

Jordy 19-05-2004 20:22:25

" en SQL
 
Gracias a todos ya que teneis razón. Yo utilizo IBOConsole y al crear una tabla o campo en una tabla lo hace por defecto de poner la " al principio y al final de los nombres. Es lastima ya que me interesa porque para utilizar con grandes datos va perfecto; por eso a partir de ahora tengo que utilizar IB Expert para crear las BD, pero que me da problemas con una tabla de mas de 700.000 registros, y si vas del primero al ultimo (last) se cuelga a los 500.000 registros, cosa que no pasa si utilizas IBOConsole.

Si alguien sabe como puedo arreglar uno de los dos programas
IBOConsole quitrle las comillas
IBExpert poder leer grandes tablas

por favor diganmelo.

Jordy.

jachguate 19-05-2004 21:48:52

Cita:

Empezado por Jordy
IBOConsole quitrle las comillas

Supongo que habrá algo en las opciones de configuración...

Cita:

Empezado por Jordy
IBExpert poder leer grandes tablas

Pero para que queres que la herramienta te baje al cliente una tabla de 700,000 registros??? :confused:

Al igual que con cualquier otro usuario... no veo ninguna útilidad a tener esa cantidad de registros montada en un cliente salvo, claro :cool: que querras sumarlos a mano... :p.

Yo diria que sigue siendo válido eso de acotar bien las consultas, no te parece?

Que debe tener una explicación.. no lo dudo, y que puede mejorarse tampoco, pero creo que no debieras considerar eso como algo determinante para no usar una herramienta. Es como que al carro no le sirva el encendedor (claro, si fumas es muy importante)... pero no podriamos decir que por ello el carro no sirva, no te parece?

fabriciof 20-05-2004 05:28:56

hola yo tengo un problema semejante, tengo un registro lamado HAY

ejm
select * from crop where cpnm='listbox1.items[listbox1.itemindex]' /// sale erro( es decir la tabla en blanco)

select * from crop where cpnm='+'"'+listbox1.items[listbox1.itemindex]+'"'+' ///funciona

esto me tra inconvenientes por que en otrsa palicaciones tengo que escribir las consultas tal cual estan en mi base de datos,como soluciono eso??
gracias

jachguate 20-05-2004 06:58:44

Hola fabriciof.

Te recomiendo la lectura de la guia de estilo (vínculo en mi firma). También que coloques una nueva pregunta en un nuevo hilo.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 16:32:38.

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