IT技术互动交流平台

C++与SQLServer2008连接及配置

来源:IT165收集  发布日期:2016-04-11 21:28:44

SQL Server2008配置

安装完成后需要确保SQL Server服务启动,启动的步骤如下:
1. 在开始菜单–>Microsoft SQL Server 2008 R2–>配置工具–>sql server 配置管理器,打开配置管理器,切换到如下界面
这里写图片描述
在这个界面中启动如图中的服务,启动方法:右击–>启动
如果切换开启用户为本地电脑账户,则需要本地电脑账户设置密码,否则会提示错误

然后切换到如下界面:
这里写图片描述
在这个界面中启动右侧中SQL Server(MSSQLSERVER)这个选项(如果是启动状态,配置了如上中的界面,就需要重新启动)
2. 在开始菜单–>Microsoft SQL Server 2008 R2–>SQL Server Management Studio,打开SQL Server Management Studio软件登陆数据库如下图所示:
这里写图片描述
配置账户sa
点击连接进入数据库管理界面,,在数据库中已经默认创建了一个登陆名(sa), 右击登陆名下的sa–>属性,进入如下界面
这里写图片描述
在这个界面(常规)中设置密码(密码确认密码是以后用sa登陆数据库的密码),切换到状态界面中,如下图设置
这里写图片描述
如果禁用拒绝,C++连接就会出现异常
配置数据库安全性连接配置
配置数据库的安全性,右击数据库服务(根目录)–>属性–>安全性,如下图配置:
这里写图片描述
服务器身份验证一定要选择SQL Server和Windows 身份验证模式,否则C++用sa这个用户名登陆不上,会出现提示未知错误
连接选项卡中,勾选允许连接到此服务器,不然连接数据库失败

SQL Server2008的问题

已成功与服务器建立连接,但是在登录过程中发生错取。(provider:共享内存提供程序,error:0-管道的另一端上无任何进程。)(Microsoft SQL Server,错误:233)
解决方法:打开程序所有程序Microsoft SQL Server 2005配置工具SQL Server 配置管理器,在弹出的窗体中,找到SQL Server 2005 网络配置,把MSSQLSERVER的协议下的Named PipesTCP/IP启动,然后重新启动Microsoft SQL Server 2005就可以了。 SQL Server 配置管理器远程过程调用失败。[0x800706be]解决方案
电脑上安装了两个版本的SQL server,卸载另个SQL server版本

C++操作SQL Server2008

连接数据库

加载.dll文件
using namespace std;
#import 'path\msado15.dll' no_namespace rename('EOF', 'adoEOF')  /*path是msado15.dll的路径*/
/*在类中定义如下几个变量*/
_ConnectionPtr m_pConnection;  
_CommandPtr m_pCommand;  
_RecordsetPtr m_pRecordSet;/*如果_ConnectionPtr提示未找到,检查你的msado15.dll路径是否设置正确*/
连接数据库
HRESULT hr=CoInitialize(NULL);  //初始化COM  ;  
if(FAILED(hr))
{
    //初始化COM失败  ;  
    return;
}
hr = m_pConnection.CreateInstance(('ADODB.Connection')); /*创建实例*/
/*hr = m_pConnection.CreateInstance(__uuidof (Connection ));*/
if(FAILED(hr))
{
    //对象指针实例化失败  ;  
    return;
}
try  
{
    _bstr_t strConnect= 'Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=QPServerInfoDB;Data Source=192.168.1.7,1433;';/*Data Source 是本机IP地址或者网络地址*/
    /*'Provider=SQLOLEDB.1;Password=123;Persist Security Info=False;User ID=sa;Initial Catalog=QPServerInfoDB;Data Source=PC201602252148';*/
    /*'Driver={sql server};server=PC201602252148;uid=sa;pwd=123'*/
    /*'Driver={sql server};server=192.168.0.7,1433;uid=sa;pwd=123'*/
    hr=hr=m_pConnection->Open(strConnect, L'',L'', adModeUnknown);
    if(FAILED(hr))/*FAILED(hr)代表hr<0*/
    {
        /*打开数据库失败*/
    }
} 
catch(_com_error &e)  
{  
    MessageBox(e.ErrorMessage()); /*打印出异常原因*/
}

连接数据库中Persist Security Info=True这个属性的解释
Persist Security Info属性的意思是表示是否保存安全信息,其实可以简单的理解为”ADO在数据库连接成功后是否保存密码信息”,
True表示保存,False表示不保存
测试环节

数据库连接前

ConnectString='Provider=MSDAORA.1;Password=mypassword;User ID=yzs;Data Source=ydgl22;Persist Security Info=false'

数据库连接成功后

ConnectString='Provider=MSDAORA.1;User ID=yzs;Data Source=ydgl22'

数据库连接前

ConnectString='Provider=MSDAORA.1;Password=mypassword;User ID=yzs;Data Source=ydgl22;Persist Security Info=true'

数据库连接成功后

ConnectString='Provider=MSDAORA.1;Password=mypassword;User ID=dlyx;Data Source=ydgl22'

C++连接问题

IDispatch error #3149异常
检查数据库是否可以连接,测试方法:
新建一个.txt文件,重命名为新建文本文档.udl,然后
检查strConnect字符串是否合法,右击属性–>提供程序,选择如下:
这里写图片描述
切换到连接,如下:
这里写图片描述
服务没有开启,或者没有按照上面的步骤设置服务器,设置完成后要重启
Tag标签: C++  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规