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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言连接SQL数据库例子.docx

1、C语言连接SQL数据库例子#include #include #include EXEC SQL BEGIN DECLARE SECTION; (2)char firstname13;| char userid9; |char passwd19;EXEC SQL END DECLARE SECTION;EXEC SQL CONNECT TO sample; (3)EXEC SQLSELECT FIRSTNME INTO :firstname (4)FROM employeeWHERE LASTNAME = JOHNSON; (4)printf( First name = %sn, firstn

2、ame );EXEC SQL CONNECT RESET; (5)return 0;上面是一个简单的静态嵌入 SQL语句的应用程序。它包括了嵌入 SQL的主要部分:(1 )中的include SQLCA语句定义并描述了 SQLCA的结构。SQLCA用于应用程序和数据库之间 的通讯,其中的SQLCODE返回SQL语句执行后的结果状态。(2 )在 BEGIN DECLARE SECTION 和 END DECLARE SECTION 之间定义了宿主变量。 宿主变量可被SQL语句引用,也可以被 C语言语句引用。它用于将程序中的数据通过 SQL语句传给数据库管理器,或从数 据库管理器接收查询的结果。在

3、 SQL语句中,主变量前均有 :”标志以示区别。(3 )在每次访问数据库之前必须做 CONNECT操作,以连接到某一个数据库上。这时,应该保证数据库实例已经启动。(4 )是一条选择语句。它将表 employee 中的LASTNAME 为“ JOHNSON”的行数据的 FIRSTNAME 查出,并将它放在 firstname 变量中。该语句返回一个结果。可以通过游标返回多个结果。当然,也可以 包含 update、insert 和 delete 语句。(5)最后断开数据库的连接。从上例看出,每条嵌入式 SQL语句都用EXEC SQL开始,表明它是一条 SQL语句。这也是告诉预编 译器在EXEC S

4、QL和;”之间是嵌入SQL语句。如果一条嵌入式 SQL语句占用多行,在 C程序中可 以用续行符“”。c 语言用 vc 连接 sql server 2000时分享|a1.提取单条记录#import C:Program FilesCommon FilesSystemADOmsado15.dll no_n amespace,re name(EOF,adoEOF), named_guidsCoI ni tialize(NULL);_bstr_t varSource=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*.mdb;_bstr_t varSource=

