新聞中心
在用VC開發(fā)的應(yīng)用程序中,訪問Oracle數(shù)據(jù)庫的存儲(chǔ)過程中出現(xiàn)了問題如下:在腳本里面調(diào)用存儲(chǔ)過程的時(shí)候,如果用exec mysp 就報(bào)告"無效字符";如果用 {call mysp} 則報(bào)告“游標(biāo)錯(cuò)誤” 奇怪的是,用一個(gè)古老的版本的平臺(tái)程序則可以用 {call mysp} 完成調(diào)用。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、肅州網(wǎng)絡(luò)推廣、微信小程序、肅州網(wǎng)絡(luò)營(yíng)銷、肅州企業(yè)策劃、肅州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供肅州建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
原因排查:
最初的se程序在訪問數(shù)據(jù)庫接口的時(shí)候只區(qū)分select 開頭的語句和非select開頭的語句。對(duì)于非select開頭的語句一律用odbc的 CDatabase::ExecuteSQL函數(shù)處理;對(duì)于select開頭的語句使用 CRecordSet::Open處理。所以{call mysp}語句是用CDatabase::ExecuteSQL處理的,沒有問題。
而新版本的se為了處理call mysp的返回,使用了CRecordSet::Open來處理。這在微軟的SqlServer下沒有問題,但是在Oracle下就不行了。
解決方案:
在連接oracle數(shù)據(jù)庫的時(shí)候,call mysp這樣的語句不能用 crecordset::open處理,只能用cdatabase::executesql處理。
說明:exec mysp 一般只能用在數(shù)據(jù)庫服務(wù)器自己的客戶端里面,如sqlserver的 企業(yè)管理器或者oracle的sql plus ,不能用在c語音接口里面。而call mysp則可以用于任何場(chǎng)合。
關(guān)于在VC開發(fā)的程序里面訪問Oracle數(shù)據(jù)庫存儲(chǔ)過程的問題的原因分析及解決方案就介紹到這里了,如果您想了解更多關(guān)于Oracle數(shù)據(jù)庫的知識(shí),可以看一下這里的文章:http://database./oracle/,相信一定可以帶給您收獲的!
【編輯推薦】
- Oracle數(shù)據(jù)庫consistent gets使用的特例
- Oracle數(shù)據(jù)庫增刪集合元素的Java實(shí)現(xiàn)方法
- Oracle數(shù)據(jù)庫中TNSListener無法啟動(dòng)的解決方案
- Oracle數(shù)據(jù)庫中AWR的組成及工作原理的詳細(xì)介紹
- Oracle臨時(shí)表游標(biāo)未釋放導(dǎo)致回滾段空間不足的解決方案
名稱欄目:VC程序訪問Oracle數(shù)據(jù)庫的存儲(chǔ)過程時(shí)的問題解決方案
文章起源:http://www.dlmjj.cn/article/dhhdhjj.html


咨詢
建站咨詢
