Delphi使用动态sql语句时出现错误
procedureTForm1.Button3Click(Sender:TObject);beginName:=Edit1.Text;Query1.Close;Query...
procedure TForm1.Button3Click(Sender: TObject);
begin
Name:=Edit1.Text;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from animals.dbf');
Query1.SQL.Add('where name=:name');
Query1.ParamByName('name').AsString:=Name;
if Query1.RecordCount=0 then
ShowMessage('没有这条记录')
else begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('update animals.dbf');
query1.SQL.Add('set name="New Name"');
Query1.SQL.Add('where name=:name');
Query1.ParamByName('name').AsString:=Name;
Query1.ExecSQL;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from animals.dbf');
Query1.Open;
end;
end;
end.
上面全局变量忘写了
var
Name:string; 展开
begin
Name:=Edit1.Text;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from animals.dbf');
Query1.SQL.Add('where name=:name');
Query1.ParamByName('name').AsString:=Name;
if Query1.RecordCount=0 then
ShowMessage('没有这条记录')
else begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('update animals.dbf');
query1.SQL.Add('set name="New Name"');
Query1.SQL.Add('where name=:name');
Query1.ParamByName('name').AsString:=Name;
Query1.ExecSQL;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from animals.dbf');
Query1.Open;
end;
end;
end.
上面全局变量忘写了
var
Name:string; 展开
2个回答
展开全部
错误提示数据集没有打开,你改为下面的代码看看
procedure TForm1.Button3Click(Sender: TObject);
begin
Name:=Edit1.Text;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from animals.dbf');
Query1.SQL.Add('where name=:name');
Query1.ParamByName('name').AsString:=Name;
Query1.open;//这里应该添加一句,打开数据集
if Query1.RecordCount=0 then
ShowMessage('没有这条记录')
else begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('update animals.dbf');
query1.SQL.Add('set name="New Name"');
Query1.SQL.Add('where name=:name');
Query1.ParamByName('name').AsString:=Name;
Query1.ExecSQL;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from animals.dbf');
Query1.Open;
end;
end;
end.
procedure TForm1.Button3Click(Sender: TObject);
begin
Name:=Edit1.Text;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from animals.dbf');
Query1.SQL.Add('where name=:name');
Query1.ParamByName('name').AsString:=Name;
Query1.open;//这里应该添加一句,打开数据集
if Query1.RecordCount=0 then
ShowMessage('没有这条记录')
else begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('update animals.dbf');
query1.SQL.Add('set name="New Name"');
Query1.SQL.Add('where name=:name');
Query1.ParamByName('name').AsString:=Name;
Query1.ExecSQL;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from animals.dbf');
Query1.Open;
end;
end;
end.
展开全部
Query1.SQL.Add('select * from animals.dbf');
Query1.SQL.Add('where name=:name');
这样连接组合SQL时,第一句和第二句中间的空格,
第二:Query1.ParamByName('name').AsString:=Name;
给绑定变量赋值也不是这样吧!
试试下面这句话Query1.Parameters.ParamByName('name').Value:=Name
第三:主意绑定变量和局部变量最好不要同名,
Query1.SQL.Add('where name=:name');
这样连接组合SQL时,第一句和第二句中间的空格,
第二:Query1.ParamByName('name').AsString:=Name;
给绑定变量赋值也不是这样吧!
试试下面这句话Query1.Parameters.ParamByName('name').Value:=Name
第三:主意绑定变量和局部变量最好不要同名,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询