這篇文章主要介紹“ADO參數(shù)的使用方法”,在日常操作中,相信很多人在ADO參數(shù)的使用方法問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”ADO參數(shù)的使用方法”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)河南,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
其實(shí)對(duì)于ADO參數(shù)這個(gè)東西我有許多想說(shuō)的,如果不設(shè)置游標(biāo)為adUseClient,那么我在取return和output參數(shù)的時(shí)候,必須在我把記錄集關(guān)閉以后才能取,就是說(shuō),必須先取記錄集,然后關(guān)閉它,***再取return和output參數(shù)。
設(shè)成adUseClient就ok了,另外有ADO參數(shù)一點(diǎn)就是,Execute 方法返回的游標(biāo)繼承該設(shè)置。Recordset 將自動(dòng)從與之關(guān)聯(lián)的連接中繼承該設(shè)置。我把pConn設(shè)成adUADO參數(shù)seClient,那么***,我的記錄集也是adUseClient的了。
在可以執(zhí)行這個(gè)存儲(chǔ)過(guò)程了m_pRecordset = m_pCommand->Execute(0,0,adCmdStoredProc);這個(gè)時(shí)候,如果接下來(lái)用variant_t ret_val = m_pCommand->Parameters->GetItem((long)0)->Value;那么將得不到值而如果像下面這樣調(diào)用的話就可以得到返回值了m_pRecordset->Close();variant_t outpuADO參數(shù)t_para = m_pCommand->Parameters->GetItem((long)0)->Value;
MS ADO.net給這一現(xiàn)象的回復(fù)是
You can think of a storADO參數(shù)ed procedure as a function in your code. The function doesn’t return a value until it has executed all of its code. If the stored procedure returns results and you haven’t finished processing these results, the stored procedure hasn’t really finished executing. Until you’ve closed the DataReader, the return and output parameters of your Command won’t contain the values returned by your stored procedure.
也就是說(shuō)Execute()函數(shù)應(yīng)該看成是直到m_pRecordset關(guān)掉以后才會(huì)正確返回.關(guān)于輸出參數(shù)的處理也和這一樣,因?yàn)榉祷刂当旧砭褪钱?dāng)成輸出參數(shù)來(lái)處理的.通過(guò)這種方法,我們可以得到一個(gè)存儲(chǔ)過(guò)程的返回值和結(jié)果集,而且對(duì)于所有的存儲(chǔ)過(guò)程都可以一樣使用,不必為某個(gè)特定ADO參數(shù)的存儲(chǔ)過(guò)程去寫(xiě)代碼,具有一定的通用性.
所以一但調(diào)用它以后,就可以獲取SP的那些信息,那些參數(shù)的信息,可以通過(guò)pCmd->Parameters->Item[_variant_t(_bstr_t(\"@pin1\") )]->Value=_variant_t(3); 這樣的方式來(lái)設(shè)置參數(shù)
如果要使用Parameter的辦法的話,就不要用refresh了,事實(shí)上,如ADO參數(shù)果先把這些參數(shù)的值設(shè)置好了,如 inParam2->Value = _variant_t(_T(\"DD1\"));,一旦refresh后,這些參數(shù)就沒(méi)有意義了。
Command.Prepare方法能夠提高數(shù)據(jù)源中重復(fù)的參數(shù)化命令的性能。Prepare指示數(shù)據(jù)源為多個(gè)調(diào)用優(yōu)化特定的命令。為了更高效率地使用Prepare,你必須十分清楚數(shù)據(jù)源怎樣回應(yīng)Prepare調(diào)用。對(duì)于類似SQL Server 2000的數(shù)據(jù)源,命令是隱式優(yōu)化的,ADO參數(shù)對(duì)Prepare的調(diào)用是沒(méi)有必要的,但是對(duì)于另一些數(shù)據(jù)源,例如SQL Server 7.0,Prepare效率更高。
到此,關(guān)于“ADO參數(shù)的使用方法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!