在VS下用C语言连接SQLServer2008
原文:在VS下用C语言连接SQLServer2008

step1:启动SQLSERVER服务

step2:打建立数据库test,在test库中建立test表(a varchar(200),b varchar(200))
 step3:建立系统DSN,开始菜单 ->运行 ->odbcad32,
  添加->SQL SERVER Native Client 10.0
 名称:csql,服务器:localhost
 使用用户使用登录ID和密码的SQLSERVER验证,登录ID:sa,密码:pass
  更改默认的数据库为:test
 ...
 测试数据源,测试成功,即DNS添加成功。

-------------------------------------------------------------------

#include <stdio.h>

#include <string.h>   
#include <windows.h>   
#include <sql.h>   
#include <sqlext.h>   
#include <sqltypes.h>   
#include <odbcss.h>

SQLHENV henv = SQL_NULL_HENV;   
SQLHDBC hdbc1 = SQL_NULL_HDBC;   
SQLHSTMT hstmt1 = SQL_NULL_HSTMT;

/*
    cpp文件功能说明:
    1.数据库操作中的添加,修改,删除,主要体现在SQL语句上
    2.采用直接执行方式和参数预编译执行方式两种
*/
int main(){   
    char a[200]="bbb";
    char b[200]="200";
    SQLINTEGER   p;
    RETCODE retcode;   
    UCHAR    szDSN[SQL_MAX_DSN_LENGTH+1]   =   "csql",   
            szUID[MAXNAME]   =   "sa",   
            szAuthStr[MAXNAME]   =   "pass";  
    //SQL语句
        //直接SQL语句
    UCHAR    sql[37] = "insert into test values('aaa','100')";
        //预编译SQL语句
    UCHAR    pre_sql[29] = "insert into test values(?,?)";
    //1.连接数据源
        //分配ODBC环境句柄

retcode   =   SQLAllocHandle   (SQL_HANDLE_ENV,   NULL,   &henv);

// 告诉ODBC这是一个3.0标准的应用程序

retcode   =   SQLSetEnvAttr(henv,   SQL_ATTR_ODBC_VERSION,   (SQLPOINTER)SQL_OV_ODBC3,   SQL_IS_INTEGER);

// 分配连接句柄并建立连接
    retcode   =   SQLAllocHandle(SQL_HANDLE_DBC,   henv,   &hdbc1);   
    retcode   =   SQLConnect(hdbc1,   szDSN,(SWORD)strlen(szDSN),   szUID,(SWORD)strlen(szUID),   szAuthStr,(SWORD)strlen(szAuthStr));    
    //判断连接是否成功
    if   (   (retcode   !=   SQL_SUCCESS)   &&   (retcode   !=   SQL_SUCCESS_WITH_INFO)   )   {     
        printf("连接失败!\n");
    }   else   {   
        //2.创建并执行一条或多条SQL语句
        /*
        1.分配一个语句句柄(statement handle)
        2.创建SQL语句
        3.执行语句
        4.销毁语句
        */
        retcode   =   SQLAllocHandle(SQL_HANDLE_STMT,   hdbc1,   &hstmt1);   
        //第一种方式
        //直接执行
        //添加操作
        //SQLExecDirect (hstmt1,sql,37);
        
        //第二种方式
        //绑定参数方式
        
         p   =   SQL_NTS;
        //1预编译
        SQLPrepare(hstmt1,pre_sql,29); //第三个参数与数组大小相同,而不是数据库列相同
        //2绑定参数值
        SQLBindParameter(hstmt1,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,200,0,&a,0,&p);
        SQLBindParameter(hstmt1,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,200,0,&b,0,&p);
        //3 执行
        SQLExecute(hstmt1);
        
        printf("操作成功!");
        //释放语句句柄
        SQLCloseCursor (hstmt1);
        SQLFreeHandle (SQL_HANDLE_STMT, hstmt1);
    
    }   
    //3.断开数据源
    /*
     1.断开与数据源的连接.
     2.释放连接句柄.
     3.释放环境句柄(如果不再需要在这个环境中作更多连接)
    */
    SQLDisconnect(hdbc1);    
    SQLFreeHandle(SQL_HANDLE_DBC, hdbc1);   
    SQLFreeHandle(SQL_HANDLE_ENV, henv);   
    system("pause");
    return(0);   
}

-------------------------------------------------------------------------------------------------------------------------------------

注意,表名不能取mh_login,只能login

posted on 2014-12-09 13:19 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/4153032.html

