前几天在研究C/C++链接MSSQL数据的方法,前前后后在网上找了不少的文章,大多数文章都没法真正的解决入门新手的全部疑惑,所以在此整理一下自己整个连接数据库的过程,希望能帮到有需要的人。

一、首先是MSSQL server的安装,相信有不少同学会卡在这边。我安装的是MSSQL server2008 R2,前后也失败了几次。总结一下经验:1、安装前最好把360,防火墙都关了;2、一定要将SQL server数据库引擎安装成功,不然就不算安装成功;3、如果安装失败,需要重新安装,重新安装之前需要把之前安装的MSSQL完全卸载,方法如下链接http://wenku.baidu.com/view/569e4823a5e9856a561260a0.html; 4、重新安装的时候需要注意的是,将MSSQL server 2008 R2安装程序所在的路径添加到windows环境变量中(右击计算机---》属性---》高级系统设置---》环境变量---》系统变量(找到path)---》编辑---》添加符号 ; ---》把路径补上)。差不多这样就应该把SQL server 2008 R2安装成功了,具体方法我就部累述了。

二、创建ODBC数据源。

1、首先是打开控制面板---》管理工具---》数据源(ODBC),打开后如图所示:

PS:这个是我已经添加好的数据源。

2、选择用户DSN,点击添加,先择SQL server选项,点完成。注意添加前请将数据库服务启动:

3、给数据源命名,选择你安装MSSQL时创建的数据服务器,点下一步:

PS:这个名称就是数据源的名称,需要记住,后面写程序的时候要用到。

4、

这里要选择使用用户输入登录ID和密码的SQL server验证,之前选择第一个一直失败,不知道什么原因。登录名为sa,表示管理员身份。这里的客户端设置为:

5、关键一步,这边有一个默认数据库,如果不改变,就是master,这里要注意:如果不改变,那么之后程序中的SQL语句操作就是在master数据库中,除非你的SQL语句中加了use databasename。之前楼主就是遇到了这个问题,后面程序中会提到。

6、下一步,下一步,一直到完成。OK啦。

三、C/C++程序操作数据库。

终于到了最后一步了,不过楼主在这边也卡了很久(网上很多程序都不全,而且也米什么解释,蛋疼)。

在VS2010中创建Win32控制台应用程序项目,在里面新建一个.cpp文件(就是正常的写代码流程)。然后需要注意的是,我们要将文件的项目属性---》常规---》字符集改成是未设置,默认应该是使用Unicode字符集。

下面贴上代码:

#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>
#include <odbcss.h>
#define MAXBUFLEN 255
SQLHENV henv = SQL_NULL_HENV;
SQLHDBC hdbc1 = SQL_NULL_HDBC;
SQLHSTMT hstmt1 = SQL_NULL_HSTMT;/*   cpp文件功能说明:
1.数据库操作中的添加,修改,删除,主要体现在SQL语句上a
2.采用直接执行方式和参数预编译执行方式两种
*/int main()
{
RETCODE retcode;UCHAR   szDSN[15] = "MYDB"; //数据源名称
UCHAR userID[6] = "sa";//数据库用户ID
UCHAR passWORD[29] = "wu57862520";//用户密码//1.连接数据源
//1.环境句柄
retcode   =   SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE ,&henv);
retcode   =   SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);
//2.连接句柄
retcode   =   SQLAllocHandle(SQL_HANDLE_DBC,   henv,   &hdbc1);
retcode   =   SQLConnect(hdbc1,   szDSN,   SQL_NTS,   userID,   SQL_NTS, passWORD,   SQL_NTS);
//判断连接是否成功
if   (   (retcode   !=   SQL_SUCCESS)   &&   (retcode   !=   SQL_SUCCESS_WITH_INFO)   )
{
printf("连接失败!\n");
}
else
{
/*
1.分配一个语句句柄(statement handle)
2.创建SQL语句
3.执行语句
4.销毁语句
*/
retcode   =   SQLAllocHandle(SQL_HANDLE_STMT,   hdbc1,   &hstmt1);
char sql[100] = "insert into test values(22,22)";
/*
这里需要在数据库中有test表,要事先建好哦。
楼主当时就是卡在这里,因为我的默认数据是master,但是我一直操作的是test数据库中的test表,所以一直失败。
大家一定要注意,如果创建数据源的时候是默认的master数据库,而要操作test数据库中的表,要”use test insert into test//values(2,1)“
*/retcode   = SQLExecDirect(hstmt1,(SQLCHAR *)sql,strlen(sql));
printf("操作成功!");
//释放语句句柄
retcode   = SQLCloseCursor (hstmt1);
retcode   = SQLFreeHandle (SQL_HANDLE_STMT, hstmt1);
}
//3.断开数据库连接
/*
1. 断开数据库连接
2.释放连接句柄.
3.释放环境句柄(如果不再需要在这个环境中作更多连接)
*/
SQLDisconnect(hdbc1);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc1);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
return(0);
}

