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

NULL polja u bazi i Object Properties

[es] :: Pascal / Delphi / Kylix :: NULL polja u bazi i Object Properties

Strane: 1 2

[ Pregleda: 3241 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

prginfo
NS

Član broj: 174814
Poruke: 133
*.ADSL.neobee.net.



+1 Profil

icon NULL polja u bazi i Object Properties14.03.2009. u 10:51 - pre 184 meseci
Koristim D2007 i FB bazu.

Da li postoji mogucnost da se prilikom pokretanja maske iscita struktura neke tabele iz baze i na osnovu toga da se odredjuju odredjena svojstva objekata.

NPR. Ako je u tabeli polje NOT NULL, da TDBEdit koji je vezan za to polje ima sledece svojstvo DBEdit1.Color:=clRed;

Ako postoji mogucnost, kako to da uradim i da li postoje neke restrikcije.

Hvala.
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: NULL polja u bazi i Object Properties14.03.2009. u 12:15 - pre 184 meseci
Naravno :-)

select r.rdb$field_name,
t.rdb$type_name,
f.rdb$field_length,
r.rdb$null_flag,
f.rdb$validation_source

from rdb$relation_fields r, rdb$types t, rdb$fields f

where r.rdb$relation_name='EMPLOYEE' and
f.rdb$field_name=r.rdb$field_source and
t.rdb$field_name='RDB$FIELD_TYPE' and
f.rdb$field_type=t.rdb$type;

if SQL.FieldByName('RDB$NULL_FLAG').IsNull then
DBEdit1.Color := clRed;
F
 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.ADSL.neobee.net.



+1 Profil

icon Re: NULL polja u bazi i Object Properties14.03.2009. u 12:24 - pre 184 meseci
A u koji deo koda ovo da stavim. Da li da postavim neku komponentu Query ili slicno. Kako da mi ovaj deo radi prilikom iscrtavanje maske (OnShow ili OnCreate npr.)?

Hvala
 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.ADSL.neobee.net.



+1 Profil

icon Re: NULL polja u bazi i Object Properties14.03.2009. u 12:29 - pre 184 meseci
I jos nesto. Kako da kazem sledece:

Izaberi sve Edite na nekom panelu, i za sve koji su u bazi NULL stavi color Red, pa onda else color White.

Verovatno nekom petljom

for I:=0 to Panel1.Edit - 1 do
begin
end;

Hvala jos jednom.
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: NULL polja u bazi i Object Properties15.03.2009. u 17:54 - pre 184 meseci
Da, stavi jedan Query na formu i stavi mu taj upit.

A za sve edite u panelu napravi ovako nešto:

iz querya izvuci pomoću onog upita sve nazive polja koja imaju null vrijednost (stavi u where dio uvjet da je null) i onda ovako nekako:

query.First;
while not query.eof do
begin
for i := 0 to ComponentCount - 1 do
begin
if Components*i* is TDBEdit then
begin
if TDBEdit(Components*i*).DataField = FieldByName('Naziv_polja').AsString then
TDBEdit(Components*i*).Color := clRed else
TDBEdit(Components*i*).Color := clWhite;
end;
end;
Next;
end;

Može i "pametnije", ali i ovako će ti biti ok :-)

Nadam se da si skužio, ako ne, viči :-)

p.s. kada sam objavio post, vidim da mi ne prikazuje uglate zagrade, ali mislim da ćeš skužiti di dođu (staviti ću *)... :-)
F
 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.ADSL.neobee.net.



+1 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 09:19 - pre 184 meseci
Napravi mi break na delu

FieldByName

greska je undeclared identifier.

U SQL-u sam naravno promenio ime baze sa EMPLOYEE na MOJABAZA, kako se i zove baza na kojoj ovo isprobavam.

F1
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 09:36 - pre 184 meseci
Query.FieldByName('POLJE').AsString;

Mislio sam da ćeš znati da treba Query prije :-)
F
 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.ADSL.neobee.net.



+1 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 09:48 - pre 184 meseci
Izvini, moja greska. Ubacio sam i sada mi kompajlira i pokrece normalno, samo sto se nista ne desava, tj. da bih isprobao, stavio sam sve TDBEdite u sivu boju.
Kada pokrenem program, ostaje mi siva boja.

?
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 11:09 - pre 184 meseci
Napiši ovdje kod.

I tamo di je NExt isto napiši Query.Next
F
 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.ADSL.neobee.net.



+1 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 11:43 - pre 184 meseci
Hvala jos jednom, ali i dalje se nista ne menja.

Stavio sam:

if TDBEdit (Components).DataField = qBOJAPOLJA.FieldByName('RDB$NULL_FLAG').IsNull then
TDBEdit(Components).Color := clRed else
TDBEdit(Components).Color := clWhite;

Javlja mi Incompatible types 'WideString' and 'Boolean'

Probao sa da dodam i =True iza .IsNull ali i dalje prijavljuje gresku.

?
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 11:53 - pre 184 meseci
Ma krivo si napravio. U select query-a stavi samo select r.rdb$field_name
a u where dio dodaj where r.rdb$null_flag is null

kužiš?

tebaš izvaditi NAZIVE POLJA di je null_flag

i onda u petlju stavi

:= Query.FieldByName('NAZIV_POLJA').AsString



F
 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.ADSL.neobee.net.



+1 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 12:23 - pre 184 meseci
Ja sam kod queryja u SQL stavio sledece:

Code:

