青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版MSDN

Blog @ Blog

當華美的葉片落盡,生命的脈絡才歷歷可見。 -- 聶魯達

常用鏈接

統計

積分與排名

BBS

Blog

Web

最新評論

VC執行存儲過程

最近由于工作之需,要利用VC進行一些高級的數據庫操作,如執行存儲過程等。遍尋網絡資源發現好使的不多(經常#30XX錯誤,大部分應該是COM的VARIANT數據類型所致,其實有個討巧的方法,請看下文),在自己的實驗下小有所得。記下學習筆記以備參考:

1 進行ADO編程的必備步驟:引入msado15.dll

 #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")//避免與文件的結束符號混淆,將EOF改為adoEOF

 當然要記得在所有#include之后加入啊


2 也是必備的:初始化Com庫

 ::CoInitialize(NULL);///初始化COM庫

3 建立數據庫連接

 _ConnectionPtr m_pConnection;//連接數據庫的Com智能指針,可以自動Release ^_^
 m_pConnection.CreateInstance("ADODB.Connection");//建立實例返回HRESULT 所以最好if一下看看成功否

4 連接數據庫

 m_pConnection->Open("Driver={SQL Server};Server=localhost;Database=Northwind;UID=sa;PWD=wxy","","",adModeUnknown);
 
 最好用Try的,可以捕獲錯誤啊,例如

 try
 {
 m_pConnection->Open("Driver={SQL Server};Server=localhost;Database=Northwind;UID=sa;PWD=wxy","","",adModeUnknown);

  .........//其他數據庫操作
 }
 catch(_com_error e)
 {
  //處理錯誤吧
 }

5 創建執行存儲過程的命令對象

 _CommandPtr m_pCommand;//還是智能指針
 m_pCommand.CreateInstance("ADODB.Command");//實例
 m_pCommand->ActiveConnection = m_pConnection;//設置連接,別忘了啊
 m_pCommand->CommandText = "Test";//存儲過程為Test

 假設我的存儲過程如下:
  CREATE PROCEDURE Test
  @id int,
  @Name varchar(20),
  @sdate datetime,
  @ret char(1) output
   AS
  insert into VCStorproc values(@id,@Name,@sdate)
  if @@error=0
   set @ret=1
  else
   set @ret=0
  go

  

6 建立傳入存儲過程的參數

 存儲過程Test中輸入參數id,name,sdate 輸出參數ret  記住他們的類型和大小啊

 下面就來創建4個參數

 VC中用_ParameterPtr智能指針來建立參數,具體如下:

 _ParameterPtr m_pParam;
 m_pParam.CreateInstance("ADODB.Parameter");

 _ParameterPtr m_pParam1;//附加數字的命名習慣不好別學我啊
 m_pParam1.CreateInstance("ADODB.Parameter");

 _ParameterPtr m_pParam2;
 m_pParam2.CreateInstance("ADODB.Parameter"); 

 _ParameterPtr m_pParamRet;
 m_pParamRet.CreateInstance("ADODB.Parameter");

 別高興還沒有真正的建立好參數

 m_pParam = m_pCommand->CreateParameter("id",adInteger,adParamInput,-1,(_variant_t)"10");//給參數設置各屬性
 m_pCommand->Parameters->Append(m_pParam);//加入到Command對象的參數集屬性中

 m_pParam1 = m_pCommand->CreateParameter("Name",adVarChar,adParamInput,20,(_variant_t)"songwenfeng");
 m_pCommand->Parameters->Append(m_pParam1);

 m_pParam2 = m_pCommand->CreateParameter("sdate",adVarChar,adParamInput,32,(_variant_t)"2004-6-8");
 m_pCommand->Parameters->Append(m_pParam2);
 
 //**************
  這里有個問題:就是DateTime數據類型要用adVarChar來傳遞,由于我們的時間格式為XXXX-XX-XX XX:XX:XX所以32位足夠了,有時我們會用adDate或adDBDate類型來傳遞DateTime,這就是導致error #3015的原因之一,當然用它來傳遞應該是可以的,但是小弟至今沒有成功過,哪位大蝦知道告訴小弟一聲啊
*******//


 m_pParamRet=m_pCommand->CreateParameter("ret",adChar,adParamOutput,1);
 m_pCommand->Parameters->Append(m_pParamRet);


 大功告成,執行吧

 m_pCommand->Execute(NULL,NULL,adCmdStoredProc); 
 //***
 第一個參數是被影響的記錄數是一個VARIANT的指針變量,需要的話設個變量取過來就是了 但是MSDN說
 The RecordsAffected parameter applies only for action queries or stored procedures. RecordsAffected does not return the number of records returned by a result-returning query or stored procedure. To return this information, use the RecordCount property。就是說有返回值的存儲過程是不會返回影響的記錄數的,要使用RecordCount屬性

 第二個參數是指向Parameters的VARIANT指針,是可選的,既然設置好了參數指針就把它設為NULL吧。MSDN說
A Variant array of parameter values passed with an SQL statement. (Output parameters will not return correct values when passed in this argument.)用這個參數的話輸出參數將不會返回正確的值。微軟是不是挺有意思
*************//


 數據庫里已經有了一條新記錄了,看看

 id name  sdate
 10 songwenfeng 2004-6-8

7 最后一步,關閉連接,釋放Com,走人!!

 m_pConnection->Close();
 CoUninitialize();


 VC操作數據庫真是麻煩帶氣人,不過微軟在.net中做的十分不錯,畢竟現在VC在數據庫工程中已經很少用了(除非要求很高的效率),可是對一些老程序還得更新不是。

posted on 2008-07-03 10:42 isabc 閱讀(3470) 評論(0)  編輯 收藏 引用 所屬分類: 數據庫

廣告信息(免費廣告聯系)

中文版MSDN:
歡迎體驗

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久丁香综合五月国产三级网站| 久久亚洲综合| 欧美国产精品久久| 国产精品白丝av嫩草影院| 国产精品日韩久久久| 亚洲影院在线| 久久综合伊人77777| 午夜精品久久久久久99热软件| 久久精品日韩一区二区三区| 欧美日韩专区| 99热精品在线观看| 亚洲国产精品va在看黑人| 一区二区三区久久网| 欧美精品三级| 99国产精品国产精品久久| 蜜桃伊人久久| 久久久久一区二区| 尤物yw午夜国产精品视频| 久久久久国产精品厨房| 久久国产精品电影| 一区二区在线观看视频| 久久先锋影音av| 久久婷婷影院| 亚洲精品一区在线观看| 亚洲另类在线视频| 国产精品久久久久久久久搜平片| 亚洲综合精品自拍| 亚洲综合好骚| 激情小说另类小说亚洲欧美| 久久视频精品在线| 久久嫩草精品久久久精品| 亚洲激情婷婷| 亚洲剧情一区二区| 国产精品国色综合久久| 香蕉久久夜色| 久久精品亚洲| 99视频精品全部免费在线| 日韩视频一区| 国产精品视频xxxx| 久久综合中文字幕| 欧美福利专区| 亚洲欧美综合网| 久久久精品网| 日韩视频在线观看免费| 亚洲校园激情| 亚洲高清自拍| 亚洲午夜未删减在线观看| 狠狠色丁香久久婷婷综合_中| 欧美成人午夜视频| 欧美午夜国产| 另类国产ts人妖高潮视频| 欧美精品日本| 久久影音先锋| 欧美日韩爆操| 久久成人久久爱| 黄色亚洲精品| 欧美亚洲网站| 亚洲欧美精品一区| 欧美日韩国产一区二区| 你懂的一区二区| 亚洲第一区在线| 欧美二区在线看| 欧美mv日韩mv国产网站app| 久久精品女人的天堂av| 美女露胸一区二区三区| 亚洲无限av看| 久久一区二区三区国产精品 | 一区二区三区精密机械公司 | 蜜桃av噜噜一区| 亚洲一区二区少妇| 免费日韩av| 久久人人爽爽爽人久久久| 国产精品第一页第二页第三页| 欧美顶级艳妇交换群宴| 国内精品美女av在线播放| 一区二区三区免费观看| 亚洲第一免费播放区| 午夜精品国产精品大乳美女| 日韩一级二级三级| 欧美a级一区二区| 久久婷婷国产麻豆91天堂| 国产精品亚洲第一区在线暖暖韩国| 最新中文字幕亚洲| 91久久黄色| 免费日本视频一区| 亚洲国产成人一区| 最新热久久免费视频| 开心色5月久久精品| 两个人的视频www国产精品| 国产在线播精品第三| 午夜在线观看欧美| 久久狠狠亚洲综合| 国产偷久久久精品专区| 亚欧成人精品| 久久爱www| 国产午夜精品一区二区三区视频| 亚洲午夜高清视频| 香蕉久久一区二区不卡无毒影院| 欧美三级视频在线播放| 一本色道久久加勒比精品| 一本一本久久| 欧美三级视频| 午夜精品亚洲| 另类天堂av| 亚洲精品免费一二三区| 欧美黄色小视频| 一区二区三区国产| 久久裸体艺术| 亚洲尤物在线| 午夜国产精品影院在线观看 | 一本色道久久| 亚洲精品美女| 亚洲欧美日韩在线播放| 欧美一区观看| 免费久久99精品国产自在现线| 久久九九免费| 午夜精品亚洲| 免费日韩一区二区| 亚洲乱码视频| 欧美午夜在线| 欧美一级精品大片| 欧美sm视频| 一区二区三区高清不卡| 国产精品视频久久一区| 欧美在线1区| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久国产加勒比精品无码| 欧美ab在线视频| 国产欧美精品在线观看| 亚洲一区二区3| 午夜国产精品影院在线观看| 牛夜精品久久久久久久99黑人 | 免费观看不卡av| 国产精品av免费在线观看| 国产亚洲一级| 亚洲第一天堂av| 久久色在线观看| 亚洲福利视频一区二区| 欧美aaaaaaaa牛牛影院| 一区二区三区导航| 国产精品综合久久久| 欧美日韩另类丝袜其他| 国产精品亚洲人在线观看| 国产一区再线| 妖精成人www高清在线观看| 亚洲精品一区二区三区樱花 | 亚洲免费观看| 久久精品国产96久久久香蕉| 亚洲一二三四久久| 午夜在线电影亚洲一区| 欧美精品在线网站| 亚洲国产精品va在看黑人| 精品白丝av| 久久久久高清| 欧美韩国日本一区| 亚洲免费观看在线视频| 亚洲欧美日本国产专区一区| 欧美日韩精品一二三区| 亚洲欧洲精品一区| 夜夜爽av福利精品导航| 欧美激情aaaa| 免费中文字幕日韩欧美| 亚洲三级免费| 欧美三级电影大全| 欧美理论片在线观看| 久久久久九九九| 久久精品亚洲精品| 亚洲人成亚洲人成在线观看图片| 欧美日韩综合一区| 亚洲福利av| 9久草视频在线视频精品| 欧美激情一区二区三区蜜桃视频| 欧美怡红院视频| 国产欧美精品久久| 亚洲免费在线电影| 老巨人导航500精品| 亚洲国产成人午夜在线一区| 欧美手机在线| 91久久国产精品91久久性色| 国产欧美在线| 亚洲精品视频在线看| 一区二区三区欧美日韩| 欧美日韩爆操| 欧美一级黄色录像| 久久精品理论片| 一区二区三区在线不卡| 亚洲毛片在线观看| 亚洲激情成人在线| 亚洲精品日韩精品| 夜夜狂射影院欧美极品| 亚洲美女精品成人在线视频| 亚洲精品日韩精品| 亚洲伊人色欲综合网| 亚洲欧美日韩国产一区二区三区| 午夜国产欧美理论在线播放| 久久国产福利| 欧美成年人网站| 欧美日韩亚洲综合一区| 国产精品亚洲综合天堂夜夜| 国内精品久久久久久久果冻传媒 |