[ acatheking @ 03.06.2003. 00:02 ] @
Imam bazu u Access-ovom formatu i ona pored ostalih polja u tabeli sadrzi polja koja su tipa date. Napravio sam asp stranicu da upisuje u bazu podatke dobijene iz forme sa druge stranice. Kako da resim da u bazu upisujem prazan datum?
Evo primera:

date_in = "11/5/2003" - ova promenjljiva je tipa string, ali u ovakvom formatu moze se upisati u bazu

a sql je:
INSERT INTO tabela(datum) VALUES (date_in)

a kako da setujem promenljivu date_in, sta da joj dodelim da bih u bazi upisao blanko vrednost?
[ jc denton @ 03.06.2003. 00:54 ] @
Od toga nema nista posto si izabrao Date tip za to polje. Uvek se pamti neki string i to formatiran onako kako ti odgovara, bas zbog raznih mogucnosti za "izgled" datuma.
S druge strane, koristi se year(date), month(date) i day(date) da razbijes neprilagodjeni format datuma i sve to uklopis u string za bazu, a za racun sa datumima razlozi (pocepaj) string u kome cuvas datum i koristi dateserial funkciju koja vraca bas date tip.

Nadam se da si me razumeo ovako na brzaka :)
[ acatheking @ 03.06.2003. 01:18 ] @
Ma ok razumeo sam te. Ja sam takva resenja imao, nego sam mislio moze li se bas date tip upisati blanko u bazu.
[ byTer @ 03.06.2003. 01:25 ] @
Ja mislim da sve to zavisi od Regional Settings, odnosno ako imas postavljen Serbian (Latin) da nece prihvatiti. Nije lose da napravis proceduru koja ce za svaki segment datuma formirati aktivni Reg sett. datum, ili ga snimi kao string pa koristi CDate(Date()) funkciju
[ jc denton @ 03.06.2003. 01:58 ] @
I sta dobija sa tim CDate(Date()) ?
[ jc denton @ 03.06.2003. 02:01 ] @
Citat:
acatheking:
Ma ok razumeo sam te. Ja sam takva resenja imao, nego sam mislio moze li se bas date tip upisati blanko u bazu.

Hm, nisam probao ali mislim da ne moze. Mozda ce degojs da vidi ovo, ima on dosta iskustva Accessom.
[ degojs @ 03.06.2003. 07:37 ] @
dentone, umornog čoveka si našao.. Vratio sam se sad umoran kući i odem na ES da vidim šta ima, kad ono.. gde sad da odem na spavanje kad me prozivaš :)))

Šalim se, naravno, a što se pitanja tiče, ako sam dobro razumeo:

INSERT INTO tabela (datum) VALUES (NULL);

bi trebalo da ubaci praznu vrednost. Naravno polje mora da omogućava prihvatanje null vrednosti (Required = No).

Jednostavno, napravi jedno IF-THEN-ELSE u ASP stranici pa ako ... bla bla... prazan string za datum onda izvrši ovaj gore SQL izraz ili već neku varijaciju na temu, a ako imaš validan datum, onda neki svoj SQL izraz poput onog gore što si dao..

Pozdrav i laku noć :)
[ byTer @ 03.06.2003. 18:03 ] @
Citat:
jc denton:
I sta dobija sa tim CDate(Date()) ?


hehe mislio sam CDate(RS("Datum"))
[ jc denton @ 04.06.2003. 02:55 ] @
Citat:
degojs:
dentone ...

:)
Pa nisi valjda nosio dzakove ;)
[ jc denton @ 04.06.2003. 04:31 ] @
Citat:
byTer:
hehe mislio sam CDate(RS("Datum"))

Ama ne moze ni tako. Ako se ne ugodi oblik datuma u stringu sa onim koji je namesten u sistemu ima da ti javne gresku.
[ jc denton @ 04.06.2003. 04:44 ] @
Citat:
degojs:
INSERT INTO tabela (datum) VALUES (NULL);


Sad nesto gledam :
Citat:

a kako da setujem promenljivu date_in, sta da joj dodelim da bih u bazi upisao blanko vrednost?


degojs, ako on bas hoce blanko, to mu nije NULL onda.
[ degojs @ 04.06.2003. 04:46 ] @
Jebem li ga, reče čovek:
Citat:
Kako da resim da u bazu upisujem prazan datum?


Ja ne znam šta bi to moglo da bude osim null. A i logično mi nekako. Ako je nešto drugo mislio, neću ni da pokušavam da odgovorim :)

Ako nije null, šta je onda blanko (šta uopšte možeš da upišeš u polje koje je tipa date/time)?
[ acatheking @ 04.06.2003. 12:25 ] @
Primer:
Iz obrazca na stranici index.asp saljem podatke na stranicu upis.asp. Stranica index.asp sadrzi text input polje. Stranica unos.asp taj string smesta u promenjljivu datum_s

datum_s=request.form("txt_datum")

i kao takvu je upisuje u bazu

INSERT INTO tabela (datum) VALUES (datum_s)

Ako string promenjljiva datum_s nije u formatu "dd/mm/yyyy" bice prijavljena greska prilikom upisa, ako jeste u takvom formatu, upisace je u bazu.

Pitanje:
Kako treba da izgleda sql ako je promenjljiva datum_s npr prazan string? Sta joj treba dodeliti ili sta vec uraditi?

Nadam se da sam bio jasan....



[ degojs @ 04.06.2003. 14:46 ] @
Citat:
Pitanje:
Kako treba da izgleda sql ako je promenjljiva datum_s npr prazan string? Sta joj treba dodeliti ili sta vec uraditi?


Aman čoveče, jesi li uopšte probao onaj SQL gore što sam ti predložio ?

pozdrav
[ byTer @ 04.06.2003. 16:59 ] @
E pa znas, sta, trebalo bi da se napise jedna klasa koja ce sve to lepo da konvertuju, i bas me cudi, pravo da ti kazem, da tako nesto jos ne postoji u ovim robusnim DB Serverima... A to i nije mnogo tesko... nije li?
[ jc denton @ 05.06.2003. 03:17 ] @
Citat:
acatheking:
Ako string promenjljiva datum_s nije u formatu "dd/mm/yyyy" bice prijavljena greska prilikom upisa, ako jeste u takvom formatu, upisace je u bazu.

Sto rece degojs - aman zaman :). Salu na stranu, ovim gore si sam sebi odgovorio, a i ja uporno to pricam.
[ mladenovicz @ 05.06.2003. 12:47 ] @
Ako radis sa recordsetom umesto sa SQL upitom, onda moze ovako nesto da prodje:

Code:


RS.AddNew
        ' ovde bi islo setovanje vrednosti ostalih polja u tabeli

        datum_s=Trim(request.form("txt_datum"))                
        If len(datum_s) > 0 Then 
               RS("Datum")= datum_s
        End If
                
RS.Update



Ukoliko je datum_s prazan string u bazu se ne upisuje nista za vrednost tog polja.
Kad citas vrednosti iz baze vrednost tog polja ce biti NULL, pa treba da ispitujes

If IsNull(Rs("Datum")) then .....

Naravno polje datum ne treba da bude required.

U sustini ovo radi isto sto i onaj SQL upit sto je degojs postavio, a blanko ne mozes nikako da upises u bazu ako je polje tipa Date/Time.