select r.rdb$field_name, 
t.rdb$type_name,
f.rdb$field_length,
r.rdb$null_flag,
f.rdb$validation_source 

from rdb$relation_fields r, rdb$types t, rdb$fields f 

where r.rdb$relation_name='MOJA BAZA' and 
f.rdb$field_name=r.rdb$field_source and 
t.rdb$field_name='RDB$FIELD_TYPE' and 
f.rdb$field_type=t.rdb$type;

a onda OnFormShow sledece:

var
 i:Integer;
 begin
  qBOJAPOLJA.Close;
  qBOJAPOLJA.Prepare;
  qBOJAPOLJA.Open;
  while not qBOJAPOLJA.Eof do
   begin
     for i := 0 to ComponentCount - 1 do
      begin
        if Components[i] is TDBEdit then
         begin
           if TDBEdit (Components[i]).DataField = qBOJAPOLJA.FieldByName('NAZIV_POLJA').IsNull then
           TDBEdit(Components[i]).Color := clRed else
           TDBEdit(Components[i]).Color := clWhite;
         end;
      end;
     qBOJAPOLJA.Next;
   end;


Da li u where deo da dodam i

r.rdb$null_flag=NULL

?

EDIT - savkic: Koristi code tagove za ispisivanje koda, lakše je pratiti.

[Ovu poruku je menjao savkic dana 16.03.2009. u 13:49 GMT+1]
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 12:39 - pre 184 meseci
Skoro pa ti je ok :-)

da, u where dio sql upita dodaj where r.rdb$null_flag IS NULL

i pazi, u petlji promijeni ovo:

qBOJAPOLJA.FieldByName('NAZIV_POLJA').IsNull then

u ovo:

qBOJAPOLJA.FieldByName('NAZIV_POLJA').AsString then

Moraš paziti kako radiš provjere, jer u izrazu

if TDBEdit (Components).DataField = qBOJAPOLJA.FieldByName('NAZIV_POLJA').IsNull then

moraš za .DataField dati naziv polja, a ti mu tu stavljaš .IsNull.

Ispravi to i moralo bi raditi.

Ako ne, javi.
F
 
Odgovor na temu

rambo
Dejan Petković
Beograd

Član broj: 6095
Poruke: 190
*.eunet.yu.



+6 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 12:53 - pre 184 meseci
Svo vreme grešiš kod dela koda koji prolazi kroz tvoje komponente na formi.

Zameni deo koda

Code:

if Components is TDBEdit then

sa
Code:

if Components[i] is TDBEdit then

i posle toga svugde gde ti se pominje Components zameni sa Components[ i ].

Inače, metod koji ti je izložio captPicard je jedan od više mogućih i nije baš najsrećnije rešenje. Moja preporuka ti je da iskoristiš ugrađene osobine DataSeta i Field objekata u njemu da bi postigao isti efekat na predviđeni način.

P.S.: Trudi se da programski kod stavljaš pod code tagove (imaš sa leve strane) radi boljeg formatiranja.

[Edit] Uh, sad videh da se ove uglaste zagrade nisu videle zbog toga što ti kod nije bio u code tagovima.
"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 13:06 - pre 184 meseci
Znam da je to samo jedno od rješenja, ali rekao sam mu da ima i "pametnijih" :-)

Hvala za savjet, nisam vidio ovo sa lijeve strane :-)
F
 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.ADSL.neobee.net.



+1 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 14:02 - pre 184 meseci
Problem mi je izgleda sledeci:

select r.rdb$field_name,
t.rdb$type_name,
f.rdb$field_length,
r.rdb$null_flag,
f.rdb$validation_source

from rdb$relation_fields r, rdb$types t, rdb$fields f

where r.rdb$relation_name='MOJA_BAZA' and
f.rdb$field_name=r.rdb$field_source and
t.rdb$field_name='RDB$FIELD_TYPE' and
r.rdb$null_flag is NULL and
f.rdb$field_type=t.rdb$type;

mi ne vraca ni jedan rezultat.

?
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 14:21 - pre 184 meseci
Probaj napraviti ovako:

where r.rdb$relation_name='NAZIV_TABLICE' and

i

r.rdb$null_flag = 1 and
F
 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.ADSL.neobee.net.



+1 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 14:41 - pre 184 meseci
To sam isprobao sam pre nego sto sam video post i SQL mi vraca rezultate, ali sada imam problem da mi ne vidi koja polja su null (tj. =1), vec mi sva polja oboji u belo.

Da li moram nekako posebno da definisem nazive TDBEdit polja ili je nesto drugo posredi?
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 14:56 - pre 184 meseci
select r.rdb$field_name naziv_polja,
t.rdb$type_name,
f.rdb$field_length,
r.rdb$null_flag,
f.rdb$validation_source

Si promjenio ovo

if TDBEdit (Components).DataField = qBOJAPOLJA.FieldByName('NAZIV_POLJA').IsNull

u

if TDBEdit (Components).DataField = qBOJAPOLJA.FieldByName('naziv_polja').AsString
F
 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.ADSL.neobee.net.



+1 Profil

icon Re: NULL polja u bazi i Object Properties16.03.2009. u 15:01 - pre 184 meseci
Napravio sam izmenu. U SQL editoru mi lepo vraca vrednosti. Problem je da te vrednosti upari sa delo IF NAZIV...
Tako da mi sva polja i dalje boji u belo.

?
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: NULL polja u bazi i Object Properties

Strane: 1 2

[ Pregleda: 3241 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

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