关于调用存储的问题(20分)

  • 主题发起人 主题发起人 fstao
  • 开始时间 开始时间
F

fstao

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库为MSSQL7,假如有一表dbo.table1,字段和数据如下:
id name
1 yes
2
3 yes
4

假如用Tquery写这样的语句:
with query1 do
begin
close;
sql.clear;
sql.add('update table1 set name=''yes'' where id=:id');
parambyname('id').asfloat:=2;
execsql;
end;

这样做肯定行的。假如我用存储过程来做,先创建存储语句:
CREATE PROCEDURE update1 @id float output AS
update table1 set name='yes'
where id=@id

在delphi写语句:
with StoredProc1 do
begin
ParamByName('@id').AsFloat:=2;
ExecProc;
end;

但是一执行就出错:'General SQL Error.Could Not find stored
procedure 'dbo.update1;1 '.我现在感到有点奇怪,我明明在StorageProc1
选择“dbo.update1;1”,为何会报错没有找到“dbo.update1;1”。还有我写
的存储过程语句也没有错啊,因为检查过的了。请各位帮看看哪里出错了?
 
ParamByName('@id').AsFloat:=2; @要去掉。
 
不行,还是报错:找不到id。
 
好象'dbo.update1;1 中的;1 应去掉。
 
多人接受答案了。
 
我用类似的存储过程,在设计时当将StoredProc1.Active:=TRue时系统报错
"Error Creating Cursor Handle"是什么原因.
delete insert 都是,但select 可以。
 
后退
顶部