ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:27.73KB ,
资源ID:12581775      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12581775.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言连接SQL数据库.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言连接SQL数据库.docx

1、C语言连接SQL数据库连接到SAMPLE数据库,查询LASTNAME为JOHNSON的FIRSTNAME信息。 #include #include #include #include util.h #include EXEC SQL INCLUDE SQLCA; (1) main() EXEC SQL BEGIN DECLARE SECTION; (2) char firstname13; char userid9; char passwd19; EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT TO sample; (3) EXEC SQL SEL

2、ECT FIRSTNME INTO :firstname (4) FROM employee WHERE LASTNAME = JOHNSON;(4) printf( First name = %sn, firstname ); EXEC SQL CONNECT RESET; (5) return 0; 上面是一个简单的静态嵌入SQL语句的应用程序。它包括了嵌入SQL的主要部分: (1)中的include SQLCA语句定义并描述了SQLCA的结构。SQLCA用于应用程序和数据库之间的通讯,其中的SQLCODE返回SQL语句执行后的结果状态。 (2)在BEGIN DECLARE SECTION

3、和END DECLARE SECTION之间定义了宿主变量。宿主变量可被SQL语句引用,也可以被C语言语句引用。它用于将程序中的数据通过SQL语句传给数据库管理器,或从数 据库管理器接收查询的结果。在SQL语句中,主变量前均有“:”标志以示区别。 (3)在每次访问数据库之前必须做CONNECT操作,以连接到某一个数据库上。这时,应该保证数据库实例已经启动。 (4)是一条选择语句。它将表employee中的LASTNAME为“JOHNSON”的行数据的FIRSTNAME查出,并将它放在 firstname变量中。该语句返回一个结果。可以通过游标返回多个结果。当然,也可以包含update、inse

4、rt和delete语句。 (5)最后断开数据库的连接。 从上例看出,每条嵌入式SQL语句都用EXEC SQL开始,表明它是一条SQL语句。这也是告诉预编译器在EXEC SQL和“;”之间是嵌入SQL语句。如果一条嵌入式SQL语句占用多行,在C程序中可以用续行符“”。 C语言与SQL SERVER数据库1.使用C语言来操作SQL SERVER数据库,采用ODBC开放式数据库连接进行数据的添加,修改,删除,查询等操作。step1:启动SQLSERVER服务,例如:HNHJ,开始菜单 -运行 -net start mssqlserverstep2:打开企业管理器,建立数据库test,在test库中建

5、立test表(a varchar(200),b varchar(200)step3:建立系统DSN,开始菜单 -运行 -odbcad32,添加-SQL SERVER名称:csql,服务器:HNHJ使用用户使用登录ID和密码的SQLSERVER验证,登录ID:sa,密码: 更改默认的数据库为:test.测试数据源,测试成功,即DNS添加成功。2.cpp文件完整代码/#save.cpp#C代码 1.#include 2.#include 3.#include 4.#include 5.#include 6.#include 7.#include 8.9.SQLHENVhenv=SQL_NULL_H

6、ENV; 10.SQLHDBChdbc1=SQL_NULL_HDBC; 11.SQLHSTMThstmt1=SQL_NULL_HSTMT; 12.13./* 14.cpp文件功能说明: 15.1.数据库操作中的添加,修改,删除,主要体现在SQL语句上 16.2.采用直接执行方式和参数预编译执行方式两种 17.*/18.intmain() 19.RETCODEretcode; 20.UCHARszDSNSQL_MAX_DSN_LENGTH+1=csql, 21.szUIDMAXNAME=sa, 22.szAuthStrMAXNAME=; 23./SQL语句 24./直接SQL语句 25.UCHA

7、Rsql37=insertintotestvalues(aaa,100); 26./预编译SQL语句 27.UCHARpre_sql29=insertintotestvalues(?,?); 28./1.连接数据源 29./1.环境句柄 30.retcode=SQLAllocHandle(SQL_HANDLE_ENV,NULL,&henv); 31.retcode=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION, 32.(SQLPOINTER)SQL_OV_ODBC3, 33.SQL_IS_INTEGER); 34./2.连接句柄 35.retcode=SQL

8、AllocHandle(SQL_HANDLE_DBC,henv,&hdbc1); 36.retcode=SQLConnect(hdbc1,szDSN,4,szUID,2,szAuthStr,0); 37./判断连接是否成功 38.if(retcode!=SQL_SUCCESS)&(retcode!=SQL_SUCCESS_WITH_INFO) 39.printf(连接失败!n); 40.else 41./2.创建并执行一条或多条SQL语句 42./* 43.1.分配一个语句句柄(statementhandle) 44.2.创建SQL语句 45.3.执行语句 46.4.销毁语句 47.*/48.

