新聞中心
隨著信息技術(shù)和互聯(lián)網(wǎng)的飛速發(fā)展,對(duì)于企業(yè)和個(gè)人來(lái)說(shuō),海量的數(shù)據(jù)和信息處理已經(jīng)成為日常工作中不可避免的問(wèn)題。因此,數(shù)據(jù)存儲(chǔ)和處理技術(shù)的重要性也越來(lái)越受到重視。數(shù)據(jù)庫(kù)作為一種重要的數(shù)據(jù)存儲(chǔ)和管理方式,已經(jīng)廣泛應(yīng)用于企事業(yè)單位的信息化建設(shè)中。

目前創(chuàng)新互聯(lián)已為超過(guò)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、綿陽(yáng)服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、嵊泗網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
但是,操作數(shù)據(jù)庫(kù)遠(yuǎn)程鏈接卻是一個(gè)比較棘手的問(wèn)題。運(yùn)用C語(yǔ)言實(shí)現(xiàn)遠(yuǎn)程鏈接數(shù)據(jù)庫(kù)的過(guò)程中,需要編寫一些必備的代碼。下面將針對(duì)這些代碼逐一進(jìn)行講解。
一、數(shù)據(jù)庫(kù)遠(yuǎn)程鏈接的準(zhǔn)備工作
1. 安裝數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序
數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序是連接數(shù)據(jù)庫(kù)的必要工具。在C語(yǔ)言中要連接遠(yuǎn)程數(shù)據(jù)庫(kù),需要選擇相應(yīng)的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。常用的數(shù)據(jù)庫(kù)有MySQL、Oracle、SqlServer等。
安裝數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序可以使用操作系統(tǒng)的包管理器或者第三方軟件下載方式,也可以在網(wǎng)上找到對(duì)應(yīng)的驅(qū)動(dòng)安裝程序進(jìn)行下載和安裝。在安裝過(guò)程中需要按照指導(dǎo)說(shuō)明進(jìn)行具體的配置操作。
2. 連接數(shù)據(jù)庫(kù)
在C語(yǔ)言中連接遠(yuǎn)程數(shù)據(jù)庫(kù)需要使用特定的開發(fā)工具,比如說(shuō)odbc(開放式數(shù)據(jù)庫(kù)連接),odbc是用于數(shù)據(jù)庫(kù)開發(fā)的一種開放式API。它允許數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,而不是在應(yīng)用程序中。
odbc的實(shí)現(xiàn)方式如下:
(1)安裝相應(yīng)的odbc驅(qū)動(dòng)程序。
(2)設(shè)置ODBC數(shù)據(jù)源(包括系統(tǒng)數(shù)據(jù)源和用戶數(shù)據(jù)源)。
(3)編寫C語(yǔ)言程序連接已經(jīng)設(shè)置的數(shù)據(jù)源。
二、實(shí)現(xiàn)遠(yuǎn)程鏈接數(shù)據(jù)庫(kù)的必備代碼
1.連接數(shù)據(jù)庫(kù)
“`
#include
#include
#include
#include
#include
#define SQL_RESULT_LEN 240
#define SQL_RETURN_CODE_LEN 1000
char sql_query[1000];
char sql_result[SQL_RESULT_LEN];
char sql_return_code[SQL_RETURN_CODE_LEN];
int mn (int argc, char *argv[]) {
SQLHANDLE sqlenvhandle;
SQLHANDLE sqlconnectionhandle;
SQLHANDLE sqlstatementhandle;
SQLRETURN retcode;
SQLCHAR ret_str[1024];
SQLALLINT ret_len = 0;
if (argc != 5) {
printf(“參數(shù)個(gè)數(shù)不正確!參數(shù)格式:’用戶名’ ‘密碼’ ‘ip地址’ ‘?dāng)?shù)據(jù)庫(kù)名’\n”);
return -1;
}
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlenvhandle);
SQLSetEnvAttr(sqlenvhandle,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
SQLAllocHandle(SQL_HANDLE_DBC, sqlenvhandle,&sqlconnectionhandle);
SQLExecDirect(sqlconnectionhandle, “SET NAMES ‘utf8′”, SQL_NTS);
retcode = SQLConnect(sqlconnectionhandle,(SQLCHAR*)argv[3], SQL_NTS, (SQLCHAR*)argv[1], SQL_NTS, (SQLCHAR*)argv[2], SQL_NTS);
if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) {
SQLFreeHandle(SQL_HANDLE_DBC, sqlconnectionhandle);
SQLFreeHandle(SQL_HANDLE_ENV, sqlenvhandle);
printf(“SQL Connect fled.\n”);
return -1;
}
SQLAllocHandle(SQL_HANDLE_STMT, sqlconnectionhandle, &sqlstatementhandle);
sprintf(sql_query, “SELECT * from %s limit %s”, argv[4], “10”);
printf(“%s\n”, sql_query);
SQLBindCol(sqlstatementhandle, 1, SQL_C_CHAR, sql_result, SQL_RESULT_LEN, &ret_len);
SQLPrepare(sqlstatementhandle, (SQLCHAR*)sql_query, SQL_NTS);
retcode = SQLExecute(sqlstatementhandle);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
while (SQLFetch(sqlstatementhandle) == SQL_SUCCESS) {
SQLGetData(sqlstatementhandle, 1, SQL_C_CHAR, sql_result, SQL_RESULT_LEN, &ret_len);
printf(“%s\n”, sql_result);
}
} else {
SQLFreeHandle(SQL_HANDLE_STMT, sqlstatementhandle);
SQLFreeHandle(SQL_HANDLE_DBC, sqlconnectionhandle);
SQLFreeHandle(SQL_HANDLE_ENV, sqlenvhandle);
printf(“SQL execute fled.\n”);
return -1;
}
SQLFreeHandle(SQL_HANDLE_STMT, sqlstatementhandle);
SQLDisconnect(sqlconnectionhandle);
SQLFreeHandle(SQL_HANDLE_DBC, sqlconnectionhandle);
SQLFreeHandle(SQL_HANDLE_ENV, sqlenvhandle);
return 0;
}
“`
2.編譯連接
以上代碼默認(rèn)已經(jīng)安裝了ODBC驅(qū)動(dòng),編寫代碼后采用如下方式編譯連接:
編譯命令:
gcc -o remoteLinkDataBase remoteLinkDataBase.c -lodbc
運(yùn)行結(jié)果:
“`
./remoteLinkDataBase 用戶名 密碼 ip地址 數(shù)據(jù)庫(kù)名
SELECT * from 數(shù)據(jù)庫(kù)名 limit 10
“`
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220mfc如何遠(yuǎn)程連接sql數(shù)據(jù)庫(kù)
1. 配置SQL Server外圍應(yīng)用服務(wù)器,開啟SQL Server 2023遠(yuǎn)程連接功能:
“配置工具”->慶困“SQL Server外圍應(yīng)用配置器”-> 選擇“服務(wù)和連接的外圍應(yīng)用配置器”->選擇Database Engine節(jié)點(diǎn)下的 “遠(yuǎn)程連接”-> 選擇“本地連接和遠(yuǎn)程連接”-> 選擇“同時(shí)使用TCP/IP和named pipes”-> 點(diǎn)擊確定,重新啟動(dòng)
數(shù)據(jù)庫(kù)
服務(wù)。
2. 把登陸設(shè)置改為SQL Server 和 Windows 身份驗(yàn)證羨春模式:
打開SQL Server Management Studio管理器,點(diǎn)擊服務(wù)器上面右鍵然后查看屬性,在安全性選項(xiàng)里面對(duì)服務(wù)身份驗(yàn)證選擇“SQL Server 和 Windows 身份驗(yàn)證模式”。
3.修改SQL Server sa的密碼:
在SQL Server Management Studio管理器中,展開服務(wù)器上的“安全性”->登陸名->在sa帳號(hào)上點(diǎn)右鍵屬兄差耐性,這樣在“常規(guī)”的選擇頁(yè)中更改sa登陸帳號(hào)的密碼。注意SQL Server2023中,不允許密碼設(shè)置簡(jiǎn)單,否則會(huì)通不過(guò)。然后在選擇頁(yè)的“狀態(tài)”的登錄修改為啟用。
4.設(shè)置SQL Server 的端口號(hào)
在SQL Server Configuration Manager管理器中,展開SQL Server 2023 Network Configuration項(xiàng)目 -> 單擊下面的 Protocols for ‘dbname’ -> 在右側(cè)的窗口中,右鍵單擊”TCP/IP”項(xiàng),選擇”屬性” -> 打開”TCP/IP properties”窗口 – > 單擊”IP Address”選項(xiàng)卡 -> 將所有IP地址下面的 “TCP Port” 值設(shè)置成1433
5.確保開啟SQL Server服務(wù)
在SQL Server Configuration Manager管理器中, 選中SQL Server 2023 Services,在右側(cè)的窗口中啟動(dòng)SQL Server (‘YourInstance’),
6. 修改連接字符串,在字符串中加入SQl Server 服務(wù)的端口號(hào).
strConnection.Format(“driver={SQL Server};Server=xx.xx.xx.xx,1433;DATABASE=mydatabase;UID=name;PWD=pwd”);
7.連接coder:
stdafx.h中引用:
#import “C:\Program Files\Common Files\System\ado\msado15.dll” no_namespace rename(“EOF”,”adoEOF”)
8. 連接SQL SERVER服務(wù)器,并連接數(shù)據(jù)庫(kù)
if(!AfxOleInit()) //這就是初始化COM庫(kù)
{
AfxMessageBox(“數(shù)據(jù)庫(kù)初始化出錯(cuò)!”);
}
_ConnectionPtr pCn(“ADODB.Connection”);
pCn->Open((_bstr_t)”Driver=
{SQL Server};Server=127.0.0.1,1433;Database=carcom;UID=sa;PWD=abc123456″,””,””,adModeUnknown);
c 遠(yuǎn)程鏈接數(shù)據(jù)庫(kù)代碼的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于c 遠(yuǎn)程鏈接數(shù)據(jù)庫(kù)代碼,C語(yǔ)言實(shí)現(xiàn)遠(yuǎn)程鏈接數(shù)據(jù)庫(kù)的必備代碼,mfc如何遠(yuǎn)程連接sql數(shù)據(jù)庫(kù)的信息別忘了在本站進(jìn)行查找喔。
成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設(shè)計(jì),高端小程序APP定制開發(fā),成都網(wǎng)絡(luò)營(yíng)銷推廣等一站式服務(wù)。
文章題目:C語(yǔ)言實(shí)現(xiàn)遠(yuǎn)程鏈接數(shù)據(jù)庫(kù)的必備代碼(c遠(yuǎn)程鏈接數(shù)據(jù)庫(kù)代碼)
當(dāng)前路徑:http://fisionsoft.com.cn/article/dpococh.html


咨詢
建站咨詢
