[ neuromancer @ 13.02.2004. 18:43 ] @
Imam sledeci problem:
u tabeli imam polje sa datumom. Dok je tabela prazna, sve se lepo poveze iz aplikacije, sve lepo radi. Medjutim cim unesem jednu vrstu, i kad ne unesem datum, znaci ostavim ga praznim, jer mi nije uvek potreban, vec u sledecem povezivanju na bazu preko dbExpress komponenti dobijam gresku, nesto kao "0.0 is not a valid timestamp value...". Kako ovo prevazici.
pozdrav
Darko
[ sojic @ 13.02.2004. 23:06 ] @
Pa ne dozvoljavaj u Delphiju da datum bude prazan. Prosto, stavi jedan DateTimePicker i uvek imas datum.
[ neuromancer @ 14.02.2004. 13:03 ] @
OK, ali sam vec naglasio da mi je ponekad potrebno da ta polja ostanu prazna. Mogu ja da stavim neki datum, pa da ga posle promeni korisnik kad mu je potrebno. U svakom slucaju, mene zanima zasto se to desava, i moze li neko da mi objasni sustinu problema...
hvala sojic
pozdrav
[ -zombie- @ 15.02.2004. 11:13 ] @
naišao sam na sličan problem. poJenta je da si mysql tabelu verovatno kreirao pomoću nekog mysql GUIa (npr mysql CC), i da je on "samovoljno" dodao default opciju za date polje.

i naravno, taj default je "0", što delphi naravno ne može da konvertuje u tDateTime, i javlja exception.

rešenje je da ručno (ALTER TABLE..) ili nekim drugim mysql GUI alatom (mysqlCC je s***** ;) isključiš default vrednost za date polje.

posle toga, ako ništa ne upišeš u date polje, u bazi će ostati NULL (ili ništa, kako već voliš to da zoveš), i pri sledećem prikazu, delphi će videti NULL, i znaće da ne treba da ga prevodi, jer to nije podatak.


ili ako ne znaš o čemu pričam, uradi export tabele (samo CREATE TABLE statement), i pastuj ovde, pa ćemo već popraviti. ;)
[ neuromancer @ 16.02.2004. 10:05 ] @
Da, kreirao sam je tako, pa sam kasnije video da je po default-u bila postavvljena vrednost sa nulama. Stavio sam zatim default vrednost NULL. Ali i dalje nije htelo da radi. E malopre sam iz GUI-a uneo neke vrednosti a vrednosti polja sa date tipom podataka sam ostavio prazne. Delphi pri pokretanju programa nije prijavio nikakvu gresku.
Znaci da je problem oko unosa podataka. Ja to radim preko standardne INSERT statement, s tim sto sva polja, bez obzira da li su popunjena ili ne "saljem" u tabelu, a date polja idu kao ' '. Kontam da je verovatno u tome problem. Sad me zanima da li postoji neki laksi, i automatizovaniji nacin da unosim podatke u tabelu, kao sto je to slucaj sa paradox tabelom. Znaci da ne moram svako polje posebno da unosim. I ako ne moze, kako da INSERT komandu najbolje odradim iz delphi okruzenja.
Hvala
pozdrav
[ -zombie- @ 16.02.2004. 10:59 ] @
ovako, prvo polje ne treba da ima nikakav default (čak ni null), a drugo, pri upisu, ako tu vrednost ne upiše korisnik, onda to polje ne treba ni da pominješ u INSERT upitu. tek u tom slučaju će raditi kako treba.