C语言连接SQL数据库例子Word格式文档下载.docx

上传人:b****3 文档编号:7234151 上传时间:2023-05-08 格式:DOCX 页数:22 大小:33.33KB
下载 相关 举报
C语言连接SQL数据库例子Word格式文档下载.docx_第1页
第1页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第2页
第2页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第3页
第3页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第4页
第4页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第5页
第5页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第6页
第6页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第7页
第7页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第8页
第8页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第9页
第9页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第10页
第10页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第11页
第11页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第12页
第12页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第13页
第13页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第14页
第14页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第15页
第15页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第16页
第16页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第17页
第17页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第18页
第18页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第19页
第19页 / 共22页
C语言连接SQL数据库例子Word格式文档下载.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言连接SQL数据库例子Word格式文档下载.docx

《C语言连接SQL数据库例子Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言连接SQL数据库例子Word格式文档下载.docx(22页珍藏版)》请在冰点文库上搜索。

C语言连接SQL数据库例子Word格式文档下载.docx

(5) 

return 

0;

} 

上面是一个简单的静态嵌入SQL语句的应用程序.它包括了嵌入SQL的主要部分:

(1)中的include 

SQLCA语句定义并描述了SQLCA的结构。

SQLCA用于应用程序和数据库之间的通讯,其中的SQLCODE返回SQL语句执行后的结果状态。

(2)在BEGIN 

SECTION和END 

SECTION之间定义了宿主变量.宿主变量可被SQL语句引用,也可以被C语言语句引用。

它用于将程序中的数据通过SQL语句传给数据库管理器,或从数据库管理器接收查询的结果。

在SQL语句中,主变量前均有“:

”标志以示区别。

(3)在每次访问数据库之前必须做CONNECT操作,以连接到某一个数据库上。

这时,应该保证数据库实例已经启动。

(4)是一条选择语句。

它将表employee中的LASTNAME为“JOHNSON"

的行数据的FIRSTNAME查出,并将它放在firstname变量中.该语句返回一个结果.可以通过游标返回多个结果。

当然,也可以包含update、insert和delete语句。

(5)最后断开数据库的连接。

从上例看出,每条嵌入式SQL语句都用EXEC 

SQL开始,表明它是一条SQL语句。

这也是告诉预编译器在EXEC 

SQL和“;

”之间是嵌入SQL语句。

如果一条嵌入式SQL语句占用多行,在C程序中可以用续行符“\"

c语言用vc连接sqlserver2000

2009/11/0209:

34 

[sqlserver 

]

1.提取单条记录

//#import”C:

\ProgramFiles\CommonFiles\System\ADO\msado15。

dll"

\

//no_namespace,rename(”EOF"

”adoEOF"

),named_guids

CoInitialize(NULL);

_bstr_tvarSource=”Provider=Microsoft。

Jet。

OLEDB.4.0;

DataSource=*。

mdb”;

//_bstr_tvarSource="

DataSource=myServerAddress;

InitialCatalog=myDataBase;

UserId=myUsername;

Password=myPassword;

_ConnectionPtrm_pConnection(_uuidof(Connection));

m_pConnection—〉Open(varSource,””,””,adModeUnknow);

_RecordsetPtrm_pSet(_uuid(Recordset));

try{

m_pSet-〉Open(%%1,m_pConnection.GetInterfacePtr()

adOpenDynamic,adLockPessimistic,adCmdText);

}