在VS下用C语言连接SQLServer2008相关推荐

  1. c语言sqlserver进行odbc编程,在VS下用C语言连接SQLServer2008

    原文: 在VS下用C语言连接SQLServer2008 step1:启动SQLSERVER服务 step2:打建立数据库test,在test库中建立test表(a varchar(200),b var ...

  2. Linux 下用C语言连接 sqlite

    1.在 /home/ 新建一个文件夹名为 sqlite #cd /home #mkdir sqlite 2.编写C语言代码,名称为 sql.c,代码如下 // name: sql.c // This ...

  3. win10 mfc 连接mysql_win10下使用c语言连接mysql

    准备工作:clion和cmake 第一步:下载库文件 第二部:配置CMakeList.txt //头文件目录 set(INC_DIR F:/c/mysql-connector-c-6.1.11-win ...

  4. linux下c语言调用mysql,Linux下C语言连接MySQL

    首先保证安装: 1:安装MySQL:sudo apt-get install mysql-server mysql-client 2:安装MySQL开发包:sudo apt-get install l ...

  5. c语言 mysql_bind,C语言连接SQLSERVER数据库

    第一步:配置ODBC.在配置ODBC时有用户DSN.系统DSN.和文件DSN三种方法,为了稳妥起见,采用系统DSN. DSN的名字叫LocalServer,帐号:sa,密码123456 第二步:打开V ...

  6. c语言 连接 mysql,C语言连接mysql -select

    C语言实现查询mysql数据库的行数,列的属性,以及每条记录. /* select.c */ #include #include #include #include "/usr/includ ...

  7. Windows下C语言连接Oracle数据库

    为什么80%的码农都做不了架构师?>>>    最近公司有个项目需要用到Oracle数据库,我负责前期的调研.由于项目要用到C和PHP两种语言,所以先收集这两种语言连接Oracle的 ...

  8. Linux下用C语言最基本的程序开发与调试

    1.建一个目录 2.写代码,建一个hello.c文件 代码: view plaincopy to clipboardprint? #include "stdio.h" main() ...

  9. R语言命令行写linux,linux命令行下使用R语言绘图实例讲解

    使用系统:centos 6.4 64bit 在R语言中可以使用png()等函数生成图片,例如: png("aa.png")可以生成图片. 但是如果你是通过shell远程连接到系统上 ...

最新文章

  1. 一行预处理代码,让你的CV模型更强!Google出品
  2. img 标签 访问图片 返回403 forbidden问题
  3. python wxpython backend wxagg_[宜配屋]听图阁
  4. 《openssl 编程》之 RSA(转)
  5. 【算法】学习笔记(5):快速排序
  6. 如何给网页标题添加icon小图标
  7. 如何在Windows的PHPstudy中使用redis数据库
  8. CSS Animatie是一款在线制作CSS3动画的工具,可以在线直接制作CSS3动画效果,生成代码...
  9. python链接mysql的代码
  10. 非参数统计之局部多项式回归
  11. win10家庭中文版升级专业版心得
  12. MongoDB实战-生产环境中分片的部署与配置
  13. 深度学习 + 基因组学:破译人类 30 亿碱基对
  14. rust future async/await
  15. 如何清除Word文档中的格式
  16. python从小白到大牛百度云盘_Python从小白到大牛
  17. HTML css jQuery实现导航栏(华丽动画)
  18. IT界的兄弟姐妹们,大家好。
  19. 计算机类国家网络安全学院,武汉大学国家网络安全学院
  20. hive split取倒数第二位

热门文章

  1. qteewidgetitem添加子节点_行为树的节点
  2. php网课资源百度云盘_安全中国PHP网站开发工程师就业指导班 35课 附课件、源码,全套视频教程学习资料通过百度云网盘下载...
  3. nginx 转发慢_为啥 Nginx 能轻松淦到几万并发?
  4. c语言fread无法存储,【求助】C语言fread读取二进制文件时,读取结果全都是零
  5. 用matlab自己搭建bp神经网络,怎样在matlab里建立一个BP神经网络模型?
  6. php-cgi 重启,自动监测和重启 FastCGI 服务
  7. 宾阳 计算机 培训,宾阳县职业技术学校
  8. bartender一行打印两个二次开发_C++ 智能指针和二叉树:图解层序遍历和逐层打印二叉树...
  9. 导入eclipse项目运行时run as no application
  10. 《本人娶刘亦菲的可行性报告》原文