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

Kako pisati upite bez apostrofa?

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

[ Pregleda: 4069 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
213.244.208.*

Sajt: www.diy-fever.com


+1 Profil

icon Kako pisati upite bez apostrofa?19.03.2007. u 23:31 - pre 207 meseci
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

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

delalt

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



Profil

icon Re: Kako pisati upite bez apostrofa?20.03.2007. u 07:49 - pre 207 meseci
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.
 
Odgovor na temu

bancika
Branislav Stojkovic

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

Sajt: www.diy-fever.com


+1 Profil

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

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
213.244.208.*

Sajt: www.diy-fever.com


+1 Profil

icon Re: Kako pisati upite bez apostrofa?20.03.2007. u 23:06 - pre 207 meseci
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

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Kako pisati upite bez apostrofa?21.03.2007. u 00:41 - pre 207 meseci
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 (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

savkic
Igor Savkić

Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako pisati upite bez apostrofa?21.03.2007. u 07:48 - pre 207 meseci
> 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.
 
Odgovor na temu

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

[ Pregleda: 4069 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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