日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

VC++中的ADO宏

發布時間:2025/3/15 c/c++ 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC++中的ADO宏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

VC++中的ADO宏
在VC++中一般使用ADO(Active Database Object) 進行數據庫編程,由于函數調用中需要設置很多參數,不如VB中使用簡單。實際編程中大部分參數實際都設置為一樣的,處理方法也一樣。筆者就將ADO對象(Connection、Recordset、Command)等的常見用法封裝為宏(xOpenRecordset、xConnect、xDisconnect、xExecute、xCmdExecute)。只需在stdafx.h中加入如下文件,就可以大大減少編程工作量。

?

//文件名:db.h

//ADO數據庫宏

//日期:08-10-2003

?

#if !defined(_DB_H)

#define _DB_H

#include "icrsint.h"

//根據實際路徑修改

#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","EndOfFile")

//數據庫連接參數結構

struct Database

{

CString strUserName;? //User's ID

CString strPassword;? //User's password

CString strServer;??? //Name of database server

CString strDBName;??? //Name of database

};

typedef Database *pDatabase;

?

//打開記錄集

#define xOpenRecordset(/*_RecordsetPtr*/ rs, /*_ConnectionPtr*/ cn,/*_bstr_t*/ bt) /

HRESULT hr_rs=S_OK;/

hr_rs=rs.CreateInstance(__uuidof(Recordset));/

ASSERT(SUCCEEDED(hr_rs));/

hr_rs=rs->Open(bt,cn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);/

ASSERT(SUCCEEDED(hr_rs));

?

//執行SQL語句

#define xExecute(/*_ConnectionPtr*/ cn,/*_bstr_t*/ bt)?? /

cn->Execute(bt,NULL,adExecuteNoRecords);

?

//連接數據庫

//如果為非SQL Server數據庫,請自行修改連接字符串

#define xConnect(/*_ConnectionPtr*/ cn, /*Database*/ database) /

_bstr_t bt_cn;/

HRESULT hr_cn=S_OK;/

bt_cn=(_bstr_t)"Provider=SQLOLEDB.1;Persist Security Info=False;User ID="+(_bstr_t)database.strUserName+(_bstr_t)";Password="+(_bstr_t)database.strPassword+(_bstr_t)";Initial Catalog="+(_bstr_t)database.strDBName+(_bstr_t)";Data Source="+(_bstr_t)database.strServer;/

CoInitialize(NULL); /

hr_cn=cn.CreateInstance(__uuidof(Connection));/

ASSERT(SUCCEEDED(hr_cn));/

hr_cn=cn->Open (bt_cn,_bstr_t(""),_bstr_t(""),adModeUnknown);/

ASSERT(SUCCEEDED(hr_cn));

?

//斷開數據庫

#define xDisconnect(/*_ConnectionPtr*/ cn) /

cn->Close ();/

CoUninitialize();

?

//執行Command命令

#define xCmdExecute(/*_CommandPtr*/ cmd,/*_RecordsetPtr*/ rs,/*_ConnectionPtr*/ cn,/*_bstr_t*/ bt) /

HRESULT hr_cmd=S_OK;/

hr_cmd=cmd.CreateInstance(__uuidof(Command));/

ASSERT(SUCCEEDED(hr_cmd));/

hr_cmd=rs.CreateInstance(__uuidof(Recordset));/

ASSERT(SUCCEEDED(hr_cmd));/

cmd->CommandText =bt;/

cmd->CommandType = adCmdText;/

cmd->ActiveConnection =cn;/

rs=cmd->Execute (NULL,NULL,adCmdText );

?

//end of file

#endif

?

總結

以上是生活随笔為你收集整理的VC++中的ADO宏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人无码一区二区三区 | 夜夜操女人 | 亚洲欧洲国产视频 | 麻豆视频入口 | 亚洲av无码国产精品久久不卡 | 污黄网站在线观看 | 自拍一区在线 | www.亚洲国产| 国产av成人一区二区三区高清 | 艳妇乳肉豪妇荡乳av无码福利 | 国产成人三级在线播放 | 欧美 日韩 国产 精品 | 欧美成人国产精品一区二区 | 色婷婷久久综合 | 日本免费视频 | 国产视频在线一区 | 无遮挡在线观看 | 日韩精品中文字幕一区 | 国产无遮挡一区二区三区毛片日本 | 日本人妻不卡一区二区三区中文字幕 | 天天插天天爽 | 国产无码精品在线播放 | 一级黄色毛毛片 | 天堂网在线看 | 国产盗摄精品一区二区酒店 | 99国产视频在线 | 火影黄动漫免费网站 | 一卡二卡三卡四卡在线 | 日本欧美中文字幕 | 一区二区国产精品精华液 | 好吊色在线视频 | 成年网站在线观看 | 99久久精品一区二区 | av在线超碰 | 可以直接看的毛片 | 久久久精品国产sm调教 | 少妇高潮淫片免费观看 | 很黄的网站在线观看 | 国产精品视频合集 | 日韩精品一区二区三区在线观看 | 欧美日韩国产高清视频 | 久久狠| 在线www色| 欧美视频一二三区 | 一级黄色毛毛片 | 中文在线不卡视频 | yjizz视频 | 亚洲欧美一区二区三区孕妇 | 国产一区在线观看视频 | 日日碰狠狠添天天爽 | 国产综合精品久久久久成人影 | 久久丁香| 激情午夜天 | 色99色| 老牛影视av老牛影视av | 免费看黄20分钟 | 一区二区三区在线免费观看 | 一本—道久久a久久精品蜜桃 | 美女久久 | 免费不卡av在线 | 免费观看的黄色网址 | japanese24hdxxxx日韩 | 国产免费一区二区三区网站免费 | 色婷婷中文字幕 | 色偷偷综合 | 91喷水视频 | 国产一区二区在线播放 | 国产顶级毛片 | 男人草女人| 黄黄的视频在线观看 | 欧美91精品久久久久国产性生爱 | 国产精品xxx| 黄色日比视频 | 芭乐视频色 | 日本三级午夜理伦三级三 | 少妇特黄a一区二区三区88av | 波多野吉衣中文字幕 | 视频一区二区在线观看 | 亚洲欧美一区二区视频 | 国产精品一区二区久久国产 | 成人免费看片视频 | 人人爽在线 | 中国美女一级片 | 亚洲毛茸茸 | 国产av无毛 | 日日夜夜噜噜噜 | 日本美女交配 | 在线视频免费观看一区 | 在办公室被c到呻吟的动态图 | 午夜67194| 懂色a v| 亚洲成人免费视频 | 欧美性教育视频 | 看日本毛片| 熟妇高潮一区二区高潮 | 一级片免费观看视频 | 欧美乱淫视频 | 成人高清在线观看 | 亚洲婷婷小说 |