亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQLite > 正文

關于sqlite_exec回調函數中參數傳遞的問題

2024-09-07 00:10:05
字體:
來源:轉載
供稿:網友
上一篇轉載的文章中涉及到了如何用C來作回調函數讀取或寫入SQLITE數據庫的問題,但其中沒有關于回調函數如何作參數傳遞的問題,比如想要在你的主調函數中獲取該變量,就需要通過調用sqlite3_exec函數給回調函數傳遞結構體指針,下面我作了一例:

#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>

struct olt_info
{
int olt_index;
int onu_on_line;
int ui_port1;
int ui_port2;
int ui_port3;
int ui_port4;
};

int my_callback(void * olt_temp, int argc, char * value[], char * name[])
{
int i;
struct olt_info * pdata = NULL;

pdata = (struct olt_info *)olt_temp;

puts("Here below is the code line:/n");
for (i = 0; i < argc; i )
{
printf("%s == %s/n", name[i], value[i]);
}
puts("Code line over./n");

pdata->olt_index = (int)atoi(value[0]);
pdata->onu_on_line = (int)atoi(value[1]);
pdata->ui_port1 = (int)atoi(value[2]);
pdata->ui_port2 = (int)atoi(value[3]);
pdata->ui_port3 = (int)atoi(value[4]);
pdata->ui_port4 = (int)atoi(value[5]);

return 0;
}

int main(int argc, char * argv[])
{
sqlite3 * olt_db = NULL;
int rc = 0;
int i;
char * err_msg = NULL;
char temp_msg[150];
struct olt_info * olt_temp= (struct olt_info *)malloc(sizeof(struct olt_info));

rc = sqlite3_open("olt.db", &olt_db);
if (rc)
{
fprintf(stderr, "Open database error, %s/n", sqlite3_errmsg(olt_db));
exit(1);
}
else
{
fprintf(stdout, "Open database OK./n");
}

rc = sqlite3_exec(olt_db, "create table olt_tbl(olt_index integer primary key autoincrement, onu_on_line smallint, ui_port1 smallint, ui_port2 smallint, ui_port3 smallint, ui_port4 smallint);", NULL, NULL, &err_msg);

if (rc != SQLITE_OK)
{
fprintf(stderr, "Create table error, %s/n", err_msg);
exit(1);
}
else
{
fprintf(stdout, "Create table OK./n");
}

for (i = 0; i < 6; i )
{
sprintf(temp_msg, "insert into olt_tbl(onu_on_line, ui_port1, ui_port2, ui_port3, ui_port4) values(%d, %d, %d, %d, %d)", i * 16, i, i, i, i);
//rc = sqlite3_exec(olt_db, "insert into olt_tbl(onu_on_line, ui_port1, ui_port2, ui_port3, ui_port4) values(32, 1, 1, 1, 1);", NULL, NULL, &err_msg);
rc = sqlite3_exec(olt_db, temp_msg, NULL, NULL, &err_msg);
}

if (rc != SQLITE_OK)
{
fprintf(stderr, "Insert items failure, %s/n", err_msg);
}
else
{
fprintf(stdout, "Insert items OK./n");
}

rc = sqlite3_exec(olt_db, "select * from olt_tbl where olt_index==4;", my_callback, olt_temp, &err_msg);
if (rc != SQLITE_OK)
{
fprintf(stderr, "Selete from olt_tbl failure, %s/n", err_msg);
exit(1);
}
else
{
fprintf(stdout, "Excute sql OK./n");
}

printf("%d-%d-%d-%d-%d-%d/n", olt_temp->olt_index, olt_temp->onu_on_line,olt_temp->ui_port1,olt_temp->ui_port2,olt_temp->ui_port3,olt_temp->ui_port4);

free(olt_temp);

sqlite3_close(olt_db);
return 0;
}

