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

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

0

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

0

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

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.

0

to trzeba wtedy wstawiać bez daty

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;

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