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

山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版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 閱讀(3472) 評論(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>
            在线观看亚洲专区| 亚洲精品美女91| 亚洲综合欧美| 一区二区三区av| 国产精品扒开腿做爽爽爽软件| 一区二区三区日韩欧美精品| 夜夜爽av福利精品导航 | 99国产精品视频免费观看| 激情五月综合色婷婷一区二区| 韩国av一区二区三区| 亚洲第一福利在线观看| 欧美成人激情视频免费观看| 欧美国产精品劲爆| 亚洲午夜激情| 欧美一区二区三区免费视| 揄拍成人国产精品视频| 亚洲国产经典视频| 欧美日韩国产丝袜另类| 亚洲欧美国产制服动漫| 久久国产精品久久精品国产| 亚洲国产精品激情在线观看| 亚洲精品久久久久久一区二区| 国产精品av免费在线观看| 久久久久国产一区二区| 美腿丝袜亚洲色图| 亚洲亚洲精品三区日韩精品在线视频| 亚洲欧美另类中文字幕| 亚洲国产免费| 亚洲在线第一页| 亚洲国产日韩精品| 亚洲免费人成在线视频观看| 在线观看视频免费一区二区三区| 91久久精品日日躁夜夜躁欧美| 国产精品一卡二卡| 亚洲韩国精品一区| 国产一区二区三区四区hd| 亚洲日产国产精品| 狠狠色噜噜狠狠色综合久 | 亚洲午夜一区二区三区| 久久久久久夜| 欧美一级专区| 欧美日韩精品一区二区天天拍小说 | 欧美了一区在线观看| 久久精品免视看| 欧美色精品天天在线观看视频| 久久综合网络一区二区| 国产精品三上| 亚洲精品视频一区| 影音先锋久久精品| 性欧美超级视频| 亚洲一级片在线观看| 模特精品在线| 免费美女久久99| 国内精品久久久久影院 日本资源| 亚洲免费精品| 99一区二区| 欧美~级网站不卡| 久久综合伊人77777| 国产精品自拍一区| 亚洲女爱视频在线| 性高湖久久久久久久久| 欧美性猛交99久久久久99按摩| 亚洲国产日韩欧美在线99| 亚洲电影在线看| 蜜臀av一级做a爰片久久| 久久综合一区| 亚洲电影免费在线观看| 久久婷婷国产麻豆91天堂| 久久久高清一区二区三区| 国产精品天天看| 香蕉尹人综合在线观看| 久久精品国产亚洲a| 国产一区二区三区免费在线观看| 午夜日韩激情| 噜噜噜噜噜久久久久久91| 一区二区三区在线观看国产| 久久精精品视频| 欧美大片免费观看| 亚洲精品一区在线观看香蕉| 欧美精品在线一区二区三区| 99精品福利视频| 一区二区三区免费在线观看| 欧美日韩播放| 亚洲午夜成aⅴ人片| 欧美自拍偷拍| 一区视频在线看| 欧美日产国产成人免费图片| 一卡二卡3卡四卡高清精品视频| 亚洲欧美国产不卡| 国产日韩在线播放| 免费在线看一区| 亚洲另类自拍| 久久精品99国产精品| 亚洲国产精品传媒在线观看| 欧美另类综合| 性色av一区二区怡红| 女人天堂亚洲aⅴ在线观看| 日韩视频在线一区二区| 国产欧美一区二区视频| 久久伊伊香蕉| 一区二区三区免费看| 久久久天天操| 一区二区三区欧美在线| 国户精品久久久久久久久久久不卡| 麻豆久久精品| 亚洲欧美精品一区| 亚洲国产综合视频在线观看| 性做久久久久久| 亚洲日本一区二区| 国产区精品在线观看| 欧美黄色一区二区| 久久精品亚洲乱码伦伦中文| 99re8这里有精品热视频免费| 久久亚洲视频| 亚洲欧美久久久| 亚洲伦理久久| 在线观看一区| 国产欧美精品国产国产专区| 欧美精品一区三区| 久久久久久91香蕉国产| 亚洲一区在线观看视频| 亚洲激情在线播放| 欧美h视频在线| 久久久亚洲国产天美传媒修理工| 在线综合亚洲欧美在线视频| 在线精品在线| 国产一区二区中文字幕免费看| 欧美日韩久久不卡| 欧美成人免费一级人片100| 欧美伊人久久大香线蕉综合69| 一区二区三区欧美在线| 亚洲国产视频直播| 老牛嫩草一区二区三区日本 | 国产亚洲一二三区| 国产精品久久久久77777| 欧美人交a欧美精品| 噜噜噜91成人网| 久久全球大尺度高清视频| 欧美在线啊v一区| 欧美一区激情| 久久成人精品电影| 午夜国产精品视频| 亚洲欧美日韩精品在线| 亚洲男人的天堂在线观看| 这里是久久伊人| 亚洲网站啪啪| 亚洲桃花岛网站| 午夜激情亚洲| 久久精品日产第一区二区| 久久久久久成人| 久久综合一区| 免费一级欧美片在线观看| 欧美~级网站不卡| 欧美日韩精品国产| 欧美午夜片在线观看| 国产精品三区www17con| 国产一区二区三区在线观看精品| 国产在线乱码一区二区三区| 在线看欧美视频| 亚洲精品欧美专区| 亚洲性av在线| 欧美在线免费看| 欧美成人综合一区| 一本到高清视频免费精品| 亚洲欧美精品在线| 久久久久综合一区二区三区| 男女激情视频一区| 欧美性事免费在线观看| 国产一区二区三区久久精品| 伊伊综合在线| 一区二区毛片| 久久久久久久久岛国免费| 欧美福利视频网站| 亚洲视频第一页| 久久久久久久欧美精品| 欧美另类综合| 国产一区二区黄色| 亚洲精选一区| 久久久久在线| 亚洲乱码国产乱码精品精98午夜| 亚洲一区久久| 欧美电影在线播放| 国产区亚洲区欧美区| 日韩午夜激情| 久久免费精品视频| 一区二区三区精品视频| 久久综合九色99| 国产日产欧美一区| 在线亚洲伦理| 欧美国产精品一区| 午夜精品免费在线| 欧美日韩国产探花| 1000部国产精品成人观看| 午夜精品成人在线| 亚洲国产精品久久久久婷婷884| 午夜精彩视频在线观看不卡| 欧美激情一区二区久久久| 狠狠久久婷婷| 久久久国产视频91| 亚洲午夜在线观看视频在线|