[ bancika @ 19.03.2007. 23:31 ] @
Instalirao sam firebird i koristim ga sa Delphi-jem preko BDE-a i ODBC drajvera.
Problem je sto mi trazi da sve bude pod apostrofima da bi query prosao, nazivi tabela, polja, generatora i slicno.
Kako sam skapirao, ako je sve pisano UPPERCASE onda moze bez apostrofa ali ni tako mi ne radi, napravio sam tabelu cije ime je uppercase kao i sve polja i nista. Za admin koristim Firebird Maestro i u njemu mi javlja iste greske kada hocu da izvrsim query koji nema apostrofe.
Jel mogu ce da proradi bez apostrofa, na poslu koristim sybase i on radi bez problema

Evo primera
Code:

OVO NE RADI
SELECT * FROM group ORDER_BY group_id
A OVO RADI
SELECT * FROM "group" ORDER_BY "group_id"


Ako je izvodljivo bilo bi cool, jer delphi generise kod bez apostrofa pa ne bih morao da menjam query (ili firebird)

Tnx
[ delalt @ 20.03.2007. 07:49 ] @
Radi to normalno i bez apostrofa, malim ili velikom slovima,
samo, kad za naziv tabele (ili nečeg drugog) koristiš neku od
rezervisanih riječi, onda moraš koristiti apostrofe.
Ti ovdje u svom primjeru za naziv tabele koristiš "group",
što bi trebalo izbjegavati jer se koristi u ...GROUP BY...
za grupisanje podataka.
[ bancika @ 20.03.2007. 09:59 ] @
a da...hvala :)
[ bancika @ 20.03.2007. 23:06 ] @
Hmm...probao sam da promenim naziv u nesto bez veze i dalje me zeza. Prihvata nazive tabela i polja unutar upita samo ako su pod apostrofima. Npr
Code:

ne radi
SELECT * FROM qwerty ORDER BY group_id
radi
SELECT * FROM "qwerty" ORDER BY "group_id"
[ chachka @ 21.03.2007. 00:41 ] @
Kako uopste pravis tabelu?
Ako je pravis uz upotrebu navodnika, a identifikatorima dajes imena malim slovima, poput:
Code:

CREATE TABLE "qwerty" (
  "group_id" ...
);
onda i moras da nastavis da koristis navodnike. (Navodnike cesto stavljaju alati za generisanje strukture iz ER dijagrama.)

I interbase i firebird su case-sensitivni sto se tice identifikatora (imena tabela, kolona, procedura,...) koji su prosledjeni unutar navodnika.
Identifikatori koji se proslede Interbasu (pa i Firebirdu) bez navodnika, se prebacuju u velika slova, dodaju im se navodnici i takvi se dalje upotrebljavaju. Upotreba navodnika znaci da identifikator treba da ostane u obliku kakva su slova upotrebljena.

To znaci da interbase i naredbu:
Code:

CREATE TABLE qwerty (
  group_id ...
);
i naredbu
Code:

CREATE TABLE qWeRtY (
  grOUp_Id ...
);
prevodi u isti oblik:
Code:

CREATE TABLE "QWERTY" (
  "GROUP_ID" ...
);
, a naredbu:
Code:

CREATE TABLE "qwerty" (
  "group_id" ...
);
ostavlja takvu kakva je.

Posto je case senzitivan zaista mu nije isto "QWERTY" i "qwerty".

Problem nastaje vec kod kreiranja tabela, jer se vec tada koriste navodnici (eksplicitno - od strane coveka, ili implicitno - od strane alata).

Digresija: Kod PostgreSQL-a je default prebacivanje u mala slova!

Moj savet je da se apsolutno nikada ne upotrebljavaju navodnici! Tada se identifikatori mogu smatrati case-insensitive-nim sto je daleko ugodnije za rad, portabilnije je, a i po SQL standardu je.
[ savkic @ 21.03.2007. 07:48 ] @
> Instalirao sam firebird i koristim ga sa Delphi-jem preko BDE-a i ODBC drajvera.
> Problem je sto mi trazi da sve bude pod apostrofima da bi query prosao, nazivi tabela, polja, g

Za nazive polja i tabela si već dobio odgovor pa nema potrebe ponavljati. Ako si tek krenuo da radiš onda nema razloga da koristiš BDE, radi sporije i pravi probleme. Uz Delphi ti dolazi IBX, DBX, ima i UIB koji je besplatan a ima i komercijalnih rešenja, bilo šta je bolje od BDE.