存储过程如下:
CREATE PROCEDURE blgxjtotal
@id int,
@amount int
as
update badnesstemp1 set proamount = @amount where id = @id
GO
源代码如下:
adoquery1.First;
while not adoquery1.Eof do
begin
ADOStoredProc1.close;
ADOStoredProc1.ProcedureName := 'blgxjtotal;1';
ADOStoredProc1.Parameters.Refresh ;
ADOStoredProc1.Parameters.ParamByName('@id').Value := adoquery1.Fields[0].AsInteger;
ADOStoredProc1.Parameters.ParamByName('@amount').Value := adoquery1.Fields[1].AsInteger;
ADOStoredProc1.prepared:=true;
ADOStoredProc1.ExecProc;
adoquery1.Next;
end;
提示:access violation ………… in module 'sqloledb.dll',请教各位达人,代码哪里出错呢?
CREATE PROCEDURE blgxjtotal
@id int,
@amount int
as
update badnesstemp1 set proamount = @amount where id = @id
GO
源代码如下:
adoquery1.First;
while not adoquery1.Eof do
begin
ADOStoredProc1.close;
ADOStoredProc1.ProcedureName := 'blgxjtotal;1';
ADOStoredProc1.Parameters.Refresh ;
ADOStoredProc1.Parameters.ParamByName('@id').Value := adoquery1.Fields[0].AsInteger;
ADOStoredProc1.Parameters.ParamByName('@amount').Value := adoquery1.Fields[1].AsInteger;
ADOStoredProc1.prepared:=true;
ADOStoredProc1.ExecProc;
adoquery1.Next;
end;
提示:access violation ………… in module 'sqloledb.dll',请教各位达人,代码哪里出错呢?
解决方案 »
- delphi输出地EXE图标问题
- 请问delphi中有没有将二进制转换成十六进制的函数?
- 新手求书
- 谁有delphi直接控制打印机的例子?
- 明天就要答辩了,急问两个小问题,再线等
- 创建模态窗体的奇怪问题!提示“Cannot make a visible window modal.”
- Error creating form:Invalid stream format.
- 如何将时间如:2003-12-24 11:00:38 转化为 20031224110038 需要程序,谢谢
- 我的机子怎么啦,中毒了吗?
- 三层结构中客户端与应用服务器之间如何实现传输文件?有实际的代码最好!
- 如何计算图像中闭合曲线所围区域的面积?
- QuickReport问题:怎样为QUICKREPORT动态创建QRDBText对象,使它能够显示数据库中的某列?
另外,在dll中创建ADO控件前需要加入CoInitia...这条语句,在Unit ActiveX里。
另外:建议楼主不要使用默认的名字adoquery1,ADOStoredProc1等
ADOStoredProc1.Parameters.Clear;
ADOStoredProc1.ProcedureName:='blgxjtotal;1';
ADOStoredProc1.Parameters.CreateParameter
('@id',ftstring,pdinput,参数长度,adoquery1.Fields[0].AsInteger);ADOStoredProc1.Parameters.CreateParameter
('@amount',ftinteger,pdinput,参数长度,adoquery1.Fields);
ADOStoredProc1.Open;看这样行不行啊...
while not adoquery1.Eof do
beginwith TADOQuery.Create(Self) do
try
Connection:=ADO数据连接;
SQL.Add('EXEC blgxjtotal'+adoquery1.Fields[0].AsString+','+adoquery1.Fields[1].AsString);
ExecSQL;
finally
Close;
Free;
end;adoquery1.Next;
end;
应该为
'EXEC blgxjtotal '
多加一个空格