关于存储过程的一个简单问题(100分)

L

liamy

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个存储过程depaddup,用于向dep(部门表)中添加或更新纪录,
可当我在delphi用storedproc访问时,storedproc1.storedprocname却为depaddup;1 ,
因此我在执行时,总是报错,说是找不到该存储过程。请教如何解决?
(我若在sql explorer中将depaddup改名为depaddup;1,则正常。)
 
呵呵,怎么这么奇怪?
 
那你不应该改proc的名字
而应该改storedproc1.storedprocname啊
 
我试过将storedproc1.storedprocname改成depaddup,但又提示错误,list index out of bounds.
你们没遇到过吗?storedprocname中包括系统自带的存储过程都在末尾加了一个';1'
 
今天终于有了些进展,原来';1'是用来标识该存储过程更改的版本的。
如果在bde中建一个sql server的别名,则在sql explorer中就会出现;1,就和程序中一致了,
程序运行时不会报错。
但我建的是mssql型的别名,在sql explorer中不会出现;1,所以与
程序中不一致,因而报错。所以我只要用sql server型的别名就好了。
但我还是不明白,为什么用mssql就不可以,如何能解决???
 
其实,:1确实代表该存储过程的版本号,在具体执行时要标明,具体的详情可参考SQL7.0中的
帮助。可是在执行存储过程时,最好有QUERY部件,它具有更好的可用性。如有疑问,请来信。
E-MIAL:NIER9240@163.COM
 


不要管任何东西,你先选中 user.depaddup;1 ,然后删除;1即可.放心用吧.
注意设置参数类型
 
您应该严格保证存储过程名称的正确。因为在使用存储过程控件时,Delphi总是自己在存储
过程名前面加了"dbo."。您只要将此dbo.信息去处就可以了。
祝您好运!
 
多人接受答案了。
 
顶部