C語言怎么操作數(shù)據(jù)庫(kù)函數(shù) c語言怎么操作數(shù)據(jù)庫(kù)函數(shù)表

如何在Linux下用C語言操作數(shù)據(jù)庫(kù)sqlite3

下面我們看看怎么在C語言中向數(shù)據(jù)庫(kù)插入數(shù)據(jù)。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、成都做網(wǎng)站、邗江網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、邗江網(wǎng)絡(luò)營(yíng)銷、邗江企業(yè)策劃、邗江品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供邗江建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:muchs.cn

好的,我們現(xiàn)編輯一段c代碼,取名為 insert.c

// name: insert.c

// This prog is used to test C/C++ API for sqlite3 .It is very simple,ha !

// Author : zieckey All rights reserved.

// data : 2006/11/18

#include stdio.h

#include stdlib.h

#include "sqlite3.h"

#define _DEBUG_

int main( void )

{

sqlite3 *db=NULL;

char *zErrMsg = 0;

int rc;

rc = sqlite3_open("zieckey.db", db); //打開指定的數(shù)據(jù)庫(kù)文件,如果不存在將創(chuàng)建一個(gè)同名的數(shù)據(jù)庫(kù)文件

if( rc )

{

fprintf(stderr, "Can't open database: %s

", sqlite3_errmsg(db));

sqlite3_close(db);

exit(1);

}

else printf("You have opened a sqlite3 database named zieckey.db successfully!

Congratulations! Have fun ! ^-^

");

//創(chuàng)建一個(gè)表,如果該表存在,則不創(chuàng)建,并給出提示信息,存儲(chǔ)在 zErrMsg 中

char *sql = " CREATE TABLE SensorData(

ID INTEGER PRIMARY KEY,

SensorID INTEGER,

SiteNum INTEGER,

Time VARCHAR(12),

SensorParameter REAL

);" ;

sqlite3_exec( db , sql , 0 , 0 , zErrMsg );

#ifdef _DEBUG_

printf("%s

",zErrMsg);

#endif

//插入數(shù)據(jù)

sql = "INSERT INTO "SensorData" VALUES( NULL , 1 , 1 , '200605011206', 18.9 );" ;

sqlite3_exec( db , sql , 0 , 0 , zErrMsg );

sql = "INSERT INTO "SensorData" VALUES( NULL , 1 , 1 , '200605011306', 16.4 );" ;

sqlite3_exec( db , sql , 0 , 0 , zErrMsg );

sqlite3_close(db); //關(guān)閉數(shù)據(jù)庫(kù)

return 0;

}

好的,將上述代碼寫入一個(gè)文件,并將其命名為 insert.c 。

解釋:

sqlite3_exec的函數(shù)原型說明如下:

int sqlite3_exec(

sqlite3*,

const char *sql,

sqlite_callback,

void *,

char **errms

g

);

編譯:

[root@localhost temp]# gcc insert.c -lsqlite3 -L/usr/local/sqlite3/lib -I/usr/local/sqlite3/include

insert.c:28:21: warning: multi-line string literals are deprecated

[root@localhost temp]#

執(zhí)行

[root@localhost temp]# ./a.out

./a.out: error while loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such file or directory

[root@localhost temp]#

同樣的情況,如上文處理方法:

[root@localhost temp]# export LD_LIBRARY_PATH=/usr/local/sqlite3/lib:$LD_LIBRARY_PATH

[root@localhost temp]# ./a.out

You have opened a sqlite3 database named zieckey.db successfully!

Congratulations! Have fun ! ^-^

(null)

(null)

(null)

[root@localhost temp]#

運(yùn)行成功了,好了,現(xiàn)在我們來看看是否插入了數(shù)據(jù)

[root@localhost temp]# /usr/local/sqlite3/bin/sqlite3 zieckey.db

SQLite version 3.3.8

Enter ".help" for instructions

sqlite select * from SensorData;

1|1|1|200605011206|18.9

2|1|1|200605011306|16.4

sqlite

c語言調(diào)用庫(kù)函數(shù)用什么命令

您好,很高興回答您的問題。

在c語言中,專門建立有一組需要經(jīng)常使用、但是編寫起來不太簡(jiǎn)單的函數(shù),系統(tǒng)把這些功能載入到軟件內(nèi)容。普通用戶所需要使用時(shí),只需要按照規(guī)定輸入正確的調(diào)用語句,即可打開并運(yùn)行謝謝文件。打開的格式為#include對(duì)應(yīng)文件名,如打開輸入輸出函數(shù)為#includestdio. h。

c語言怎樣連接數(shù)據(jù)庫(kù)?

1、配置ODBC數(shù)據(jù)源。

2、使用SQL函數(shù)進(jìn)行連接。

對(duì)于1、配置數(shù)據(jù)源,配置完以后就可以編程操作數(shù)據(jù)庫(kù)了。

對(duì)于2、使用SQL函數(shù)進(jìn)行連接,參考代碼如下:

#includewindows.h

#includesql.h

#includesqlext.h

void main()

{

HENV henv; //環(huán)境句柄

HDBC hdbc; //數(shù)據(jù)源句柄

HSTMT hstmt; //執(zhí)行語句句柄

unsigned char datasource[]="數(shù)據(jù)源名稱"; //即源中設(shè)置的源名稱

unsigned char user[]= "用戶名"; //數(shù)據(jù)庫(kù)的帳戶名

unsigned char pwd[]= "密碼"; //數(shù)據(jù)庫(kù)的密碼

unsigned char search[]="select xm from stu where xh=0";

SQLRETURN retcode; //記錄各SQL函數(shù)的返回情況

// 分配環(huán)境句柄

retcode= SQLAllocEnv(henv); // 等介于 SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL

, henv);

// 設(shè)置ODBC環(huán)境版本號(hào)為3.0

retcode= SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);

// 分配連接句柄

retcode= SQLAllocConnect(henv,hdbc); // 等介于 SQLAllocHandle(SQL_HANDLE_DBC, henv, hdbc);

//設(shè)置連接屬性,登錄超時(shí)為*rgbValue秒(可以沒有)

// SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)(rgbValue), 0);

//直接連接數(shù)據(jù)源

// 如果是windows身份驗(yàn)證,第二、三參數(shù)可以是

,也可以是任何字串

//SQL_NTS 即 "

retcode= SQLConnect(hdbc,datasource, SQL_NTS, user, SQL_NTS , pwd, SQL_NTS );

//分配語句句柄

retcode= SQLAllocStmt(hdbc,hstmt); // 等介于 SQLAllocHandle(SQL_HANDLE_STMT, hdbc, hstmt);

//直接執(zhí)行查詢語句

retcode=SQLExecDirect(hstmt,search,SQL_NTS);

//將數(shù)據(jù)緩沖區(qū)綁定數(shù)據(jù)庫(kù)中的相應(yīng)字段(i是查詢結(jié)果集列號(hào),queryData是綁定緩沖區(qū),BUFF_LENGTH是緩沖區(qū)長(zhǎng)度)

SQLBindCol(hstmt, i, SQL_C_CHAR, queryData[i-1], BUFF_LENGTH, 0);

//遍歷結(jié)果集到相應(yīng)緩沖區(qū) queryData

SQLFetch(hstmt);

/*

*對(duì)遍歷結(jié)果的相關(guān)操作,如顯示等

*/

//注意釋放順序,否則會(huì)造成未知錯(cuò)誤!

SQLFreeHandle(SQL_HANDLE_STMT, hstmt);

SQLDisconnect(hdbc);

SQLFreeHandle(SQL_HANDLE_DBC, hdbc);

SQLFreeHandle(SQL_HANDLE_ENV, henv);

}

c語言庫(kù)函數(shù)怎么用?

真心不知道你問這個(gè)問題是啥意思……

庫(kù)函數(shù),比如string里面的strcpy?或者math里面的square?或者time里面的time?

這些直接用就好了啊,#includestring.h就好了。

或者是標(biāo)準(zhǔn)庫(kù)函數(shù)什么的?

你用哪個(gè)函數(shù)你就查哪個(gè)函數(shù),查出來她是屬于哪一個(gè)頭文件的,包含進(jìn)去就成了。

名稱欄目:C語言怎么操作數(shù)據(jù)庫(kù)函數(shù) c語言怎么操作數(shù)據(jù)庫(kù)函數(shù)表
地址分享:http://muchs.cn/article42/dojhghc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、微信小程序網(wǎng)站設(shè)計(jì)、App開發(fā)、網(wǎng)站營(yíng)銷、營(yíng)銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司