|
发表于 2004-10-4 16:15:27
|
显示全部楼层
sorry!您的程序,无论如何,我拿出我曾经编过的程序给您一个参考,我想你改一改应该能应用到您现在的查询。说明:我用了glade开发工具,其余应该不难。
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <bonobo.h>
#include <gnome.h>
#include <mysql.h>
#include "callbacks.h"
#include "interface.h"
#include "support.h"
#include "qs.h"
#define GLADE_HOOKUP_OBJECT(component,widget,name) \
g_object_set_data_full (G_OBJECT (component), name, \
gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
g_object_set_data (G_OBJECT (component), name, widget)
GtkWidget* create_query_ok_d_window (void);
void call_d_query_ok_result(GtkWidget *clist);
GtkWidget*
create_query_ok_d_window (void)
{
GtkWidget *query_ok_window;
GtkWidget *vbox1;
GtkWidget *scrolledwindow1;
GtkWidget *clist1;
GtkWidget *label1;
GtkWidget *label2;
GtkWidget *label3;
GtkWidget *label4;
GtkWidget *label5;
GtkWidget *label6;
GtkWidget *label7;
query_ok_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request (query_ok_window, 800, 600);
gtk_window_set_title (GTK_WINDOW (query_ok_window), _("\346\237\245\350\257\242\345\267\262\345\217\221\351\200\201\346\225\260\346\215\256"));
gtk_window_set_position (GTK_WINDOW (query_ok_window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size (GTK_WINDOW (query_ok_window), 800, 600);
gtk_window_set_destroy_with_parent (GTK_WINDOW (query_ok_window), TRUE);
vbox1 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox1);
gtk_container_add (GTK_CONTAINER (query_ok_window), vbox1);
scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (scrolledwindow1);
gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow1, TRUE, TRUE, 0);
clist1 = gtk_clist_new (7);
gtk_widget_show (clist1);
gtk_container_add (GTK_CONTAINER (scrolledwindow1), clist1);
gtk_container_set_border_width (GTK_CONTAINER (clist1), 1);
GTK_WIDGET_UNSET_FLAGS (clist1, GTK_CAN_FOCUS);
gtk_clist_set_column_width (GTK_CLIST (clist1), 0, 68);
gtk_clist_set_column_width (GTK_CLIST (clist1), 1, 95);
gtk_clist_set_column_width (GTK_CLIST (clist1), 2, 103);
gtk_clist_set_column_width (GTK_CLIST (clist1), 3, 118);
gtk_clist_set_column_width (GTK_CLIST (clist1), 4, 127);
gtk_clist_set_column_width (GTK_CLIST (clist1), 5, 110);
gtk_clist_set_column_width (GTK_CLIST (clist1), 6, 80);
gtk_clist_set_selection_mode (GTK_CLIST (clist1), GTK_SELECTION_BROWSE);
gtk_clist_column_titles_show (GTK_CLIST (clist1));
label1 = gtk_label_new (_("\346\217\220\345\205\245\350\241\214\350\241\214\345\217\267"));
gtk_widget_show (label1);
gtk_clist_set_column_widget (GTK_CLIST (clist1), 0, label1);
gtk_label_set_justify (GTK_LABEL (label1), GTK_JUSTIFY_LEFT);
label2 = gtk_label_new (_("\346\224\266\346\254\276\344\272\272\345\270\220\345\217\267"));
gtk_widget_show (label2);
gtk_clist_set_column_widget (GTK_CLIST (clist1), 1, label2);
gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_LEFT);
label3 = gtk_label_new (_("\346\224\266\346\254\276\344\272\272\345\220\215\347\247\260"));
gtk_widget_show (label3);
gtk_clist_set_column_widget (GTK_CLIST (clist1), 2, label3);
gtk_label_set_justify (GTK_LABEL (label3), GTK_JUSTIFY_LEFT);
label4 = gtk_label_new (_("\344\273\230\346\254\276\344\272\272\345\270\220\345\217\267"));
gtk_widget_show (label4);
gtk_clist_set_column_widget (GTK_CLIST (clist1), 3, label4);
gtk_label_set_justify (GTK_LABEL (label4), GTK_JUSTIFY_LEFT);
label5 = gtk_label_new (_("\344\273\230\346\254\276\344\272\272\345\220\215\347\247\260"));
gtk_widget_show (label5);
gtk_clist_set_column_widget (GTK_CLIST (clist1), 4, label5);
gtk_label_set_justify (GTK_LABEL (label5), GTK_JUSTIFY_LEFT);
label6 = gtk_label_new (_("\351\207\221\351\242\235"));
gtk_widget_show (label6);
gtk_clist_set_column_widget (GTK_CLIST (clist1), 5, label6);
gtk_label_set_justify (GTK_LABEL (label6), GTK_JUSTIFY_LEFT);
label7 = gtk_label_new (_("\345\244\207\346\263\250"));
gtk_widget_show (label7);
gtk_clist_set_column_widget (GTK_CLIST (clist1), 6, label7);
gtk_label_set_justify (GTK_LABEL (label7), GTK_JUSTIFY_LEFT);
/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF (query_ok_window, query_ok_window, "query_ok_window");
GLADE_HOOKUP_OBJECT (query_ok_window, vbox1, "vbox1");
GLADE_HOOKUP_OBJECT (query_ok_window, scrolledwindow1, "scrolledwindow1");
GLADE_HOOKUP_OBJECT (query_ok_window, clist1, "clist1");
GLADE_HOOKUP_OBJECT (query_ok_window, label1, "label1");
GLADE_HOOKUP_OBJECT (query_ok_window, label2, "label2");
GLADE_HOOKUP_OBJECT (query_ok_window, label3, "label3");
GLADE_HOOKUP_OBJECT (query_ok_window, label4, "label4");
GLADE_HOOKUP_OBJECT (query_ok_window, label5, "label5");
GLADE_HOOKUP_OBJECT (query_ok_window, label6, "label6");
GLADE_HOOKUP_OBJECT (query_ok_window, label7, "label7");
call_d_query_ok_result(clist1);
return query_ok_window;
}
void call_d_query_ok_result(GtkWidget *clist)
{
MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW row;
static gchar *text[7];
if(!mysql_init(&mysql))
{
qs_message(_("\n 初始化数据库失败! \n"));
return ;
}
if(!mysql_real_connect(&mysql,QS_LOCAL_HOSTS, QS_LOCAL_USER, QS_LOCAL_PASSWORD, QS_LOCAL_DATABASE, 0, 0, 0))
{
qs_message(_("\n 连接清算数据库失败! \n"));
return ;
}
if( mysql_query(&mysql,"select bankin_num,payee_num,payee_name,payor_num,payor_name,amount,remark from tc_ok_d_data") )
{
qs_message(_("\n 执行查询失败! \n"));
mysql_close(&mysql);
return ;
}
else
{
result = mysql_store_result(&mysql);
gtk_clist_clear(GTK_CLIST(clist));
while(row = mysql_fetch_row(result))
{
if( row == 0 ) /*这时可能对方还没有录入数据*/
{
mysql_free_result(result);
mysql_close(&mysql);
return ;
}
text[0] = UTF8(row[0]);
text[1] = UTF8(row[1]);
text[2] = UTF8(row[2]);
text[3] = UTF8(row[3]);
text[4] = UTF8(row[4]);
text[5] = UTF8(row[5]);
text[6] = UTF8(row[6]);
gtk_clist_append(GTK_CLIST(clist),text);
}
mysql_free_result(result);
}
mysql_close(&mysql);
return ;
}
/*做为参考*/ |
|