5、Data Source=myServerAddress;l nitialCatalog=myDataBase;User Id=myUser name;Password=myPassword;_Conn ectio nPtr m_pC onn ectio n(_uuidof(C onn ectio n);m_pC onn ectio n-Ope n(varSource,adModeU nkno w);_RecordsetPtr m_pSet(_uuid(Recordset);try m_pSet-Ope n(%1,m_pCo nn ectio n.Getl nterfacePtr() adOpe

6、 nDyn amic,adLockPessimistic,adCmdText);catch(_com_error *e)AfxMessageBox(e-ErrorMessage();return;_varia nt_t var;CStri ng %2=;long fldc=m_pSet-GetFields()-GetCount();long i=0;try m_pSet-MoveFirst();if(!m_pSet-adoEOF) _for(i=0;iGetCollect(lo ng)i);var.Cha ngeType(VT_BSTR);%2+=var.bstrVal;%2+=;m_pSet

7、-MoveNext();catch(_com_error *e)AfxMessageBox(e-ErrorMessage();delete e;m_pSet-MoveFirst();CoU nin itialize(NULL);2.单值比较#import C:Program FilesCommon FilesSystemADOmsado15.dll no_n amespace,re name(EOF,adoEOF), named_guidsCoI ni tialize(NULL);_bstr_t varSource=Provider=Microsoft.Jet.OLEDB.4.0;Data S

8、ource=*.mdb;_bstr_t varSource=Data Source=myServerAddress;l nitialCatalog=myDataBase;User Id=myUser name;Password=myPassword;_Conn ectio nPtr m_pC onn ectio n(_uuidof(C onn ectio n);m_pC onn ectio n-Ope n(varSource,adModeU nkno w);_RecordsetPtr m_pSet(_uuid(Recordset);try m_pSet-Ope n(%1,m_pCo nn ec

9、tio n.Getl nterfacePtr() adOpe nDyn amic,adLockPessimistic,adCmdText);catch(_com_error *e)AfxMessageBox(e-ErrorMessage();return;_varia nt_t var;try m_pSet-MoveFirst();if(!m_pSet-adoEOF) _var=m_pSet-GetCollect(lo ng)0);var.Cha ngeType(VT_I2);int %3=var.i ntVal;if(%3=%4)%5m_pSet-MoveNext();catch(_com_

10、error *e)AfxMessageBox(e-ErrorMessage();delete e;m_pSet-MoveFirst();CoU nin itialize(NULL);3.显示表格/#import C:Program FilesCommon FilesSystemADOmsado15.dll no_n amespace,re name(EOF,adoEOF), named_guidsCol ni tialize(NULL);_bstr_t varSource=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*.mdb;_bstr_t va

11、rSource=Data Source=myServerAddress;l nitialCatalog=myDataBase;User Id=myUser name;Password=myPassword;_Conn ectio nPtr m_pC onn ectio n(_uuidof(C onn ectio n);m_pC onn ectio n-Ope n(varSource,adModeU nkno w);/打开属性为默认(adModeRead只读),adModeWrite(可写), adModeReadWrite(可读写)等)_RecordsetPtr m_pSet(_uuid(Re

12、cordset);try HRESULT hr=m_pSet-Ope n( %1,m_pCo nn ectio n.Getl nterfacePtr(),adOpe nDyn amic,adLockPessimistic,adCmdText);catch(_com_error *e)AfxMessageBox(e-ErrorMessage();if(SUCCESSED(hr)/表打开成功FieldsPtr p_fields=m_pSet-Fields;FieldPtr p_field;_varia nt_t var_i ndex;LPCSTR field_name;int in dex=0;_

13、bstr_t bstr_field _n ame;in t coun tfields=p_fields-GetCo un t();CString *Column=new CStringcountfields;CListCtrl *pList=(CListCtrl*)GetDlgltem(%1);/IDC_LIST_TABLEDATAVERIFY(pList);pList-DeleteAllltems();for(i ndex=0;i ndexltemvar_i ndex;bstr_field_ name=p_field-GetName();field_name=(LPCSTR)bstr_fie

14、ld_name;Colu mn in dex=field_ name;int Colu mn Width=Colu mn in dex.GetLe ngth()*15;pList-I nsertColum n(in dex,field_name,LVCFMT_CENTER,Colum nWidth); 一 一int i=0;_bstr_t vCol;pList-SetTextBkColor(RGB(122,200,122);pList-SetTextColor(RGB(0,0,200); while(!m_pSet-adoEOF) _pList- In sert(i,atoi(i);for(i

15、 nt j=0;jGetCollect(lo ng)j); pList-SetltemText(i,j,vCol);m_pSet-MoveNext();i+;CoU nin itialize(NULL);C语言与SQL SERVE数据库1.使用C语言来操作SQL SERVE数据库,采用ODB(开放式数据库连接进行数据 的添加,修改,删除,查询等操作。step1:启动 SQLSERVER务,例如:HNHJ,开始菜单- 运行-net start mssqlserverstep2:打开企业管理器,建立数据库test,在test库中建立test表(a varchar(200),b varchar(20

16、0)step3:建立系统DSN开始菜单- 运行-odbcad32, 添力卩-SQL SERVER名称:csql,服务器:HNHJ使用用户使用登录ID和密码的SQLSERVER证,登录ID:sa,密码: 更改默认的数据库为:test测试数据源,测试成功,即 DNS添加成功。2.cpp文件完整代码C代码啊窃C1.#in clude 2.#in clude 3.#in clude 4.#in elude 5.#in elude 6.#in elude 7.#in elude 8.8.sqlhe nv henv = sql_ nu ll_he nv;9.sqlhdbe hdbe1 = sql_null

17、_hdbc;10.sqlhstmt hstmtl = sql_null_hstmt;12.11./*12.epp文件功能说明:13.1.数据库操作中的添加,修改,删除,主要体现在 SQL语句上14.2.采用直接执行方式和参数预编译执行方式两种15.*/16.int main()17.RETCODE reteode;18.UCHAR szDSNSQL_MAX_DSN_LENGTH+1 = esql,19.szUIDMAXNAME = sa,20.szAuthStrMAXNAME=;21./SQL 语句22./直接SQL语句23.UCHAR sql37 = in sert into test va

18、lues(aaa,100);24.II预编译SQL语句25.UCHAR pre_sql29 = in sert into test values(?,?);26.II1.连接数据源27.II1.环境句柄28.reteode = SQLAlloeHa ndle (SQL_HANDLE_ENV, NULL, &henv);29.reteode = SQLSetE nvAttr(he nv, SQL_ATTR_ODBC_VERSION,30.(SQLPOINTER)SQL_OV_ODBC3,31.SQL_IS_INTEGER);32.II2.连接句柄33.reteode = SQLAlloeHa n

19、dle(SQL_HANDLE_DBC, hen v, & hdbe1);34.reteode = SQLCo nn eet(hdbe1, szDSN, 4, szUID, 2, szAuthStr, 0);35.判断连接是否成功36.if ( (reteode != SQL_SUCCESS) & (reteode != SQL_SUCCESS_WITH_INFO) ) 37.printf(连接失败!n);38. else 39.II2.创建并执行一条或多条 SQL语句40.I*41.1.分配一个语句句柄(stateme nt han dle)42.2.创建SQL语句43.3.执行语句44.4.

20、销毁语句45.*/46.retcode = SQLAIIocHa ndle(SQL_HANDLE_STMT, hdbcl, &hstmt1);47.第一种方式48.直接执行49./添加操作50./SQLExecDirect (hstmt1,sql,37);53.51.第二种方式52.绑定参数方式53.char a200=bbb;54.char b200=200;55.SQLINTEGER p = SQL_NTS;56./1预编译57.SQLPrepare(hstmt1,pre_sql,29); /第三个参数与数组大小相同,而不是数据库列 相同58./2绑定参数值59.SQLBi ndParam

21、eter(hstmt1,1,SQL_PARAMN PUT,SQL_C_CHAR,SQL_CHAR,200,0, &a,0, &p);60.SQLBi ndParameter(hstmt1,2,SQL_PARAMN PUT,SQL_C_CHAR,SQL_CHAR,200,0, &b,0, &p);61./3执行62.SQLExecute(hstmt1);66.63.printf(” 操作成功!);64.释放语句句柄65.SQLCloseCursor (hstmt1);66.SQLFreeHa ndle (SQL_HANDLE_STMT, hstmt1);71.67.68./3.断开数据源69./

22、*70.1.断开与数据源的连接.71.2.释放连接句柄.72.3.释放环境句柄(如果不再需要在这个环境中作更多连接 )73.*/74.SQLDisco nn ect(hdbc1);75.SQLFreeHa ndle(SQL_HANDLE_DBC, hdbc1);76.SQLFreeHa ndle(SQL_HANDLE_ENV, he nv);77.return(0);78.C代码1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.4

23、0.41.42.43.#in elude #in elude #in elude #in elude #in elude #in elude #in elude SQLHENV henv = SQL_NULL_HENV;SQLHDBC hdbe1 = SQL_NULL_HDBC;SQLHSTMT hstmt1 = SQL_NULL_HSTMT;/*查询SQLSERVER数据库,1.条件查询,2.直接查询全部*/int mai n()RETCODE reteode;UCHAR szDSNSQL_MAX_DSN_LENGTH+1 = esql, szUIDMAXNAME = sa, szAuthS

24、trMAXNAME=;UCHAR sql139 = seleet b from test where a = aaa:UCHAR sql235 = seleet b from test where a = ?;UCHAR sql319 = seleet b from test;reteode = SQLAlloeHa ndle (SQL_HANDLE_ENV, NULL, &henv);reteode = SQLSetE nvAttr(he nv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);reteode =

25、 SQLAlloeHa ndle(SQL_HANDLE_DBC, henv, & hdbe1);1.连接数据源reteode = SQLCo nn eet(hdbe1, szDSN, 4, szUID, 2, szAuthStr, 0);if ( (reteode != SQL_SUCCESS) & (reteode != SQL_SUCCESS_WITH_I NFO) ) printf(连接失败!); else 2.创建并执行一条或多条 SQL语句/*1.分配一个语句句柄 (stateme nt han dle)2.创建SQL语句3.执行语句4.销毁语句*/reteode = SQLAllo

26、eHa ndle(SQL_HANDLE_STMT, hdbe1, &hstmt1);/第一种方式44./*45.直接执行46.SQLExecDirect (hstmt1,sql1,39);47.char list5;48.SQLBi ndCol(hstmt1, 1, SQL_C_CHAR, list, 5, 0);49.SQLFetch(hstmt1);50.prin tf(%sn,list);51.*/52.52.第二种方式53./*54.绑定参数方式55.char a200=aaa;56.SQLINTEGER p = SQL_NTS;57.1.预编译58.SQLPrepare(hstmt1

27、,sql2,35); /第三个参数与数组大小相同,而不是数据库列相同59.2.绑定参数值60.SQLBi ndParameter(hstmt1,1,SQL_PARAMN PUT,SQL_C_CHAR,SQL_CHAR,200,0, &a,0, &p);61.3.执行62.SQLExecute(hstmtl);63.char list5;64.SQLBi ndCol(hstmt1, 1, SQL_C_CHAR, list, 5, 0);65.SQLFetch(hstmt1);66.prin tf(%sn,list);67.*/69.68.第三种方式全部输出69./*70.1.确认一个结果集是否可

28、用。71.2.将结果集的列绑定在适当的变量上。72.3.取得行73.*/74.3.检查结果记录(如果有的话)75.SQLExecDirect (hstmt1,sql3,19);76.char list 5;77.SQLBi ndCol(hstmt1, 1, SQL_C_CHAR, list, 5, 0);78.do79.retcode = SQLFetch(hstmt1);80.if(retcode = SQL_NO_DA TA)81.break;82.83.prin tf(%sn,list);84.while(1);87.85.释放语句句柄86.SQLCIoseCursor (hstmtl);87.SQLFreeHa ndle (SQL_HANDLE_STMT, hstmt1);91.88.93.89.4.断开数据源90./*91.1.断开与数据源的连接.92.2.释放连接句柄.93.3.释放环境句柄(如果不再需要在这个环境中作更多连接 )94

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

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