2024年5月1日发(作者:)

通过ODBC连接数据库(C++)

C++连接数据库的方法有很多种,在Visual C++和SQL server的实际开发中,一般使用

ODBC或ADO技术进行开发,相关技术和产品也最为成熟。我们这里根据课程需要采用ODBC

的方法。

我使用的平台的是VS2010和SQL server 2008,优点是VS2010支持一些比较新的特性,

编程方便了很多,缺点是左侧的“服务器资源管理器”不支持SQL server 2000,但是没有关

系,在SQL server 2008上是可以连上的,大家如果和我的平台不一样的话在编程细节上可

能有些问题要注意下。

有同学表示安装了SQL server 2008之后只能通过“windows 身份验证”登陆本地数据库,

无法通过“SQL server 身份验证”登陆,这是由于安装的时候是通过“windows 身份验证”

安装的,改一下配置即可:

1. 使用“windows 身份验证”登陆数据库,点击“登录名”,右击sa,选择属性,点击状

态,确保设置如

左侧图所示。

2. 右击本地服

务器名选择属

性,更改安全性

中的服务器身份

验证如下图所示

3. 右击地服务器名选择重新启动(这一部很重要)

4. 如何还有问题的话查看目录

“D:Program

google之

FilesMicrosoft SQL

ERVERMSSQLLog”

下的

ERRORLOG

文件,找到错误代码,

打开SQL server 2008 连接一个我们测试用的数据库,使用的10.214.6.98上的数据库

db27,用户名和密码都是user277,执行以下命令:

use db27

CREATE Table book (

bno char(8) ,

category char(10) ,

title varchar(40) not null,

press varchar(30) not null,

byear int CHECK(byear > 0),

author varchar(20) not null,

price decimal(7,2) CHECK(price > 0),

total int CHECK(total >= 0),

stock int CHECK(stock >= 0),

CONSTRAINT ck CHECK(stock <= total)

)

INSERT INTO book VALUES

('12345678','数据库','数据库系统原理教程','清华大学出版社',1998,'王珊

',27.9,3,0)

INSERT INTO book VALUES

('12342378','数据库','数据库','清华大学出版社',1998,'王珊',27.9,3,0)

INSERT INTO book VALUES

('12341278','数据库','数据库','清华大学出版社',1998,'王珊',27.9,3,0)

INSERT INTO book VALUES

('14345678','数据库','数据库','清华大学出版社',1998,'王珊',27.9,3,0)

上面SQL语句执行的结果是在db27数据库中创建了一个名为book的表,里面有9列,

随后添加了4个测试数据,现在将该数据源添加到ODBC数据源管理器中,打开路径

“控制面

板所有控制面板项管理工具”

下的数据源(ODBC),添加新的数据源,选择

“SQL Server”

名称设置为db27,服务器在10.214.6.98,使用user277用户登录,完成后点击测试数据源

看能不能连上,显示测试成功后,在用户数据源中会看到刚刚添加的DSN: