最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中操作sqlserver數(shù)據(jù)庫案例教程

 更新時(shí)間:2021年07月22日 09:20:23   作者:uestclr  
這篇文章主要介紹了C語言中操作sqlserver數(shù)據(jù)庫案例教程,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

本文使用c語言來對sql server數(shù)據(jù)庫進(jìn)行操作,實(shí)現(xiàn)通過程序來對數(shù)據(jù)庫進(jìn)行增刪改查操作。

操作系統(tǒng):windows 10         實(shí)驗(yàn)平臺(tái):vs2012  +  sql server 2008

ODBC簡介:開放數(shù)據(jù)庫連接(Open Database Connectivity,ODBC),主要的功能是提供了一組用于數(shù)據(jù)庫訪問的編程接口,其主要的特點(diǎn)是,如果應(yīng)用程序使用ODBC做數(shù)據(jù)源,那么這個(gè)應(yīng)用程序與所使用的數(shù)據(jù)庫或數(shù)據(jù)庫引擎是無關(guān)的,為應(yīng)用程序的跨平臺(tái)和可移植奠定了基礎(chǔ)。

創(chuàng)建ODBC數(shù)據(jù)源:控制面板——管理工具——ODBC數(shù)據(jù)源(32位)

可以看到,這里存在三種類型的DSN(數(shù)據(jù)源名),其中:

用戶DSN:只允創(chuàng)建該DSN的用戶使用該數(shù)據(jù)源;

系統(tǒng)DSN:所有登陸該服務(wù)器的用戶都能使用該數(shù)據(jù)源;

文件DSN:配置信息保存在文件中,所有登陸的用戶均可使用;

在本實(shí)驗(yàn)中,采用系統(tǒng)DSN:

點(diǎn)擊添加,然后選擇SQL Server

然后輸入數(shù)據(jù)源的名稱和所在服務(wù)器,我們的數(shù)據(jù)庫是安裝在本機(jī)上的。

選擇以sql server用戶的方式進(jìn)行驗(yàn)證,下圖所示:

這里可以設(shè)置默認(rèn)連接的數(shù)據(jù)庫,保持不變,使用master作為默認(rèn)的數(shù)據(jù)庫。

然后點(diǎn)擊下一步,然后完成,完成后可以測試一下。

這就完成了ODBC數(shù)據(jù)源的創(chuàng)建。

程序測試,數(shù)據(jù)庫中已包含一個(gè)叫做stu_info的數(shù)據(jù)庫,且其中有一張student的學(xué)生信息表,其包含的字段信息如下:

程序設(shè)計(jì)如下

#include<stdio.h>
#include<windows.h>
#include<sql.h>
#include<sqlext.h>
#include<sqltypes.h>
int main()
{
	SQLRETURN ret;
	SQLHENV henv;
	SQLHDBC hdbc;
	SQLHSTMT hstmt;
 
	ret=SQLAllocHandle(SQL_HANDLE_ENV,NULL,&henv);//申請環(huán)境句柄
	ret=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);
	ret=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);//申請數(shù)據(jù)庫連接句柄
 
	ret=SQLConnect(hdbc,(SQLCHAR*)"data_test",SQL_NTS,(SQLCHAR*)"sa",SQL_NTS,(SQLCHAR*)"12345678",SQL_NTS);
	/*data_test為配置的ODBC數(shù)據(jù)源名稱,這里根據(jù)自己的配置進(jìn)行修改*/
    if(!(ret==SQL_SUCCESS || ret==SQL_SUCCESS_WITH_INFO))
	{
		printf("連接數(shù)據(jù)庫失敗!\n");
		return -1;
	}
 
	ret=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
	/*執(zhí)行sql語句*/
	SQLCHAR sql1[]="use stu_info";
	SQLCHAR sql2[]="select * from student";
	ret=SQLExecDirect(hstmt,sql1,SQL_NTS);
	ret=SQLExecDirect(hstmt,sql2,SQL_NTS);
	if(ret==SQL_SUCCESS || ret==SQL_SUCCESS_WITH_INFO)
	{
		SQLCHAR str1[50],str2[50],str3[50],str4[50],str5[50],str6[50];
		SQLINTEGER len_str1, len_str2, len_str3, len_str4, len_str5, len_str6;
		while(SQLFetch(hstmt)!=SQL_NO_DATA)
		{
			SQLGetData(hstmt,1,SQL_C_CHAR,str1,50,&len_str1);   //獲取第一列數(shù)據(jù)
			SQLGetData(hstmt,2,SQL_C_CHAR,str2,50,&len_str2); 
			SQLGetData(hstmt,3,SQL_C_CHAR,str3,50,&len_str3); 
			SQLGetData(hstmt,4,SQL_C_CHAR,str4,50,&len_str4); 
			SQLGetData(hstmt,5,SQL_C_CHAR,str5,50,&len_str5); 
			SQLGetData(hstmt,6,SQL_C_CHAR,str6,50,&len_str6); 
			printf("%s\t%s\t%s\t%s\t%s\t%s\n",str1,str2,str3,str4,str5,str6);
		}
	}
 
	SQLFreeHandle(SQL_HANDLE_DBC,hdbc);//釋放連接句柄
	SQLFreeHandle(SQL_HANDLE_ENV,henv);//釋放環(huán)境句柄
	return 0;
}