其中my_callback(void * pdata, int argc, char * value[], char *name[])為回調函數,切記回調函數只能按照這種格式來定義參數,
第一個參數為你的主調函數傳遞過來的指針,
第二個參數為變量的個數,
第三個為變量的值,
第四個為變量的名稱,
有兩個問題需要注意:
一、這里面參數都是字符串類型,根據您的需要作出強制類型轉換即可。
二、第一個參數為void *類型,需要在你的回調函數里強制轉換成需要的類型。


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1914908

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线成人中文字幕| 国产亚洲欧美日韩精品| 国产精品亚洲视频在线观看| 在线视频欧美日韩精品| 亚洲国产一区二区三区四区| 91tv亚洲精品香蕉国产一区7ujn| 日韩一区二区久久久| 91在线免费视频| 97精品伊人久久久大香线蕉| 欧美又大粗又爽又黄大片视频| 2019中文在线观看| 国产精品久久久久久久久久久不卡| 亚洲国产欧美一区二区丝袜黑人| 青青在线视频一区二区三区| 欧美疯狂性受xxxxx另类| 国产精品露脸自拍| 亚洲福利视频久久| 亚洲美女av在线播放| 永久免费精品影视网站| 欧美午夜无遮挡| 日韩不卡中文字幕| 亚洲二区在线播放视频| 久久久久久久久网站| 久久精品一偷一偷国产| 国产日韩在线播放| 亚洲2020天天堂在线观看| 亚洲精品国精品久久99热| 欧美激情xxxxx| 午夜精品www| 欧美人在线观看| 日本成人精品在线| 人人做人人澡人人爽欧美| 国产精品视频一区二区三区四| 欧美日韩电影在线观看| 亚洲精品第一国产综合精品| 亚洲国产精彩中文乱码av| 777精品视频| 欧美一级片在线播放| 狠狠操狠狠色综合网| 日韩欧美在线观看| 国产午夜精品全部视频在线播放| 91精品在线看| 成人免费淫片aa视频免费| 欧美日本啪啪无遮挡网站| 久久亚洲综合国产精品99麻豆精品福利| 7777精品视频| 欧美日韩综合视频| 日韩欧美精品在线观看| 日韩精品在线私人| 欧美日韩国产在线看| 欧美插天视频在线播放| 日韩美女视频免费在线观看| 最近2019中文字幕在线高清| 国产精品视频白浆免费视频| 亚洲国产91精品在线观看| 国产精品久久999| 日韩亚洲成人av在线| 久久九九国产精品怡红院| 欧美性猛交xxxx乱大交| 91精品免费久久久久久久久| 国产亚洲欧美一区| 亚洲美女在线看| 日韩欧美成人免费视频| 亚洲japanese制服美女| 久久久视频在线| 91干在线观看| 国内成人精品一区| 日韩欧美亚洲综合| 国产精品xxx视频| 91最新在线免费观看| 日韩视频免费看| 成人xxxxx| 国产亚洲a∨片在线观看| 国外日韩电影在线观看| 亚洲精品电影在线观看| 国产欧美va欧美va香蕉在| 一区二区三区在线播放欧美| 北条麻妃久久精品| 亚洲成人av中文字幕| 久久精品成人欧美大片古装| 日韩美女毛茸茸| 日韩av一区在线| 国产精品夫妻激情| 国产美女精品免费电影| 7m精品福利视频导航| 国产精品亚洲视频在线观看| 国产成人一区二| 98精品国产高清在线xxxx天堂| 欧美高清无遮挡| 亚洲欧美在线第一页| 成人激情视频小说免费下载| 国产91色在线|| 亚洲国产欧美一区| 欧美成人精品在线观看| 97国产在线观看| 91av视频在线免费观看| 成人羞羞国产免费| 亚洲第一网中文字幕| 国产精品美女免费视频| 国产偷亚洲偷欧美偷精品| 国产在线精品一区免费香蕉| 久久久久久91香蕉国产| 国产日韩在线播放| 亚洲欧美三级伦理| 91久久久久久久久久久| 国产精品亚洲激情| 国产精品网红直播| 亚洲欧美另类人妖| 久久91亚洲人成电影网站| 欧美性猛交xxxx富婆| 91av福利视频| 国产主播精品在线| 日韩精品中文字幕视频在线| 97超级碰碰碰久久久| 国产亚洲精品激情久久| 中文字幕国产日韩| 91wwwcom在线观看| 91精品国产沙发| 亚洲欧洲自拍偷拍| 成人福利在线视频| 中文字幕一区二区三区电影| 久久九九精品99国产精品| 久久久久久久久久久91| 日韩美女在线看| 色综合久久久久久中文网| 成人免费黄色网| 国产精品吹潮在线观看| 色999日韩欧美国产| 亚洲第一色中文字幕| 久久精品视频网站| 亚洲高清久久网| 日韩成人高清在线| 国产精品精品视频| 亚洲国产美女精品久久久久∴| 97在线观看免费高清| 欧美激情国产精品| 欧美国产中文字幕| 九色精品免费永久在线| 国产精品高清免费在线观看| 亚洲毛片在线免费观看| 97成人在线视频| 美女999久久久精品视频| 欧美怡春院一区二区三区| 成人两性免费视频| 亚洲欧洲日产国码av系列天堂| 国产欧美日韩综合精品| 久久精品国产一区二区电影| 欧美激情视频一区二区| 久久久成人的性感天堂| 777777777亚洲妇女| 久久精品99久久香蕉国产色戒| 亚洲在线观看视频| 91精品综合视频| 久久天堂av综合合色| 欧美最顶级丰满的aⅴ艳星| 91黑丝高跟在线| 亚洲天堂久久av| 日韩欧美在线视频观看| 精品无人区乱码1区2区3区在线| 性夜试看影院91社区| 一区二区中文字幕| 日韩免费在线播放| 色视频www在线播放国产成人| 国产亚洲视频在线|