資源簡介
前幾天在研究C/C++鏈接SQL server數據的方法,前前后后在網上找了不少的文章,大多數文章都沒法真正的解決入門新手的全部疑惑,所以在此整理一下自己整個連接數據庫的過程,希望能幫到有需要的人。

代碼片段和文件信息
/************************************************************************/
/*?Fuction:數據庫操作中的添加,查找,刪除??修改還沒添加????????????????*/
/*?Editor:王培丞???????????????????????????????????????????????????????*/
/*?Time:2017-10-02?????????????????????????????????????????????????????*/
/*注意:項目屬性->?C/C++?->命令行->其他選項?/?D?_CRT_SECURE_NO_WARNINGS?*/
/* 配置屬性->常規:字符集->未設置??????????????????????????????????*/
/************************************************************************/
#include?“city.h“
int?main()
{
UCHAR???szDSN[SQL_MAX_DSN_LENGTH?+?1]?=?“db_city“; ?//數據庫名
UCHAR szUID[MAXNAME]?=?“sa“; ?//用戶名
UCHAR szAuthStr[MAXNAME]?=?“ww123456“; ?//密碼
char sql[61]?=?“\0“; //插入時是用的sql語句的存放變量?
char initialize[2]?=?“\0“; //初始化變量
/*
一、使用ODBC?API建立數據庫連接分為3部分:
1.申請環境句柄,
2.使用環境句柄申請連接句柄
3.使用連接句柄連接數據庫
*/
//1.申請環境句柄??
SQLAllocHandle(SQL_HANDLE_ENV?NULL?&henv);
SQLSetEnvAttr(henv?SQL_ATTR_ODBC_VERSION
(SQLPOINTER)SQL_OV_ODBC3SQL_IS_INTEGER);
//2.使用環境句柄申請連接句柄??
SQLAllocHandle(SQL_HANDLE_DBC?henv?&hdbc);
//3.使用連接句柄連接數據庫
?SQLRETURN?SOL_RET?=?SQLConnect(hdbc?szDSN?SQL_NTS?szUID?SQL_NTS?szAuthStr?SQL_NTS);
if?((SOL_RET?!=?SQL_SUCCESS)?&&?(SOL_RET?!=?SQL_SUCCESS_WITH_INFO))
{
printf(“連接失敗!“);
}
else
{
/*?
二、創建并執行一條或多條SQL語句
1.分配一個語句句柄(statement?handle)
2.創建SQL語句
3.執行語句
4.銷毀語句
*/
int?choose; //用戶選擇序號的儲存變量
while?(1)
{
printf(“城市管理系統:\n“);
printf(“ 1.添加城市\n“);
printf(“ 2.全部查詢\n“);
printf(“ 3.緯度精確查詢\n“);
printf(“ 4.刪除城市\n“);
printf(“ 0.退出系統\n“);
printf(“\n“);
scanf(“%d“?&choose);
SQLAllocHandle(SQL_HANDLE_STMT?hdbc?&hstmt);//每次循環分配一個句柄
switch?(choose)
{
case?ADD_INSERT:
{ //添加城市
insert_city(?sql?initialize);
break;
}
case?SELECT_ALL:
{
//全部輸出
selectAll(?sql?initialize);
break;
}
case?SELECT_LAT_EXACT:
{
//通過具體緯度查找
selectByLat(?sql?initialize);
break;
}
case?DELETE_INSERT:
{
//刪除城市
delete_city(?sql?initialize);
break;
}
case?EXIT:
{
//刪除城市
exit(0);
}
}
SQLCloseCursor(hstmt);
SQLFreeHandle(SQL_HANDLE_STMT?hstmt);
}
}
/*
三、斷開數據源
1.斷開與數據源的連接.
2.釋放連接句柄.
3.釋放環境句柄?(如果不再需要在這個環境中作更多連接)
*/
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC?hdbc);
SQLFreeHandle(SQL_HANDLE_ENV?henv);
getchar();
getchar();
return(0);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????..A..H.?????33792??2017-10-03?12:00??數據庫_城市管理3\.vs\數據庫_城市管理3\v14\.suo
?????文件?????588288??2017-10-03?11:58??數據庫_城市管理3\readme.doc
?????文件???????2837??2017-10-02?21:53??數據庫_城市管理3\數據庫_城市管理3\city.cpp
?????文件???????6277??2017-10-03?12:00??數據庫_城市管理3\數據庫_城市管理3\city.h
?????文件??????47039??2017-10-02?21:50??數據庫_城市管理3\數據庫_城市管理3\Debug\city.obj
?????文件?????551936??2017-10-02?21:50??數據庫_城市管理3\數據庫_城市管理3\Debug\vc140.idb
?????文件?????167936??2017-10-02?21:50??數據庫_城市管理3\數據庫_城市管理3\Debug\vc140.pdb
?????文件????????611??2017-10-02?21:45??數據庫_城市管理3\數據庫_城市管理3\Debug\數據庫_城市管理3.Build.CppClean.log
?????文件????????443??2017-10-02?21:50??數據庫_城市管理3\數據庫_城市管理3\Debug\數據庫_城市管理3.log
?????文件????????696??2017-10-02?21:50??數據庫_城市管理3\數據庫_城市管理3\Debug\數據庫_城市管理3.tlog\CL.command.1.tlog
?????文件??????21600??2017-10-02?21:50??數據庫_城市管理3\數據庫_城市管理3\Debug\數據庫_城市管理3.tlog\CL.read.1.tlog
?????文件????????540??2017-10-02?21:50??數據庫_城市管理3\數據庫_城市管理3\Debug\數據庫_城市管理3.tlog\CL.write.1.tlog
?????文件???????1210??2017-10-02?21:50??數據庫_城市管理3\數據庫_城市管理3\Debug\數據庫_城市管理3.tlog\li
?????文件???????2752??2017-10-02?21:50??數據庫_城市管理3\數據庫_城市管理3\Debug\數據庫_城市管理3.tlog\li
?????文件????????518??2017-10-02?21:50??數據庫_城市管理3\數據庫_城市管理3\Debug\數據庫_城市管理3.tlog\li
?????文件????????226??2017-10-02?21:50??數據庫_城市管理3\數據庫_城市管理3\Debug\數據庫_城市管理3.tlog\數據庫_城市管理3.lastbuildstate
?????文件???????7832??2017-10-02?20:27??數據庫_城市管理3\數據庫_城市管理3\數據庫_城市管理3.vcxproj
?????文件???????1062??2017-10-02?20:22??數據庫_城市管理3\數據庫_城市管理3\數據庫_城市管理3.vcxproj.filters
?????文件???????1351??2017-10-02?19:52??數據庫_城市管理3\數據庫_城市管理3.sln
?????文件???26664960??2017-10-03?12:00??數據庫_城市管理3\數據庫_城市管理3.VC.db
?????目錄??????????0??2017-10-02?19:52??數據庫_城市管理3\.vs\數據庫_城市管理3\v14
?????目錄??????????0??2017-10-02?21:50??數據庫_城市管理3\數據庫_城市管理3\Debug\數據庫_城市管理3.tlog
?????目錄??????????0??2017-10-02?19:52??數據庫_城市管理3\.vs\數據庫_城市管理3
?????目錄??????????0??2017-10-02?21:50??數據庫_城市管理3\數據庫_城市管理3\Debug
????...D.H.?????????0??2017-10-02?19:52??數據庫_城市管理3\.vs
?????目錄??????????0??2017-10-03?12:00??數據庫_城市管理3\數據庫_城市管理3
?????目錄??????????0??2017-10-03?12:00??數據庫_城市管理3
-----------?---------??----------?-----??----
?????????????28101906????????????????????27
............此處省略0個文件信息
評論
共有 條評論