[Delphi] Problem z NULLem w Edit.text

Odpowiedz Nowy wątek
Tomek557
2007-05-19 15:09
Tomek557
0

Witam
Mam aplikacje w delphi, przy dodawaniu nowych rekordów chce mieć jedno pole puste. Chce miec puste pole model (zeby puzniej go uzupelnic)
Gdu naciskam przycis zapisz wyskakuje mi taki błąd:
[Sybase][ODBC Driver][Adaptive Server Anywhere]Integrity constraint violation: Invalid value for column 'model' in table 'aaa'
Napisałem taką procedure:

procedure TB_dodaj.BitBtn2Click(Sender: TObject);
begin
DataModule1.ADOQuery3.Close;
with DataModule1.ADOQuery3 do
begin

  Parameters.Clear;
  with sql do
    begin
      Clear;
      Add('INSERT INTO aaa(id_a, nazwa, typ, model) ');
      Add('VALUES(:ida,:nazwa,:typ,:model)');
    end;
    Parameters.ParamByName('ida').Value:=Edit1.Text;
    Parameters.ParamByName('nazwa').Value:=Edit2.Text;
    Parameters.ParamByName('typ').Value:=Edit3.Text;

    <span style="color: red">IF (Edit1.Text <> NULL) THEN
    Parameters.ParamByName('model').Value:=Edit4.Text
    ELSE
    Parameters.ParamByName('model').Value:='NULL';

</span>
end;
DataModule1.ADOQuery3.ExecSQL;
DataModule1.ADOQuery3.Close;
with DataModule1.ADOQuery3 do
begin
Parameters.Clear;
with sql do
begin
Clear;
Add('SELECT * ');
Add('FROM aaa');
end;
end;
DataModule1.ADOQuery3.Open;
end;

Jak by ktoś wiedział dlaczego mi to nie działa to proszę o pomoc
Tomek

Pozostało 580 znaków

2007-05-19 15:15

Rejestracja: 13 lat temu

Ostatnio: 6 lat temu

0

Czym jest NULL w wyrażeniu ?

if Edit1.Text <> NULL then

Dla stringów odpowiednikiem NULL jest pusty string, czyli '', czyli

if Edit1.Text <> '' then .Value := Edit4.Text else .Value := 'NULL';

<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

Tomek557
2007-05-19 15:38
Tomek557
0

Zmieniłem na:

IF (Edit4.Text <> '') THEN
Parameters.ParamByName('model').Value:=Edit4.Text
ELSE
Parameters.ParamByName('model').Value:='NULL';

Teraz wysakkujem mi komunikat
Cannot convert NULL to a INT

Pozostało 580 znaków

Tomek557
2007-05-19 15:42
Tomek557
0

Juz mam :)

IF (Edit4.Text <> '') THEN
Parameters.ParamByName('model').Value:=Edit4.Text
ELSE
Parameters.ParamByName('model').Value:=NULL;

Pozostało 580 znaków

Odpowiedz

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