这只是一个简单的插入语句,更多操作,我们可以参考ODBC API,这里我就不累述了。

最后,希望大家都没成功!

C/C++使用ODBC连接MSSQL数据库相关推荐

  1. 【转发】PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库

    转发自:http://blog.csdn.net/lccee/article/details/54289076 课前小知识普及:MSSQL和SQL Server是同一个软件,叫法不同而已,MSSQL全 ...

  2. mssql 远程无法连接mysql_在本地 怎么远程连接MSSQL数据库

    hp连接mssql数据库有几个注意事项,尤其mssql的多个版本.32位.64位都有区别. 首先,php.ini文件中;extension=php_pdo_mssql.dll ;extension=p ...

  3. php连接mssql数据库的几种方式

    数据库查询不外乎4个步骤,1.建立连接.2.输入查询代码.3.建立查询并取出数据.4.关闭连接. php连接mssql数据库有几个注意事项,尤其mssql的多个版本.32位.64位都有区别. 首先,p ...

  4. php连接mssql数据库的几种方法,php连接mssql数据库的几种的实现方法

    这篇文章主要为大家详细介绍了php连接mssql数据库的几种的实现方法,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧! 首先,php.ini文件中;ex ...

  5. php5.3无法加载mysql数据库模块_PHP_php5.3不能连接mssql数据库的解决方法,本文实例讲述了php5.3不能连接m - phpStudy...

    php5.3不能连接mssql数据库的解决方法 本文实例讲述了php5.3不能连接mssql数据库的解决方法.分享给大家供大家参考.具体分析如下: 自从php5.3之后系统就不支持mssql_conn ...

  6. php mysql odbc_javascript连接mysql与php通过odbc连接任意数据库的实例

    脑洞大开用javascript链接mysql,2个小时总算实现了,用到了odbc,后面又想到用php链接odbc链接数据库,也实现了,就把案例放一下. 注意事项: 1.javascript连接mysq ...

  7. python mss_Python实现的连接mssql数据库操作示例

    本文实例讲述了python实现的连接mssql数据库操作.分享给大家供大家参考,具体如下: 1. 目标数据sql2008 r2 comprject=>testmodel 2. 安装python ...

  8. 数据库设置为php5.3,php5.3不能连接mssql数据库的解决方法,php5.3mssql_PHP教程

    php5.3不能连接mssql数据库的解决方法,php5.3mssql 本文实例讲述了php5.3不能连接mssql数据库的解决方法.分享给大家供大家参考.具体分析如下: 自从php5.3之后系统就不 ...

  9. php5.3不能连接mssql数据库的解决方法

    这篇文章主要介绍了php5.3不能连接mssql数据库的解决方法,针对php5.3之后不支持mssql_connect函数提供了对应的解决方法,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例讲 ...

最新文章

  1. Lumion模型库 Unique Pro Lumion Library 2021
  2. Linux 中Sublime Text 3无法输入中文的问题
  3. 算法:枚举法---kotlin
  4. 【Android 异步操作】Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )
  5. 03--MySQL自学教程:MySQL安装后的目录结构介绍和简单语法指令
  6. Python基础——PyCharm版本——第八章、文件I/O(核心1)
  7. 计算机操作系统(2):OS的发展过程
  8. leapmotion 控制面板的启动
  9. 蛋糕是叫胚子还是坯子_这个生日蛋糕太适合手残党了,不会裱花也能做,学会再不买着吃了...
  10. Matlab实现Hermite插值多项式
  11. 微信小程序打开另一个小程序
  12. 概率论与随机过程难题整理复习
  13. Error opening dll library错误的解决
  14. 硬盘维修彻底揭密 新手必读
  15. 2011年10月买到Incredible S G11山寨,大家警惕!
  16. 2021-10-21分享几个贼拉好用的电脑小窍门
  17. 东南亚痴狂诈骗的背后,意外暴露一个大型“围猎”程序员的现场
  18. 图像上色 (Image-Colorization) 项目
  19. 嵌入式linux解决方法 | bin文件烧写不到SD卡中
  20. 中小型企业的网站建设策划方案怎么写?

热门文章

  1. Axure8.0基础教程 一
  2. CFG保护机制校验逻辑分析
  3. 单向链表与双向链表的区别
  4. 小米10开始抓取日志怎么关闭_除了*#*#6485#*#*,小米手机还有这些神秘暗号
  5. 【题解】NOIP-2016 天天爱跑步
  6. 微信小程序开发自学笔记 —— 九、微信开发者工具
  7. WebGL入门(六)-通过坐标计算实现图形的平移、旋转和缩放变换
  8. Mooc_AutoCAD绘制建筑施工图_单元平面图测验题
  9. python xmind转excel 知乎_XMind: ZEN 重磅更新!新增导出Word/Excel,自定义快捷键和其他...
  10. android edittext 排版,EditText和TextView出现中文、英文等string串的排版问题