// No matter the database, the interface should be prepared first.
// Connect to the database and display
# Include <MySQL/MySQL. h>
# Include <GTK/GTK. h>
MySQL * myconnect = NULL;
Gboolean isclosed = true;
Mysql_res * res;
Mysql_field * FD;
Mysql_row row;
Static gtkwidget * mlabel;
Static gtkwidget * text;
Gtktextbuffer * buffer;
Gtktextiter ITER;
// Void on_select (gtkbutton * button, gpointer data)
Int main (INT argc, char * argv [])
{
Gchar * query_buf;
Gchar performance_buf [256];
Gint rows, I, j;
Query_buf = "select * From namdata ";
///
Gtkwidget * window;
Gtkwidget * vbox, * hbox, * viewport;
Gtk_init (& argc, & argv );
Window = gtk_window_new (gtk_window_toplevel );
G_signal_connect (g_object (window), "delete_event", g_callback (gtk_main_quit), null); // on_select
Gtk_window_set_title (gtk_window (window), "Select data from the table ");
Gtk_window_set_default_size (gtk_window (window), 500,100 );
Gtk_window_set_position (gtk_window (window), gtk_win_pos_center );
Gtk_container_set_border_width (gtk_container (window), 10 );
// Sprintf (query, "select * From namdata ");
// Res = mysql_store_result (myconnect );
// Printf ("2res = % P/N", Res );
// T = mysql_query (myconnect, query );
// Printf ("t = % d/N", t );
Vbox = gtk_vbox_new (false, 0 );
Gtk_container_add (gtk_container (window), vbox );
Viewport = gtk_viewport_new (null, null );
Gtk_box_pack_start (gtk_box (vbox), viewport, true, true, 5 );
TEXT = gtk_text_view_new ();
Gtk_container_add (gtk_container (viewport), text );
Buffer = gtk_text_view_get_buffer (gtk_text_view (text ));
Hbox = gtk_hbox_new (false, 0 );
Gtk_box_pack_start (gtk_box (vbox), hbox, false, false, 5 );
Mlabel = gtk_label_new (null );
Gtk_container_add (gtk_container (hbox), mlabel );
// ================================================ ========================================================== ==================
Myconnect = mysql_init (null );
If (! Mysql_real_connect (myconnect, "localhost", "newuser", "newuser", "test1", 0, null, 0) // connect to the database
{
Gtk_label_set_text (gtk_label (mlabel), "error, can't connected to the database ");
// Printf ("error connecting to database: % s/n", mysql_error (MySQL ));
}
Else printf ("connected.../N ");
Query_buf = "select * From namdata ";
If (mysql_query (myconnect, query_buf) = 0)
{
Gtk_label_set_text (gtk_label (mlabel), "information: Select data succeed ");
Res = mysql_store_result (myconnect );//
J = mysql_num_fields (RES );//
Printf ("aaaaaaaa = % d", J );
For (I = 0; I <j; I ++)
{
FD = mysql_fetch_field (RES );
Gtk_text_buffer_get_end_iter (buffer, & ITER );
Gtk_text_buffer_insert (buffer, & ITER, FD-> name,-1 );
// Printf ("####### % s/n", FD-> name );
Gtk_text_buffer_get_end_iter (buffer, & ITER );
Gtk_text_buffer_insert (buffer, & ITER, "/T",-1 );
}
Gtk_text_buffer_get_end_iter (buffer, & ITER );
Gtk_text_buffer_insert (buffer, & ITER, "/N",-1 );
While (ROW = mysql_fetch_row (RES ))
{
For (I = 0; I <j; I ++)
{
Gtk_text_buffer_get_end_iter (buffer, & ITER );
Gtk_text_buffer_insert (buffer, & ITER, row [I],-1 );
Gtk_text_buffer_get_end_iter (buffer, & ITER );
Gtk_text_buffer_insert (buffer, & ITER, "/T",-1 );
}
Gtk_text_buffer_get_end_iter (buffer, & ITER); //» commandid
Gtk_text_buffer_insert (buffer, & ITER, "/N",-1 );
}
Rows = (Gint) mysql_num_rows (RES );
Sprintf (pai_buf, "% d data were choosen/N", rows );
Gtk_text_buffer_get_end_iter (buffer, & ITER );
Gtk_text_buffer_insert (buffer, & ITER, "/N",-1 );
Mysql_free_result (RES );
}
Else
{
Gtk_label_set_text (gtk_label (mlabel), "infomation: run SQL language error ");
}
// ================================================ ========================================================== ==========
/*
TEXT = gtk_text_view_new ();
Gtk_box_pack_start (gtk_box (vbox), text, true, true, 5 );
Buffer = gtk_text_view_get_buffer (gtk_text_view (text ));
Viewport = gtk_viewport_new (null, null );
Gtk_box_pack_start (gtk_box (vbox), viewport, false, false, 5 );
Mlabel = gtk_label_new (null );
Gtk_container_add (gtk_container (viewport), mlabel );
*/
Mysql_close (myconnect );
Gtk_widget_show_all (window );
Gtk_main ();
Return false;
}