9、retcode=SQLAllocHandle(SQL_HANDLE_STMT,hdbc1,&hstmt1); 49./第一种方式 50./直接执行 51./添加操作 52./SQLExecDirect(hstmt1,sql,37); 53. 54./第二种方式 55./绑定参数方式 56.chara200=bbb; 57.charb200=200; 58.SQLINTEGERp=SQL_NTS; 59./1预编译 60.SQLPrepare(hstmt1,pre_sql,29);/第三个参数与数组大小相同,而不是数据库列相同 61./2绑定参数值 62.SQLBindParameter(hst

10、mt1,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,200,0,&a,0,&p); 63.SQLBindParameter(hstmt1,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,200,0,&b,0,&p); 64./3执行 65.SQLExecute(hstmt1); 66. 67.printf(操作成功!); 68./释放语句句柄 69.SQLCloseCursor(hstmt1); 70.SQLFreeHandle(SQL_HANDLE_STMT,hstmt1); 71. 72. 73./3.断开数据源 74./* 75

11、.1.断开与数据源的连接. 76.2.释放连接句柄. 77.3.释放环境句柄(如果不再需要在这个环境中作更多连接) 78.*/79.SQLDisconnect(hdbc1); 80.SQLFreeHandle(SQL_HANDLE_DBC,hdbc1); 81.SQLFreeHandle(SQL_HANDLE_ENV,henv); 82.return(0); 83.#include #include #include #include #include #include #include SQLHENV henv = SQL_NULL_HENV; SQLHDBC hdbc1 = SQL_NUL

12、L_HDBC; SQLHSTMT hstmt1 = SQL_NULL_HSTMT; /* cpp文件功能说明: 1.数据库操作中的添加,修改,删除,主要体现在SQL语句上 2.采用直接执行方式和参数预编译执行方式两种*/int main() RETCODE retcode; UCHAR szDSNSQL_MAX_DSN_LENGTH+1 = csql, szUIDMAXNAME = sa, szAuthStrMAXNAME = ; /SQL语句 /直接SQL语句 UCHAR sql37 = insert into test values(aaa,100); /预编译SQL语句 UCHAR pr

13、e_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,

14、 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); /第一种方式 /直接执行 /添加操作 /SQLExec

15、Direct (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_CHA

16、R,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); ret

17、urn(0); /#list.cpp#C代码 1.#include 2.#include 3.#include 4.#include 5.#include 6.#include 7.#include 8.9.SQLHENVhenv=SQL_NULL_HENV; 10.SQLHDBChdbc1=SQL_NULL_HDBC; 11.SQLHSTMThstmt1=SQL_NULL_HSTMT; 12.13./* 14.查询SQLSERVER数据库,1.条件查询,2.直接查询全部 15.*/16.intmain() 17.RETCODEretcode; 18.UCHARszDSNSQL_MAX_DSN

18、_LENGTH+1=csql, 19.szUIDMAXNAME=sa, 20.szAuthStrMAXNAME=; 21.UCHARsql139=selectbfromtestwherea=aaa; 22.UCHARsql235=selectbfromtestwherea=?; 23.UCHARsql319=selectbfromtest; 24. 25.retcode=SQLAllocHandle(SQL_HANDLE_ENV,NULL,&henv); 26.retcode=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION, 27.(SQLPOINTER)SQ

19、L_OV_ODBC3, 28.SQL_IS_INTEGER); 29.retcode=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc1); 30./1.连接数据源 31.retcode=SQLConnect(hdbc1,szDSN,4,szUID,2,szAuthStr,0); 32.if(retcode!=SQL_SUCCESS)&(retcode!=SQL_SUCCESS_WITH_INFO) 33.printf(连接失败!); 34.else 35./2.创建并执行一条或多条SQL语句 36./* 37.1.分配一个语句句柄(statementhandl

20、e) 38.2.创建SQL语句 39.3.执行语句 40.4.销毁语句 41.*/42.retcode=SQLAllocHandle(SQL_HANDLE_STMT,hdbc1,&hstmt1); 43./第一种方式 44./* 45./直接执行 46.SQLExecDirect(hstmt1,sql1,39); 47.charlist5; 48.SQLBindCol(hstmt1,1,SQL_C_CHAR,list,5,0); 49.SQLFetch(hstmt1); 50.printf(%sn,list); 51.*/52. 53./第二种方式 54./* 55./绑定参数方式 56.ch

21、ara200=aaa; 57.SQLINTEGERp=SQL_NTS; 58./1.预编译 59.SQLPrepare(hstmt1,sql2,35);/第三个参数与数组大小相同,而不是数据库列相同 60./2.绑定参数值 61.SQLBindParameter(hstmt1,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,200,0,&a,0,&p); 62./3.执行 63.SQLExecute(hstmt1); 64.charlist5; 65.SQLBindCol(hstmt1,1,SQL_C_CHAR,list,5,0); 66.SQLFetch(hstm

22、t1); 67.printf(%sn,list); 68.*/69.70./第三种方式全部输出 71./* 72.1.确认一个结果集是否可用。 73.2.将结果集的列绑定在适当的变量上。 74.3.取得行 75.*/76./3.检查结果记录(如果有的话) 77.SQLExecDirect(hstmt1,sql3,19); 78.charlist5; 79.SQLBindCol(hstmt1,1,SQL_C_CHAR,list,5,0); 80.do 81.retcode=SQLFetch(hstmt1); 82.if(retcode=SQL_NO_DATA) 83.break; 84. 85.printf(%sn,list); 86.while(1); 87. 88./释放语句句柄 8

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1