亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: mysql 數(shù)據(jù)庫(kù)存儲(chǔ)的錯(cuò)誤(gtk+) [打印本頁(yè)]

作者: dqk0822    時(shí)間: 2005-11-24 15:30
標(biāo)題: mysql 數(shù)據(jù)庫(kù)存儲(chǔ)的錯(cuò)誤(gtk+)
各位老大,代碼如下:
void save_click_ai(GtkButton *button,gpointer data)
{
        gchar query_buf[256]="insert into ai values('";
        if(my_connect()==TRUE)
        {
                if(mysql_query(mysql,"delete from ai")==0)
                {
                        for(j=0;j<row_count_ai;j++)
                        {
                                for(i=0;i<10;i++)
                                {
                                        gtk_clist_get_text(GTK_CLIST(clist_ai),j,i,&clist_data_ai[j][i]);
                                        strcat(query_buf,clist_data_ai[j][i]);
                                        strcat(query_buf,"','");
                                }
                                gtk_clist_get_text(GTK_CLIST(clist_ai),j,10,&clist_data_ai[j][10]);
                                strcat(query_buf,clist_data_ai[j][10]);
                                strcat(query_buf,"')");
                                if(mysql_query(mysql,query_buf)==0)
                                {
                                        memset(query_buf,'',sizeof(query_buf));
                                        strcpy(query_buf,"insert into ai values('");
                                }
                                else
                                        on_message((gpointer)2);
                        }
                        on_message((gpointer)1);
                }
                else
                        on_message((gpointer)3);
        }
        if(mysql_ping(mysql)==0)
                mysql_close(mysql);
        else
                on_message((gpointer)4);
}
存儲(chǔ)成功后 導(dǎo)致程序結(jié)束,用的notebook容器,還有一段類(lèi)似的代碼,運(yùn)行后直接達(dá)到的效果就是exit(0);數(shù)據(jù)庫(kù)表中只能INSERT 2行。
各位老大,迫在眉睫,拜求
作者: renstone921    時(shí)間: 2005-11-24 15:38
if(mysql_query(mysql,query_buf)==0)

建議你在執(zhí)行上面這一句前,把query_buf的內(nèi)容打印一下,看一下生成的查詢(xún)字符串是否正確。
作者: dqk0822    時(shí)間: 2005-11-24 17:20
老大,我用gdb 調(diào)試,點(diǎn)擊保存之后錯(cuò)誤如下:

ived signal SIGSEGV, Segmentation fault.
[Switching to Thread 1080598752 (LWP 4225)]
0x42073591 in realloc () from /lib/tls/libc.so.6
(gdb) n
Single stepping until exit from function realloc,
which has no line number information.
Couldn't get registers: 沒(méi)有那個(gè)進(jìn)程.
(gdb)
作者: renstone921    時(shí)間: 2005-11-24 17:44
編譯時(shí)用-g 選項(xiàng)加入調(diào)試的符號(hào)信息。
gcc -g -o output output.c

SIGSEGV, Segmentation fault

看起來(lái)應(yīng)當(dāng)是你的緩沖區(qū)太小,訪(fǎng)問(wèn)越界。

gchar query_buf[256]="insert into ai values('";

不知道你一行數(shù)據(jù)大概占多多少字節(jié),你分配一個(gè)足夠的緩沖區(qū),先分配上2048個(gè)字節(jié)的緩沖區(qū)試一下。
作者: dqk0822    時(shí)間: 2005-11-24 18:13
老大

[ 本帖最后由 dqk0822 于 2005-11-30 09:51 編輯 ]




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2