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