我是用ADOQuery1与DaTaSource相连,让数据显示在DBGird显示,用ADOQuery2来更新数据。
在DBGird中显示的数据没有问题,现在是用ADOQuery2来更新数据,到 ADOQuery1.Close; 就报错了,哪位大侠帮帮忙看看是哪里出问题了procedure TForm1.Button2Click(Sender: TObject);
var location:string;
begin location:=edit1.Text;
with ADOQuery2 do
begin
ADOQuery2.Close;
ADOQuery2.sql.Clear;
ADOQuery2.SQL.Add('update nike');
ADOQuery2.SQL.Add(',name='''+edit1.Text+'''');
ADOQuery2.SQL.Add(',age='''+edit2.Text+'''');
ADOQuery2.SQL.Add(',mom='''+edit2.Text+'''');
ADOQuery2.SQL.Add(',dad='''+edit2.Text+'''');
ExecSql;
end;
ADOQuery1.Close;
ADOQuery1.Open;
ADOQuery1.Locate('name',Location,[loPartialKey]);
edit1.Enabled:=false;
edit2.Enabled:=false;
edit3.Enabled:=false;
edit4.Enabled:=false;
edit5.Enabled:=false;
edit6.Enabled:=true;
button2.Enabled:=false;
button3.Enabled:=false;
button1.Enabled:=false;
button4.Enabled:=true;
button5.Enabled:=true;
messagebox(Application.Handle,'修改成功','提醒',MB_OK OR MB_ICONINFORMATION);end;
在DBGird中显示的数据没有问题,现在是用ADOQuery2来更新数据,到 ADOQuery1.Close; 就报错了,哪位大侠帮帮忙看看是哪里出问题了procedure TForm1.Button2Click(Sender: TObject);
var location:string;
begin location:=edit1.Text;
with ADOQuery2 do
begin
ADOQuery2.Close;
ADOQuery2.sql.Clear;
ADOQuery2.SQL.Add('update nike');
ADOQuery2.SQL.Add(',name='''+edit1.Text+'''');
ADOQuery2.SQL.Add(',age='''+edit2.Text+'''');
ADOQuery2.SQL.Add(',mom='''+edit2.Text+'''');
ADOQuery2.SQL.Add(',dad='''+edit2.Text+'''');
ExecSql;
end;
ADOQuery1.Close;
ADOQuery1.Open;
ADOQuery1.Locate('name',Location,[loPartialKey]);
edit1.Enabled:=false;
edit2.Enabled:=false;
edit3.Enabled:=false;
edit4.Enabled:=false;
edit5.Enabled:=false;
edit6.Enabled:=true;
button2.Enabled:=false;
button3.Enabled:=false;
button1.Enabled:=false;
button4.Enabled:=true;
button5.Enabled:=true;
messagebox(Application.Handle,'修改成功','提醒',MB_OK OR MB_ICONINFORMATION);end;
procedure TForm1.Button2Click(Sender: TObject);
var location:string;
begin location:=edit1.Text;
with ADOQuery2 do
begin
ADOQuery2.Close;
ADOQuery2.sql.Clear;
ADOQuery2.SQL.Add('update nike');
ADOQuery2.SQL.Add(',name='''+edit1.Text+'''');
ADOQuery2.SQL.Add(',age='''+edit2.Text+'''');
ADOQuery2.SQL.Add(',mom='''+edit2.Text+'''');
ADOQuery2.SQL.Add(',dad='''+edit2.Text+'''');
ExecSql;
end;
with ADOQuery2 do
begin
ADOQuery1.Close;
ADOQuery1.Open;
ADOQuery1.Locate('name',Location,[loPartialKey]);
end;
edit1.Enabled:=false;
edit2.Enabled:=false;
edit3.Enabled:=false;
edit4.Enabled:=false;
edit5.Enabled:=false;
edit6.Enabled:=true;
button2.Enabled:=false;
button3.Enabled:=false;
button1.Enabled:=false;
button4.Enabled:=true;
button5.Enabled:=true;
messagebox(Application.Handle,'修改成功','提醒',MB_OK OR MB_ICONINFORMATION); end;
procedure TForm1.Button2Click(Sender: TObject);
var location:string;
begin location:=edit1.Text;
with ADOQuery2 do
begin
ADOQuery2.Close;
ADOQuery2.sql.Clear;
ADOQuery2.SQL.Add('update nike');
ADOQuery2.SQL.Add(',name='''+edit1.Text+'''');
ADOQuery2.SQL.Add(',age='''+edit2.Text+'''');
ADOQuery2.SQL.Add(',mom='''+edit2.Text+'''');
ADOQuery2.SQL.Add(',dad='''+edit2.Text+'''');
ExecSql;
end;
with ADOQuery1 do
begin
ADOQuery1.Close;
ADOQuery1.Open;
ADOQuery1.Locate('name',Location,[loPartialKey]);
end;
edit1.Enabled:=false;
edit2.Enabled:=false;
edit3.Enabled:=false;
edit4.Enabled:=false;
edit5.Enabled:=false;
edit6.Enabled:=true;
button2.Enabled:=false;
button3.Enabled:=false;
button1.Enabled:=false;
button4.Enabled:=true;
button5.Enabled:=true;
messagebox(Application.Handle,'修改成功','提醒',MB_OK OR MB_ICONINFORMATION); end;
project project.exe raised excepyion class EOleException with mwssage'第2行:','附近有语法错误。'.
ADOQuery2.sql.Clear;
ADOQuery2.SQL.Add('update nike');
ADOQuery2.SQL.Add(',name='''+edit1.Text+'''');
ADOQuery2.SQL.Add(',age='''+edit2.Text+'''');
ADOQuery2.SQL.Add(',mom='''+edit2.Text+'''');
ADOQuery2.SQL.Add(',dad='''+edit2.Text+'''');
ExecSql; 'update nike set name = ' + QuotedStr(edit1.Text) + ', age = ' + ...
是 SQL 语法错误哦
指向这里,一般错误的都是上一个代码。
类似','附近有语法错误。'.之类错误都是sql语法错误
直接查sql语句。
begin
ADOQuery2.Close;
ADOQuery2.sql.Clear;
ADOQuery2.SQL.Add('update nike SET');
ADOQuery2.SQL.Add('
,name='''+edit1.Text+'''');ADOQuery2.SQL.Add(',age='''+edit2.Text+'''');
ADOQuery2.SQL.Add(',mom='''+edit2.Text+'''');
ADOQuery2.SQL.Add(',dad='''+edit2.Text+'''');
ADOQuery2.SQL.Add(' where ???');
ExecSql;
end;
'nam'前的','应该删除.
strsql:string;
begin
strsql:='UPDATE T SET name='''+edit1.text+''',age=''+edit2.text+''';
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add(strsql);
adoquery1.execsql;
end;