Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 5.029 pregleda

Najnovija ↓

Kako pisati upite bez apostrofa? 20.03.2007. u 00:31 · pre 238 meseci #1
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
Potpis
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
Re: Kako pisati upite bez apostrofa? 20.03.2007. u 08:49 · pre 238 meseci #2
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.
Re: Kako pisati upite bez apostrofa? 21.03.2007. u 00:06 · pre 238 meseci #4
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"
Potpis
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
Re: Kako pisati upite bez apostrofa? 21.03.2007. u 01:41 · pre 238 meseci #5
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.
Potpis
"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
Re: Kako pisati upite bez apostrofa? 21.03.2007. u 08:48 · pre 238 meseci #6
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme