在VS2008中通过ADO方式连接SQLSERVER2005

    技术2022-05-20  51

    很多要注意的地方 只要有一个小细节出错就会连错

    大开SQL服务 远程连接还要大开SQL Brower

    首先要引入ado动态链接库文件msado15.dll

    no_namespace 声明不用命名空间

    接着就是初始建立实例

    最关键的是连接字符串

    m_pConnection->Open("Driver=SQL Server;Server=CHOU-PC//SQLEXPRESS;DATABASE=chou;UID=sa;PWD=123456","","",adModeUnknown); Driver为所需的连接驱动器 此处为"SQL Server“,大小写和空格都不能错 否则连接出错

    Server为服务器,此处连接本机,不能用127.0.0.1,而必须用数据库的实例名字

    即 主机名-PC//SQLEXPRESS 必须是两个斜杠,直接复制本机的实例名只有一个斜杠,也会导致出错

    因为在代码中第一个斜杠为转义 这个很重要

    DATABASE为连接的数据库名

    UID为登陆的数据库用户名

    PWD为用户名密码

    adModeUnknown为默认缺省访问方式 该值为0

    捕捉异常 e.Description()可以打印异常信息 查看异常信息可以帮助你找到错误

     

    代码如下

     

    #import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF","adoEOF")#include<iostream>using namespace std;void main(){CoInitialize(NULL);//注意要放在最开始_ConnectionPtr m_pConnection;HRESULT hr=m_pConnection.CreateInstance("ADODB.Connection");////m_pConnection.CreateInstance("ADODB.Connection");if(FAILED(hr))cout<<"Initialized failed."<<endl;try {  m_pConnection->Open("Driver=SQL Server;Server=CHOU-PC//SQLEXPRESS;DATABASE=chou;UID=sa;PWD=123456","","",adModeUnknown);     cout<<"ok"<<endl; system("pause");} catch(_com_error e){   cout<<"error"<<   e.Description();  return ; }}

     


    最新回复(0)