catch(_com_error*e){

{

AfxMessageBox(e—〉ErrorMessage());

return;

_variant_tvar;

CString%%2=””;

longfldc=m_pSet->

GetFields()—>

GetCount();

longi=0;

m_pSet->

MoveFirst();

if(!

m_pSet—>

adoEOF)

for(i=0;

i〈fldc;

i++)

var=m_pSet-〉GetCollect((long)i);

var.ChangeType(VT_BSTR);

%%2+=var.bstrVal;

%%2+=””;

//m_pSet—>

MoveNext();

catch(_com_error*e){

AfxMessageBox(e—〉ErrorMessage());

deletee;

//m_pSet-〉MoveFirst();

CoUninitialize(NULL);

2.单值比较

//#import”C:

\ProgramFiles\CommonFiles\System\ADO\msado15.dll"

//no_namespace,rename("

EOF”,”adoEOF”),named_guids

Jet.OLEDB。

4。

0;

DataSource=*.mdb”;

//_bstr_tvarSource=”DataSource=myServerAddress;

InitialCatalog=myDataBase;

UserId=myUsername;

"

m_pConnection—>

Open(varSource,””,””,adModeUnknow);

Open(%%1,m_pConnection.GetInterfacePtr()

catch(_com_error*e){

AfxMessageBox(e->

ErrorMessage());

return;

try{

m_pSet—〉MoveFirst();

m_pSet-〉adoEOF)

var=m_pSet—〉GetCollect((long)0);

var.ChangeType(VT_I2);

int%%3=var.intVal;

if(%%3==%%4)

%%5

//m_pSet->

catch(_com_error*e){

AfxMessageBox(e—>

3。

显示表格

//#import"

C:

//no_namespace,rename(”EOF”,”adoEOF"

_bstr_tvarSource="

Provider=Microsoft.Jet.OLEDB.4。

DataSource=*.mdb"

;

Password=myPassword;

m_pConnection-〉Open(varSource,"

””,adModeUnknow);

//打开属性为默认(adModeRead(只读),adModeWrite(可写),adModeReadWrite(可读写)等)

_RecordsetPtrm_pSet(_uuid(Recordset));

HRESULThr=m_pSet-〉Open(%%1,m_pConnection.GetInterfacePtr(),

adOpenDynamic,adLockPessimistic,adCmdText);

ErrorMessage());

if(SUCCESSED(hr))

//表打开成功

FieldsPtrp_fields=m_pSet->

Fields;

FieldPtrp_field;

_variant_tvar_index;

LPCSTRfield_name;

intindex=0;

_bstr_tbstr_field_name;

intcountfields=p_fields—〉GetCount();

CString*Column=newCString[countfields];

CListCtrl*pList=(CListCtrl*)GetDlgItem(%%1);

//IDC_LIST_TABLEDATA

VERIFY(pList);

pList-〉DeleteAllItems();

for(index=0;

index<

countfields;

index++)

var_index。

vt=VT_I4;

IVal=index;

p_field=p_fields-〉Item[var_index];

bstr_field_name=p_field—〉GetName();

field_name=(LPCSTR)bstr_field_name;

Column[index]=field_name;

intColumnWidth=Column[index]。

GetLength()*15;

pList—>

InsertColumn(index,field_name,LVCFMT_CENTER,ColumnWidth);

inti=0;

_bstr_tvCol;

//pList-〉SetTextBkColor(RGB(122,200,122));

//pList—〉SetTextColor(RGB(0,0,200));

while(!

m_pSet—〉adoEOF)

pList->

Insert(i,atoi(i));

for(intj=0;

j〈countfields;

j++)

vCol=m_pSet-〉GetCollect((long)j);

SetItemText(i,j,vCol);

i++;

CoUninitialize(NULL);

C语言与SQLSERVER数据库

1.使用C语言来操作SQLSERVER数据库,采用ODBC开放式数据库连接进行数据的添加,修改,删除,查询等操作。

step1:

启动SQLSERVER服务,例如:

HNHJ,开始菜单—〉运行—>

netstartmssqlserver

step2:

打开企业管理器,建立数据库test,在test库中建立test表(avarchar(200),bvarchar(200))

step3:

建立系统DSN,开始菜单—>

运行—>

odbcad32,

添加->

SQLSERVER

名称:

csql,服务器:

HNHJ

使用用户使用登录ID和密码的SQLSERVER验证,登录ID:

sa,密码:

更改默认的数据库为:

test

..

测试数据源,测试成功,即DNS添加成功.

2。

cpp文件完整代码

//##########################save.cpp##########################

C代码

1.#include 

〈stdio。

h>

2.#include 

〈string。

h〉 

3.#include 

〈windows.h〉 

4.#include 

<

sql。

5.#include 

sqlext.h〉 

6.#include 

sqltypes。

7.#include 

〈odbcss。

8. 

9.sqlhenv 

henv 

sql_null_henv;

10.sqlhdbc 

hdbc1 

sql_null_hdbc;

11.sqlhstmt 

hstmt1 

sql_null_hstmt;

12. 

13./* 

14. 

cpp文件功能说明:

15. 

1。

数据库操作中的添加,修改,删除,主要体现在SQL语句上 

16. 

采用直接执行方式和参数预编译执行方式两种 

17.*/ 

18.int 

main(){ 

19. 

RETCODE 

retcode;

20. 

UCHAR 

szDSN[SQL_MAX_DSN_LENGTH+1] 

csql"

, 

21. 

szUID[MAXNAME] 

sa"

 

22. 

szAuthStr[MAXNAME] 

””;

23. 

//SQL语句 

24. 

//直接SQL语句 

25. 

sql[37] 

insert 

into 

test 

values('

aaa’,'

100’)”;

26. 

//预编译SQL语句 

27. 

pre_sql[29] 

values(?

,?

)”;

28. 

//1。

连接数据源 

29. 

环境句柄 

30. 

retcode 

SQLAllocHandle 

(SQL_HANDLE_ENV, 

NULL, 

&henv);

31. 

SQLSetEnvAttr(henv, 

SQL_ATTR_ODBC_VERSION, 

32. 

(SQLPOINTER)SQL_OV_ODBC3, 

33. 

SQL_IS_INTEGER);

34. 

//2.连接句柄 

35. 

SQLAllocHandle(SQL_HANDLE_DBC, 

henv, 

&hdbc1);

36. 

SQLConnect(hdbc1, 

szDSN, 

4, 

szUID, 

2, 

szAuthStr, 

0);

37. 

//判断连接是否成功 

38. 

if 

( 

(retcode 

!

SQL_SUCCESS) 

&

SQL_SUCCESS_WITH_INFO) 

) 

{ 

39. 

printf(”连接失败!

\n”);

40. 

} 

else 

41. 

//2.创建并执行一条或多条SQL语句 

42. 

/* 

43. 

分配一个语句句柄(statement 

handle) 

44. 

2.创建SQL语句 

45. 

执行语句 

46. 

4.销毁语句 

47. 

*/ 

48. 

SQLAllocHandle(SQL_HANDLE_STMT, 

hdbc1, 

&hstmt1);

49. 

//第一种方式 

50. 

//直接执行 

51. 

//添加操作 

52. 

//SQLExecDirect 

(hstmt1,sql,37);

53. 

54. 

//第二种方式 

55. 

//绑定参数方式 

56. 

char 

a[200]="

bbb”;

57. 

b[200]="

200”;

58. 

SQLINTEGER 

SQL_NTS;

59. 

//1预编译 

60. 

SQLPrepare(hstmt1,pre_sql,29);

//第三个参数与数组大小相同,而不是数据库列相同 

61. 

//2绑定参数值 

62. 

SQLBindParameter(hstmt1,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. 

断开与数据源的连接. 

76. 

释放连接句柄。

77. 

释放环境句柄 

(如果不再需要在这个环境中作更多连接) 

78. 

*/ 

79. 

SQLDisconnect(hdbc1);

80. 

SQLFreeHandle(SQL_HANDLE_DBC, 

hdbc1);

81. 

SQLFreeHandle(SQL_HANDLE_ENV, 

henv);

82. 

return(0);

83.} 

#include〈stdio.h>

#include〈string.h>

#include<

windows.h>

#include〈sql.h>

#include〈sqlext。

#include<

sqltypes.h>

odbcss.h〉

SQLHENVhenv=SQL_NULL_HENV;

SQLHDBChdbc1=SQL_NULL_HDBC;

SQLHSTMThstmt1=SQL_NULL_HSTMT;

/*

cpp文件功能说明:

1.数据库操作中的添加,修改,删除,主要体现在SQL语句上

2.采用直接执行方式和参数预编译执行方式两种

*/

intmain(){

RETCODEretcode;

UCHARszDSN[SQL_MAX_DSN_LENGTH+1]=”csql”,

szUID[MAXNAME]="

szAuthStr[MAXNAME]="

//SQL语句

//直接SQL语句

UCHARsql[37]=”insertintotestvalues(’aaa'

,’100'

)”;

//预编译SQL语句

UCHARpre_sql[29]="

insertintotestvalues(?

)"

//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,&

retcode=SQLConnect(hdbc1,szDSN,4,szUID,2,szAuthStr,0);

//判断连接是否成功

if((retcode!

=SQL_SUCCESS)&&

(retcode!

=SQL_SUCCESS_WITH_INFO)){

printf("

连接失败!

}else{

//2.创建并执行一条或多条SQL语句

/*

1。

分配一个语句句柄(statementhandle)

2。

创建SQL语句

3.执行语句

4.销毁语句

*/

retcode=SQLAllocHandle(SQL_HANDLE_STMT,hdbc1,&hstmt1);

//第一种方式

//直接执行

//添加操作

//SQLExecDirect(hstmt1,sql,37);

//第二种方式

//绑定参数方式

chara[

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2