Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako pisati upite bez apostrofa?

[es] :: Firebird/Interbase :: Kako pisati upite bez apostrofa?

[ Pregleda: 1193 | Odgovora: 5 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bancika
Branislav Stojkovic
Nis, New York

Član broj: 24844
Poruke: 620
213.244.208.*

ICQ: 84215453
Sajt: www.storm-software.co.yu/..


Profil

icon Kako pisati upite bez apostrofa?19.03.2007. u 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
Ride the rainbow, crack the sky
19.03.2007. u 23:31 

delalt

Član broj: 68360
Poruke: 197
*.teol.net.



Profil

icon Re: Kako pisati upite bez apostrofa?20.03.2007. u 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.
20.03.2007. u 07:49 

bancika
Branislav Stojkovic
Nis, New York

Član broj: 24844
Poruke: 620
*.rcub.bg.ac.yu.

ICQ: 84215453
Sajt: www.storm-software.co.yu/..


Profil

icon Re: Kako pisati upite bez apostrofa?20.03.2007. u 09:59
a da...hvala :)
Ride the rainbow, crack the sky
20.03.2007. u 09:59 

bancika
Branislav Stojkovic
Nis, New York

Član broj: 24844
Poruke: 620
213.244.208.*

ICQ: 84215453
Sajt: www.storm-software.co.yu/..


Profil

icon Re: Kako pisati upite bez apostrofa?20.03.2007. u 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"

Ride the rainbow, crack the sky
20.03.2007. u 23:06 

chachka
Srđan Mijatov
Subotica

Moderator
Član broj: 53780
Poruke: 491
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


Profil

icon Re: Kako pisati upite bez apostrofa?21.03.2007. u 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.
"The best code is no code at all." - Zidar
21.03.2007. u 00:41 

savkic
Igor Savkić

Član broj: 92186
Poruke: 1062
*.smin.sezampro.yu.



Profil

icon Re: Kako pisati upite bez apostrofa?21.03.2007. u 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.
21.03.2007. u 07:48 

[es] :: Firebird/Interbase :: Kako pisati upite bez apostrofa?

[ Pregleda: 1193 | Odgovora: 5 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.