我做一个数据库更新的程序,我想在Edit2中输入增加的Quantity(数量),但是编译能够通过,但是白执行时,就说我的nTemp附近有错误,请问各位高人,这是怎么回事,以下是我的代码
var
nTemp: Integer;
begin
nTemp := StrToInt(Edit2.text);
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Update stock ');
query1.SQl.Add('set Quantity = Quantity + nTemp');
query1.SQl.Add('where PartName = '''+ edit1.Text+'''');
query1.SQl.Add('AND ProductName = '''+ edit3.Text+'''');
var
nTemp: Integer;
begin
nTemp := StrToInt(Edit2.text);
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Update stock ');
query1.SQl.Add('set Quantity = Quantity + nTemp');
query1.SQl.Add('where PartName = '''+ edit1.Text+'''');
query1.SQl.Add('AND ProductName = '''+ edit3.Text+'''');
解决方案 »
- richedit1中有大量文本,通过点击按扭如何在delphi中用word 打开?怎样完全关闭?
- 请问怎样检查一个stringlist里有没有一个值,如果有delete
- 安装了水晶报表 for delphi7 vcl的dcl7cr9.dpk
- 我怎么得到DBGRID的一个单元格中修改后保存前的值 ====在线等
- 怎么把Tchart控件显示的图形按比例缩放?应该如何做?图形不能变形。
- 怎么读取USB口数据
- 为什么intraweb程序用了模版后,按钮的事件却不响应了???!!
- 对数据的实时读取,用那种方式更好!
- 寻书....
- 如何在点击DBGrid时使整行处于选中状态?
- 程序错误,请各位大师指点!
- 求教一句SQL语句,解决5:00之前给分,在线等待
query1.SQl.Add(' where PartName = '''+ edit1.Text+'''');//where前面加空格
有的语句之间没有空格 编译的时候计算机认为是STRING所以编译可以通过
但是执行的时候就会有错误
nTemp: Integer;
begin
nTemp := StrToInt(Edit2.text);
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Update stock ');
query1.SQl.Add('set Quantity = Quantity + nTemp');
query1.SQl.Add('where PartName = '''+ edit1.Text+'''');
query1.SQl.Add('AND ProductName = '''+ edit3.Text+'''');
---------------------------------
var
nTemp: Integer;
SQLText:String;
begin
nTemp := StrToInt(Edit2.text);
SQLText:='将要执行的SQL语句用字符串组合成有效的';
Showmessage(SQLText);//显示出来看一看是否正确注意空格 With Query1 do
begin
Close;
SQL.Clear;
SQL.Add(SQLText);
ExecSQL;
end;
如返回结果为FALSE,则存在非法字符
function TForm1.checknum(str: string): boolean;
var
i:integer;
s:string;
begin
s:=trim(str);
if s<>'' then result:=true else
begin
result:=false;
exit;
end;
for i:=1 to length(s) do
begin
if (ord(s[i])>57) or (ord(s[i])<48) then
begin
result:=false;
exit;
end;
end;
end;2、你的代码:
var
ntmp:integer;
begin
if not checknum(edit2.Text) then
begin
showmessage('edit1存在非法字符!');
exit;
end;
ntmp:=StrToInt(Edit2.text);
with query1 do
begin
close;
sql.clear;
sql.add(''Update stock set Quantity = Quantity+:AA ');
sql.add('where PartName =:BB and ProductName = :CC ');
parameters[0].value:=ntemp;
parameters[1].value:=edit1.Text;
parameters[2].value:=edit3.Text;
ExecSQL;
end;
end;
begin
Close;
SQL.Clear;
sql.Add(Format('Update stock set Quantity = Quantity +%s',[Edit2.text]));
sql.Add('where PartName = '''+ edit1.Text+'''');
SQl.Add('AND ProductName = '''+ edit3.Text+'''');
end;
var
nTemp: Integer;
begin
nTemp := StrToInt(Edit2.text);
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Update stock ');
query1.SQl.Add('set Quantity =Quantity+:var1');
query1.SQl.Add('where PartName = '''+ edit1.Text+'''');
query1.SQl.Add('AND ProductName = '''+ edit3.Text+'''');
Query1.ParamByName('var1').AsInteger:=ntemp;