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

insert/update date null value in TSQLQuery-Lazarus?

[es] :: Pascal / Delphi / Kylix :: insert/update date null value in TSQLQuery-Lazarus?

[ Pregleda: 1510 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

salvaric
Novi Sad

Član broj: 53995
Poruke: 204
*.dynamic.isp.telekom.rs.



+4 Profil

icon insert/update date null value in TSQLQuery-Lazarus?19.05.2014. u 14:16 - pre 120 meseci
Pozdrav,

upis i izmenu podataka radim kroz sql upit,
problem mi se javlja kad se upisuje u polje datuma null.

kod:
Code:
    
          With sql_cekovi do
           begin
            SQL.Clear;   // upis čeka bazu
            SQL.Add('INSERT INTO tab_cekovi'+
                            '( D_REALIZACIJE, ID_BANKE, ID_OBJEKTA, SER_BR, D_PRIJEMA, D_DOSPECA, TEKUCI_RN, IZNOS, NAPOMENA, ID_KORISNIKA)'+
                      'values(:D_REALIZACIJE,:ID_BANKE,:ID_OBJEKTA,:SER_BR,:D_PRIJEMA,:D_DOSPECA,:TEKUCI_RN,:IZNOS,:NAPOMENA,:ID_KORISNIKA)');
            Params.ParamByName('D_REALIZACIJE').Value :=cekovi_edit.ZVDateTimePicker1.Date;
            Params.ParamByName('ID_BANKE').Value      :=cekovi_edit.cek_banka.KeyValue;
            Params.ParamByName('ID_OBJEKTA').Value    :=cekovi_edit.cek_objekat.KeyValue;
            Params.ParamByName('SER_BR').Value        :=cekovi_edit.cek_ser_br.Text;
            Params.ParamByName('D_PRIJEMA').Value     :=cekovi_edit.cek_d_prijema.Date;
            Params.ParamByName('D_DOSPECA').Value     :=cekovi_edit.cek_d_pustanja.Date;
            Params.ParamByName('TEKUCI_RN').Value     :=cekovi_edit.cek_racun.Text;
            Params.ParamByName('IZNOS').Value         :=cekovi_edit.cek_iznos.Text;
            Params.ParamByName('NAPOMENA').Value      :=cekovi_edit.cek_napomena.Text;
            Params.ParamByName('ID_KORISNIKA').Value  :=Korisnik.ID;
            ExecSQL;
        end;

datume uzima iz standardnih Lazarus-ovih kompenenti,
izvrši se upis u bazu al mi u polja za datume upisuje datum "30.12.1899" na mestima gde nije izabran datum (prazno polje).

Dal se neko susreo sa ovakvim problemom?

I kod update-a će biti isti slučaj, umesto praznih polja u tabelu će dodavati "30.12.1899".

Baza je Access, ODBC konekcija.
Nikad izvini!
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: insert/update date null value in TSQLQuery-Lazarus?19.05.2014. u 15:18 - pre 120 meseci
> datume uzima iz standardnih Lazarus-ovih kompenenti,
> izvrši se upis u bazu al mi u polja za datume upisuje datum "30.12.1899" na mestima gde nije izabran datum (prazno polje).
> Dal se neko susreo sa ovakvim problemom?

Nije precizno reći da je ovo problem, prosto to tako radi. NULL je stanje, odsustvo vrednosti koje se kasnije kod prikaza tumači kao 0 tj. kao bazični datum (30.12.1899).
Možeš prilikom definicije polja u tabeli da staviš default vrednost (npr. CURRENT_DATE) ali u tom slučaju to polje moraš izostaviti iz unosa ili da u svom programu staviš neku vrednost, tipa Now.
 
Odgovor na temu

salvaric
Novi Sad

Član broj: 53995
Poruke: 204
*.adsl.eunet.rs.



+4 Profil

icon Re: insert/update date null value in TSQLQuery-Lazarus?19.05.2014. u 16:12 - pre 120 meseci
Ok, slažem se,

problem je meni što sam hteo da se u zavisnosti od korisnika upiše il neupiše datum (datum ili ""), tj. polje sa datumom za realizaciju čeka je relativno, u zavisnosti od toga kad se predaje ček na banku, tako da se može popuniti prilikom inserta, u koliko se ček odmah realizuje, ili posle prilikom editovanja (update) tj. njegovim dospećem za naplatu.

rešio sam ubacivanjem uslova iif u sql.

Code:
...values(IIF(:D_REALIZACIJE=0,NULL,:D_REALIZACIJE),...


hvala u svakom slučaju!
Nikad izvini!
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: insert/update date null value in TSQLQuery-Lazarus?

[ Pregleda: 1510 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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