需要說明的是,在多數(shù)環(huán)境中,代碼會(huì)報(bào)錯(cuò),報(bào)錯(cuò)信息如下:(SQLCHAR*)無法與(SQLWCHAR*)兼容,于是有人可能會(huì)想到,直接強(qiáng)轉(zhuǎn)為(SQLWCHAR*),但是依然在SQLConnect函數(shù)處報(bào)錯(cuò),無法連接上數(shù)據(jù)庫,這時(shí)需要修改字符集,配置為多字節(jié)字符集,操作如下:

到此這篇關(guān)于C語言中操作sqlserver數(shù)據(jù)庫案例教程的文章就介紹到這了,更多相關(guān)C語言操作sqlserver內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++實(shí)現(xiàn)LeetCode(237.刪除鏈表的節(jié)點(diǎn))

    C++實(shí)現(xiàn)LeetCode(237.刪除鏈表的節(jié)點(diǎn))

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(237.刪除鏈表的節(jié)點(diǎn)),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 二分法求多項(xiàng)式在-10 10間值的實(shí)現(xiàn)代碼

    二分法求多項(xiàng)式在-10 10間值的實(shí)現(xiàn)代碼

    以下實(shí)例是介紹了二分法求多項(xiàng)式在-10 10間值的實(shí)現(xiàn)代碼。需要的朋友參考下
    2013-05-05
  • QTableWidget設(shè)置只讓某一列可編輯的實(shí)現(xiàn)

    QTableWidget設(shè)置只讓某一列可編輯的實(shí)現(xiàn)

    本文介紹了如何將QTableWidget的某一列設(shè)置為可編輯,以便用戶可以輸入自定義數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • 基于OpenCV讀取攝像頭實(shí)現(xiàn)單個(gè)人臉驗(yàn)證MFC程序

    基于OpenCV讀取攝像頭實(shí)現(xiàn)單個(gè)人臉驗(yàn)證MFC程序

    這篇文章主要為大家詳細(xì)介紹了基于OpenCV讀取攝像頭實(shí)現(xiàn)單個(gè)人臉驗(yàn)證MFC程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • C語言攝氏度互相轉(zhuǎn)換華氏

    C語言攝氏度互相轉(zhuǎn)換華氏

    這篇文章主要介紹了C語言攝氏度互相轉(zhuǎn)換華氏,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 詳解C++基礎(chǔ)——類繼承

    詳解C++基礎(chǔ)——類繼承

    這篇文章主要介紹了C++類繼承,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • C/C++?Qt?數(shù)據(jù)庫與TableView實(shí)現(xiàn)多組件聯(lián)動(dòng)

    C/C++?Qt?數(shù)據(jù)庫與TableView實(shí)現(xiàn)多組件聯(lián)動(dòng)

    Qt?數(shù)據(jù)庫組件與TableView組件實(shí)現(xiàn)聯(lián)動(dòng)效果,本文通過案例給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-12-12
  • C 語言二叉樹幾種遍歷方法詳解及實(shí)例

    C 語言二叉樹幾種遍歷方法詳解及實(shí)例

    這篇文章主要介紹了C 語言二叉樹幾種遍歷方法詳解及實(shí)例的相關(guān)資料,二叉樹在數(shù)據(jù)結(jié)構(gòu)當(dāng)中是非常重要的知識要點(diǎn),這里對二叉樹進(jìn)行了總結(jié),需要的朋友可以參考下
    2017-01-01
  • C語言lseek()函數(shù)詳解

    C語言lseek()函數(shù)詳解

    這篇文章主要介紹了C語言lseek()函數(shù)詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語言自增(++)和自減(--)實(shí)例詳解

    C語言自增(++)和自減(--)實(shí)例詳解

    本篇文章主要介紹了C語言的自增和自減的基本知識,并附有代碼示例,以便大家理解,有需要的朋友可以看下
    2016-07-07

最新評論

甘泉县| 乌苏市| 开化县| 周至县| 锡林郭勒盟| 中西区| 岗巴县| 寻乌县| 上饶市| 黎平县| 镇原县| 西宁市| 东港市| 湘阴县| 东至县| 行唐县| 格尔木市| 苏尼特左旗| 丽水市| 衢州市| 东阳市| 璧山县| 蒙城县| 沧源| 南陵县| 广宗县| 怀安县| 常宁市| 正镶白旗| 尼玛县| 屯留县| 浠水县| 萨迦县| 藁城市| 图们市| 绥宁县| 龙南县| 如皋市| 同德县| 台山市| 青田县|