加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer2008远程连接

发布时间:2020-12-12 12:49:36 所属栏目:MsSql教程 来源:网络整理
导读:Vc++(MFC) 实现 SQL? Server 的远程连接( ADO 实现) ? ? 一 、 ADO 概 述 ? ???????ADO 是 Microsoft 为 最 新 和 最 强 大 的 数 据 访 问 范 例 ? OLE?DB? 而 设 计 的 , 是 一 个 便 于 使 用 的 应 用 程 序 层 接 口 OLE.DB? 提 供 者 访 问 和 操

Vc++(MFC)

实现

SQL?

Server

的远程连接(

ADO

实现)

?

?

ADO

?

???????ADO

Microsoft

访

?

OLE?DB?

便

使

OLE.DB?

访

ADO?

使

、速

、内

使

OLE?

?

ADO

SQL?Server

?

1

ADO

??????

使

ADO

stdafx.h

#import

A

?

#include?<comdef.h>?

#include?<icrsint.h>?

#import?"C:program?filescommon?filessystemadomsado15.dll"??

?????????no_namespace?rename("EOF",?"ADOEOF")?????

使

ADO

,但

使

ADO

"ADOEOF"

使

ADO

?

2

OLE/COM

????

InitInstance()

OLE/COM

?

BOOL?******?::InitInstance

?

{?

??????

?//

?

????

?if?(!AfxOleInit())//

OLE/COM

?????????

???{?

????????AfxMessageBox("OLE

");?

?????????return?FALSE;?

????}

?

??????................

?

}?

3

?

_ConnectionPtr

_RecordsetPtr

?

_ConnectionPtr

?m_pConnection;??

?

_RecordsetPtr

?m_pRecordset;?

?

HRESULT?

hr;?

try?

{?

???hr?=?m_pConnection.CreateInstance("ADODB.Connection");

?

???if?(

SUCCEEDED(hr

))?

???{??

????????????//connect?database?

????

???

_bstr_t

?

strConnect="Provider=SQLOLEDB.1;Initial?Catalog=“

”;Data?Source=

IP";?

??????????hr?=?

m_pConnection->Open(

strConnect,"

","

",

adModeUnknown

);?

????AfxMessageBox("

");?

???}?

???

}?

catch

?

(_com_error?e

)?

{?

??

CString?

errormessage;?

???errormessage.Format("

rn

:%s",e.ErrorMessage());

?

???AfxMessageBox(errormessage);?

???return??

}?

4

?

listctrl

m_list?

winfo

id

name

ip

?

listctrl

?

m_list.InsertColumn(0,"ID");?

m_list.InsertColumn(1,"Name");?

m_list.InsertColumn(1,"IP");?

CRect?rect3;?

m_list.GetClientRect(rect3);?

m_list.SetColumnW

idth(0,rect3.W

idth()/3);

?

m_list.SetColumnW

idth(1,rect3.W

idth()/3);

?

m_list.SetColumnW

idth(2,rect3.W

idth()/3);

?

?

int?intm;?

try?

{?

???

_variant_t

?RecordsAffected;??

???m_pRecordset?=?

m_pConnection->Execute

("

SELECT

?id

name

ip?

from

???winfo",&RecordsAffected,adC

???while(!m_pRecordset->ADOEOF)?

???{?

???

_variant_t

?ID,?Name,?IP;?

????ID=?

m_pRecordset->GetCollect

("id");?

????Name=

m_pRecordset->GetCollect

("name");?

????IP=

m_pRecordset->GetCollect

("ip");?

????intm=m_list.InsertItem(0,(_bstr_t)ID);

?

????m_list.SetItem(intm,1,(_bstr_t)IP,NULL,0);

?

????m_list.SetItem(intm,2,(_bstr_t)Name,0);?

????m_pRecordset->MoveNext();?

???}?

???m_pRecordset->Close();?

}?

???catch?(_com_error?e)?

???{?

????CString?errormessage;?

????errormessage.Format("

rn

:%s",e.ErrorMessage());

?

????AfxMessageBox(errormessage);?

???return??

???}?

id?

name?

ip

listctr

?

5

?

?

???????

COM

使

CString?

COM

COM

C++

_vatiant_t

_bstr_t

COM

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读