C语言连接SQL数据库例子.doc
《C语言连接SQL数据库例子.doc》由会员分享,可在线阅读,更多相关《C语言连接SQL数据库例子.doc(56页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言连接SQL数据库例子C语言连接SQL数据库例子连接到SAMPLE数据库,查询LASTNAME为JOHNSON的FIRSTNAME信息。 #include #include #include #include util.h #include EXEC SQL INCLUDE SQLCA; (1) main() EXEC SQL BEGIN DECLARE SECT
2、ION; (2) char firstname13; char userid9; char passwd19; EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT TO sample; (3) EXEC SQL SELECT FIRSTNME INTO :firstname (4) FROM employee WHERE LASTNAME = JOHNSON;(4) printf( First name = %sn, firstname ); EXEC SQL CONNECT RESET; (5) return 0; 上面是一个简单的静态嵌入SQL语句
3、的应用程序。它包括了嵌入SQL的主要部分: (1)中的include SQLCA语句定义并描述了SQLCA的结构。SQLCA用于应用程序和数据库之间的通讯,其中的SQLCODE返回SQL语句执行后的结果状态。 (2)在BEGIN DECLARE SECTION和END DECLARE SECTION之间定义了宿主变量。宿主变量可被SQL语句引用,也可以被C语言语句引用。它用于将程序中的数据通过SQL语句传给数据库管理器,或从数 据库管理器接收查询的结果。在SQL语句中,主变量前均有“:”标志以示区别。 (3)在每次访问数据库之前必须做CONNECT操作,以连接到某一个数据库上。这时,应该保证数
4、据库实例已经启动。 (4)是一条选择语句。它将表employee中的LASTNAME为“JOHNSON”的行数据的FIRSTNAME查出,并将它放在 firstname变量中。该语句返回一个结果。可以通过游标返回多个结果。当然,也可以包含update、insert和delete语句。 (5)最后断开数据库的连接。 从上例看出,每条嵌入式SQL语句都用EXEC SQL开始,表明它是一条SQL语句。这也是告诉预编译器在EXEC SQL和“;”之间是嵌入SQL语句。如果一条嵌入式SQL语句占用多行,在C程序中可以用续行符“”。 c语言用vc连接sql server 20002009/11/02 09
5、:34 sql server 1.提取单条记录/#import C:Program FilesCommon FilesSystemADOmsado15.dll /no_namespace,rename(EOF,adoEOF),named_guidsCoInitialize(NULL);_bstr_t varSource=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*.mdb;/_bstr_t varSource=Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUser
6、name;Password=myPassword;_ConnectionPtr m_pConnection(_uuidof(Connection);m_pConnection-Open(varSource,adModeUnknow);_RecordsetPtr m_pSet(_uuid(Recordset);try m_pSet-Open(%1,m_pConnection.GetInterfacePtr()adOpenDynamic,adLockPessimistic,adCmdText);catch(_com_error *e)AfxMessageBox(e-ErrorMessage();r
7、eturn;_variant_t var;CString %2=;long fldc=m_pSet-GetFields()-GetCount();long i=0;try m_pSet-MoveFirst();if(!m_pSet-adoEOF)for(i=0;iGetCollect(long)i);var.ChangeType(VT_BSTR);%2+=var.bstrVal;%2+= ;/m_pSet-MoveNext();catch(_com_error *e)AfxMessageBox(e-ErrorMessage();delete e;/m_pSet-MoveFirst();CoUn
8、initialize(NULL);2.单值比较/#import C:Program FilesCommon FilesSystemADOmsado15.dll /no_namespace,rename(EOF,adoEOF),named_guidsCoInitialize(NULL);_bstr_t varSource=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*.mdb;/_bstr_t varSource=Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUser
9、name;Password=myPassword;_ConnectionPtr m_pConnection(_uuidof(Connection);m_pConnection-Open(varSource,adModeUnknow);_RecordsetPtr m_pSet(_uuid(Recordset);try m_pSet-Open(%1,m_pConnection.GetInterfacePtr()adOpenDynamic,adLockPessimistic,adCmdText);catch(_com_error *e)AfxMessageBox(e-ErrorMessage();r
10、eturn;_variant_t var;try m_pSet-MoveFirst();if(!m_pSet-adoEOF)var=m_pSet-GetCollect(long)0);var.ChangeType(VT_I2);int %3=var.intVal;if(%3=%4)%5/m_pSet-MoveNext();catch(_com_error *e)AfxMessageBox(e-ErrorMessage();delete e;/m_pSet-MoveFirst();CoUninitialize(NULL);3.显示表格/#import C:Program FilesCommon
11、FilesSystemADOmsado15.dll /no_namespace,rename(EOF,adoEOF),named_guidsCoInitialize(NULL);_bstr_t varSource=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*.mdb;/_bstr_t varSource=Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;_ConnectionPtr m_pConnection(
12、_uuidof(Connection);m_pConnection-Open(varSource,adModeUnknow);/打开属性为默认(adModeRead(只读),adModeWrite(可写),adModeReadWrite(可读写)等)_RecordsetPtr m_pSet(_uuid(Recordset);try HRESULT hr=m_pSet-Open(%1,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockPessimistic,adCmdText);catch(_com_error *e)AfxMessageBo
13、x(e-ErrorMessage();if(SUCCESSED(hr)/表打开成功FieldsPtr p_fields=m_pSet-Fields;FieldPtr p_field;_variant_t var_index;LPCSTR field_name;int index=0;_bstr_t bstr_field_name;int countfields=p_fields-GetCount();CString *Column=new CStringcountfields;CListCtrl *pList=(CListCtrl*)GetDlgItem(%1);/IDC_LIST_TABLE
14、DATAVERIFY(pList);pList-DeleteAllItems();for(index=0;indexItemvar_index;bstr_field_name=p_field-GetName();field_name=(LPCSTR)bstr_field_name;Columnindex=field_name;int ColumnWidth=Columnindex.GetLength()*15;pList-InsertColumn(index,field_name,LVCFMT_CENTER,ColumnWidth);int i=0;_bstr_t vCol;/pList-Se
15、tTextBkColor(RGB(122,200,122);/pList-SetTextColor(RGB(0,0,200);while(!m_pSet-adoEOF)pList-Insert(i,atoi(i);for(int j=0;jGetCollect(long)j);pList-SetItemText(i,j,vCol);m_pSet-MoveNext();i+;CoUninitialize(NULL); C语言与SQL SERVER数据库1.使用C语言来操作SQL SERVER数据库,采用ODBC开放式数据库连接进行数据的添加,修改,删除,查询等操作。step1:启动SQLSERV
16、ER服务,例如:HNHJ,开始菜单 -运行 -net start mssqlserverstep2:打开企业管理器,建立数据库test,在test库中建立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.
17、#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. cpp文件功能说明: 15. 1.数据库操作中的添加,修改,删除,主要体现在SQL语句上 16. 2.采用直接执行方式和参数预编译执行方式两种 17. */18. intmain() 19. RETCODEretcode; 20. UCHARszDSNSQ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 连接 SQL 数据库 例子
限制150内