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

山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版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 閱讀(3471) 評論(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>
            一本色道婷婷久久欧美| 久久人人看视频| 久久国产精品亚洲77777| 亚洲视频网站在线观看| 中日韩视频在线观看| 亚洲一区视频在线| 午夜精品成人在线视频| 久久精品麻豆| 亚洲第一精品在线| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美不卡视频一区| 亚洲伦理在线观看| 亚洲欧美日韩中文在线制服| 欧美一区在线视频| 欧美成人免费视频| 国产精品豆花视频| 伊大人香蕉综合8在线视| 亚洲每日更新| 久久爱www.| 亚洲黄色在线看| 亚洲欧美日韩国产中文| 免费看的黄色欧美网站| 国产精品久久久久秋霞鲁丝| 国内成+人亚洲| 一区二区欧美国产| 久久久中精品2020中文| 91久久精品美女高潮| 亚洲欧美中文在线视频| 男女视频一区二区| 国产一区二区高清| 亚洲图片欧美午夜| 欧美激情偷拍| 欧美专区在线| 国产精品高潮呻吟视频| 亚洲成色777777在线观看影院| 亚洲一区二区精品在线观看| 美日韩精品视频免费看| 亚洲一区日韩在线| 欧美日韩91| 在线精品国精品国产尤物884a| 亚洲一区三区视频在线观看| 亚洲第一视频网站| 久久久久国产精品人| 国产精品久久久久久久久久免费看| 亚洲高清色综合| 久久久一区二区三区| 亚洲一区日韩在线| 欧美三级日韩三级国产三级| 亚洲国产成人tv| 久久久精品tv| 午夜久久黄色| 国产精品久线观看视频| 日韩手机在线导航| 欧美激情一区二区三区四区| 久久久精品日韩欧美| 国产视频一区在线观看一区免费 | 欧美激情网站在线观看| 久久国产加勒比精品无码| 国产麻豆午夜三级精品| 香蕉久久精品日日躁夜夜躁| 亚洲色无码播放| 国产精品爱久久久久久久| 一区二区三区四区国产| 日韩一区二区精品视频| 欧美日韩综合视频| 香蕉成人久久| 欧美一区国产二区| 精品成人久久| 欧美激情视频一区二区三区免费| 免费成人在线观看视频| 亚洲乱码视频| 一区二区三区国产在线| 国产精品红桃| 久久久久久久久久久久久9999 | 开心色5月久久精品| 久久福利资源站| 亚洲国产欧美日韩| 亚洲精品国产精品久久清纯直播| 欧美国产三区| 亚洲欧美精品suv| 一区二区三区欧美日韩| 国产精品视频久久| 久久在线91| 欧美激情中文不卡| 亚洲欧洲av一区二区| 久久精品国产亚洲高清剧情介绍| 狠狠色丁香久久婷婷综合_中| 欧美国产日本| 国产精品久久久久国产a级| 久久久久国产免费免费| 欧美韩日一区| 久久av一区二区| 久久网站免费| 亚洲午夜一级| 久久久视频精品| 一区二区三区国产| 午夜日韩在线| 一本色道久久综合亚洲二区三区 | 欧美在线国产精品| 久久天堂精品| 欧美一区免费视频| 欧美国产高清| 久久综合九色九九| 国产精品久久久久毛片大屁完整版| 久久久久久欧美| 国产亚洲高清视频| 国产精品永久| 欧美激情片在线观看| 国产日产欧产精品推荐色| 欧美激情影院| 国产欧美精品一区二区色综合| 欧美韩日精品| 国产在线精品二区| 一本久久a久久免费精品不卡| 黄色欧美成人| 欧美视频在线看| 久久精品三级| 欧美视频中文字幕在线| 老司机午夜精品| 国产精品日本欧美一区二区三区| 亚洲成色精品| 国内欧美视频一区二区| 亚洲五月六月| 亚洲综合欧美日韩| 欧美日本亚洲| 亚洲国产91| 亚洲国产婷婷综合在线精品| 久久精品国产久精国产一老狼| 欧美一区二区三区日韩| 欧美午夜精品理论片a级按摩| 亚洲第一福利在线观看| 1000精品久久久久久久久 | 麻豆国产精品一区二区三区| 欧美中文字幕久久| 欧美体内she精视频在线观看| 91久久精品久久国产性色也91 | 久久国产黑丝| 国产一区二区三区奇米久涩| 亚洲综合999| 性视频1819p久久| 国产美女扒开尿口久久久| 亚洲午夜精品17c| 午夜国产精品视频| 国产亚洲精品aa| 久久成人羞羞网站| 美乳少妇欧美精品| 亚洲精品视频在线| 欧美日韩在线观看一区二区| 99精品99久久久久久宅男| 一区二区精品| 国产精品久久久久久亚洲毛片| 亚洲午夜电影网| 久久国产精品免费一区| 激情六月婷婷久久| 女人香蕉久久**毛片精品| 亚洲日本欧美天堂| 亚洲小说春色综合另类电影| 国产精品日本精品| 久久激情网站| 亚洲国产高清一区| 亚洲欧美精品在线| 激情视频亚洲| 欧美人与性禽动交情品| 亚洲综合清纯丝袜自拍| 久久综合一区| 99视频精品在线| 国产欧美日韩精品a在线观看| 久久久久9999亚洲精品| 亚洲三级电影在线观看| 欧美在线视频观看免费网站| 激情六月婷婷久久| 一本一本久久a久久精品综合妖精| 久久视频一区| 亚洲开发第一视频在线播放| 欧美中文在线视频| 99视频有精品| 在线观看亚洲精品| 国产精品日韩欧美| 欧美成年人视频网站欧美| 亚洲无人区一区| 欧美黑人一区二区三区| 久久国产精品99国产精| 日韩小视频在线观看| 国产在线拍偷自揄拍精品| 欧美精品一区二区在线播放| 久久aⅴ乱码一区二区三区| 99国产精品99久久久久久| 免费看精品久久片| 欧美亚洲日本国产| 99精品视频免费观看视频| 狠狠色噜噜狠狠狠狠色吗综合| 欧美三级电影精品| 欧美精品九九99久久| 久久久久久一区| 午夜精品一区二区三区在线播放| 亚洲精品视频一区| 亚洲第一在线| 欧美成人中文字幕| 美女视频一区免费观看| 久久久www成人免费精品|