




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
搭建环境Visual Studio 2008 + SQL Server 2008 + MSODBC(SQL Server 2008已经携带)首先将SQL Server 2008安装好 并确保以开放1433端口。检测方法: 打开cmd 输入命令netstat an回车即可得到下图:给予以上前提我们将SQL Server 的 SQL Server身份验证模式打开,确保能够使用用户sa身份登录数据库进行操作。(这很重要)打开的方法是找到SQL Server 配置管理器将SQL Server网络配置的两个协议中的Named Pipes协议和TCP/IP协议(一共四个)全部打开。(详细方法可在网上查到)使用sa 身份登录数据库然后创建一个数据库命名为test,在建立一个test表(a varchar(200),b varchar(200)。配置C语言环境打开 Visual Studio 2008 新建项目选择 Visual C+ 下的Win32控制台应用程序设置成空项目,并输入以下代码:#include #include #include #include #include #include #include #define MAXBUFLEN 255SQLHENV henv = SQL_NULL_HENV; SQLHDBC hdbc1 = SQL_NULL_HDBC; SQLHSTMT hstmt1 = SQL_NULL_HSTMT; /*cpp文件功能说明:1.数据库操作中的添加,修改,删除,主要体现在SQL语句上a2.采用直接执行方式和参数预编译执行方式两种*/int main() RETCODE retcode; /预编译SQL语句UCHARpre_sql225 = insert into test values(?,?);SQLCHAR ConnStrInMAXBUFLEN = DRIVER=SQL Server; SERVER=127.0.0.1;UID=sa; PWD=yangsonghe;Trusted_Connection=yes;DATABASE=test; ;/1.连接数据源/1.环境句柄retcode = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE ,&henv); /*第二个参数原NULL*/ retcode = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER); /2.连接句柄 retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc1); retcode = SQLDriverConnect(hdbc1,NULL,ConnStrIn,SQL_NTS,NULL,NULL,NULL,SQL_DRIVER_NOPROMPT); /判断连接是否成功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); /第一种方式/直接执行/添加操作/SQLExecDirect (hstmt1,sql,37);/第二种方式/绑定参数方式char a200=bbb;char b200=200;SQLINTEGER 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); return(0); 程序中主要还是使用了和MySQL与C语言连接时相同的函数,但SQLDriverConnect函数参数较多且重要,需要着重理解。另外该程序的运行需要增加链接库文件odbc32.lib,odbccp32.lib程序链接方法是#pragma comment (lib, 库文件名)。注意在头文件位置写,如果使用VC6 可以再setting-link里设置。将以上步骤完成后编译运行即可得到如下结果:以上方法是非数据源连接,我们还可以使用更简单的方法:数据源连接。将test表建好以后,在运行里面输入odbc 打开ODBC数据源点击系统DNS,添加数据源:添加项选择SQL Server 名称为csql,服务器可以使用SQL Server 2008中显示的名称或者localhost或者127.0.0.1 描述可以不写选择双重身份验证并输入sa 密码。最后测试数据源,如果测试成功,说明数据源建立成功。我们可以进一步操作。代码中被注释掉的部分:/*UCHARszDSNSQL_MAX_DSN_LENGTH+1 = csql, szUIDMAXNAME = sa, szAuthStrMAXNAME = yangsonghe;*/ 即为数据源的连接方式。其代码原型如下:#include #include #include #include #include #include #include SQLHENV henv = SQL_NULL_HENV; SQLHDBC hdbc1 = SQL_NULL_HDBC; SQLHSTMT hstmt1 = SQL_NULL_HSTMT; /*cpp文件功能说明:1.数据库操作中的添加,修改,删除,主要体现在SQL语句上2.采用直接执行方式和参数预编译执行方式两种*/int main() RETCODE retcode; UCHARszDSNSQL_MAX_DSN_LENGTH+1 = csql, szUIDMAXNAME = sa, szAuthStrMAXNAME = ; /SQL语句/直接SQL语句UCHARsql37 = insert into test values(aaa,100);/预编译SQL语句UCHARpre_sql29 = insert into test values(?,?);/1.连接数据源/1.环境句柄retcode = SQLAllocHandle (SQL_HANDLE_ENV, NULL, &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, 4, szUID, 2, szAuthStr, 0); /判断连接是否成功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);/第二种方式/绑定参数方式char a200=bbb;char b200=200;SQLINTEGER 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.释放环境句柄(如果不再需要在这个环境中作更多连
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拓展“10+1”框架下的东盟基础设施建设市场
- 公司正版软件管理制度
- 公司法里基本管理制度
- 中越北部湾海洋生物多样性保护合作法律机制研究
- 2025企业合同管理规范模板:合同管理制度实施条例
- 2025医疗设备购销合同模板
- 050310JAVA程序设计课程-单选题专项
- 河北省石家庄市2023−2024学年高二下册数学期末考试数学试卷附解析
- 2025年中考语文(长沙用)课件:复习任务群5 语言的连贯、得体
- 2024~2025学年 浙江省高一语文上册期中试卷附答案
- 绿色施工评价标准【B.0.2 环境保护要素评价表】
- 离婚协议书正规打印(2025年版)
- 稀土元素常考题及答案
- 25春国家开放大学《马克思主义基本原理》专题测试1-8参考答案
- 2025年广州市越秀区五下数学期末综合测试模拟试题含答案
- 《新能源材料概论》 课件 第1章 光电转换新能源材料
- 《桥梁安全检测》课件
- 校园剧本杀创业计划书
- 《燃气安全隐患排查导则-天然气(试行)》知识培训
- 2025年中国国新基金管理有限公司招聘笔试参考题库含答案解析
- 中药调剂技术模块二 中药饮片调剂
评论
0/150
提交评论