jag antar att Name och Telefon är av typen sträng. Isf ska du ha fnuttar runt datan du skickar in i SQL-satsen, enklast fixar du detta med funktionen QuotedStr som finns i sysutils:
with Query1 do
begin
SQL.Clear;
Close;
SQL.Add('insert into address2(Name,Telefon) values('+quotedstr(Edit1.Text)+','+quotedstr(Edit2.Text)+') ');
ExecSQL;
end;
Vad är det för fel när det inte vill fungera fast jag trycker på knapp
som skall radera det markerade fältet?
Kod:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
Check:=True;
Button1.Enabled:=True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if DBGrid1.SelectedRows.Count<0 then
begin
with Query1 do
begin
SQL.Clear;
SQL.Add('delete from address2 where Namn='+quotedstr(DBGrid1.SelectedField.asstring));
ExecSQL;
end;
Button1.Enabled:=False;
end;
end;
if DBGrid1.SelectedField.asstring<>'' then
begin
with Query1 do
begin
SQL.Clear;
SQL.Add('delete from address2 where Namn='+quotedstr(DBGrid1.SelectedField.asstring));
ExecSQL;
..
När jag använder koden i det föregående inlägget, får jag
följande felmeddelande:
Access violation at adress 0048D797 in module 'sqlprog.exe'
Read of adress 00000000
Problemet har inget med if-satsen att göra utan närmare bestämt med denna rad
SQL.Add('delete from address2 where Namn='+quotedstr(DBGrid1.SelectedField.asstring));
Efter jag satt till denna rad, så började problemet
Access violation at adress 0048D797 in module 'sqlprog.exe'
Read of adress 00000000
if assigned(DBGrid1.SelectedField) then
SQL.Add('delete from address2 where Namn='+quotedstr(DBGrid1.SelectedField.asstring))
else
showmessage('hej hopp');
/Ante
134 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe