SQL 6.5升级到7.0,delphi程序中存储过程控件连接的存储过程不能用怎么办?(100分)

  • 主题发起人 主题发起人 goldenforest
  • 开始时间 开始时间
G

goldenforest

Unregistered / Unconfirmed
GUEST, unregistred user!
各位:
我把SQL 6.5升级到7.0,结果发现delphi程序中使用的存储过程控件的地方报错,说找不到这个存储过程,各位是否遇到过相似问题,请指条路!
不能让我把源程序全部改一遍吧!
 
你算是找對人了,請按以下方法做:
一.用BDE
1.在BDE設置中將USER NAME的名用大寫:SA
2.在存储过程的屬性設置中選擇存儲過程名后將參數設置好.
3.將存儲過程名的前面及后面的附加參數去掉,即將其名輸入成與
你在后臺所建的名稱一樣.(例:dbo.pr_comp_pay_an;1====>pr_comp_pay_an)
4.運行.
包你成功,這個方法是Inprise公司技術支持教我的.
二.改用ADO
如果你改用ADO連接,問題可以直接解決.ADO中不會有找不到存儲過程的問題.
 
plowboy
我将参数设置好了后改动存储过程前后的东西,结果发现参数有消失了
请问我操作是否有问题?
请指教
 
感谢前人的教导,我在以前的问题中找到了答案,特拷贝下来:
1:使用BDE+ODBC连接,可以顺利的使用存储过程,担忧数据类型
兼容的问题(NVCHAR不认)
2:使用BDE+SQLLINK,没有数据类型兼容的问题,但是要动态赋值创建
和参数,例子如下:
with StoredProc1 do begin
ProcName := 'SP_XXX';
Params.clear;
Params.CreateParam(ftInteger, '@PARAM1', ptInput);
//接3个参数,看看Help
Params.CreateParam(ftInteger, '@PARAM2', ptOutput);
ExecProc;//如果返回结果集,就用Open
end;
这样,你就可以顺利的访问任何存储过程了。
 
你有保證BDE設置中的USER NAME的名用大寫SA嗎?
因為他保證當去掉過程名前后的資料后參數都不會消失.
我測試過如果用小寫, 參數將消失.
如果你一定要用小寫, 你完全可以自己加上參數去,
當然,你一定要指明參數的傳遞類型及傳遞方式(傳入或傳出)
你的方法太麻煩,要寫那麼多代碼!!!

 

Similar threads

后退
顶部