[delphi] czy da sie wstawic pusta date do bazy ?

Odpowiedz Nowy wątek
2007-04-18 14:24
0

baza PostgreSQL
kiedy mam komponent do wyboru daty i nie wybiore nic
a probuje wstawic do bazy rekord gdzie nie mam wybranej wlasnie tej daty
wyskakuje mi blad ze jest puste. Da sie to jakos obejsc czy jest jakas funkcja
ktora konwertuje date do stringa i wtedy jakos bada.

Czy to lezy po stronie zapytanai SQL

Pozostało 580 znaków

2007-04-18 14:54
0

jak masz pole z atrybutem not null to musisz coś wstawić, a jak nie to bez kodu nie powróżymy ...


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2007-04-18 18:55
0

Co do konwersji daty do stringa to DateToStr(Date), gdzie date jest typu TDate. Przed wstawieniem daty otocz ją apostrofem lub cudzysłowem.


<span style="color: blue">"Kolarstwo to jedna z najtrudniejszych dyscyplin sportu. Nawet najgorszy kolarz jest wciąż wybitnym sportowcem."
s.p. Marco Pantani
</span>

Pozostało 580 znaków

2007-04-19 09:57
0

w bazie nie mam zaznaczonego pola jaki NOT NULL
ale w kodzie natomiast mam tak

InsertSQL := 'INSERT INTO tabelka(imie,data1) VALUES(+Imie.text+,+Data+);';

Wczesniej w kodzie jesli ktos wybierze date to z komponentu date do zmiennej
DATA przypisuje sie data jako:
DATA := DateToStr(kompnentZdata);
zmienna IMIE ma jakies text wiadomo

I teraz kiedy w zmiennej data istnieje jakis wpis to jest ok
jesli w zmiennej DATA nie ma nic bo user nie wybierze nic to
wtedy wyskakuje blad ze do bazy chce stawic pusty string.

Pozostało 580 znaków

2007-04-19 10:36
0

to trzeba wtedy wstawiać bez daty


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2007-04-19 22:26
JarekW
0

Proponuję korzystać z parametrów. Powinno to rozwiązać problem.

InsertSQL := 'INSERT INTO tabelka(imie,data1) VALUES (:imie,:data1)';
DBQuery.ParamByName('imie').AsString:='jakieś imię';
DBQuery.ParamByName('data1').AsDate:=data;
DBQuery.Prepare;
DBQuery.ExecSQL;

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0