Сформируем диалог, который покажет таблицу из большой таблицы из базы данных MySQL.

Параметры подключения:

Сервер IP - 31.41.196.220 (или можно указать имя сервера)

Имя пользователя - u0490570

Пароль пользователя - hP2uH9fdsaY2zpA5eA4

Имя базы данных (схемы) - u0490570

Номер порта для подключения (обычно) - 3306;




int iListBox_MD, iButton_Ok_MD;

int iTable_MD;

int iDialog_MD;


int main()

{

       int iMySQL;

       object("create", "ts_dbmysql", iMySQL);

       int ires;

       ires = ts_dbmysql(iMySQL, "connection_init");

       if (ires != 0) {

               return -1;

       }

       cout << "init success\n";

       string server = "31.41.196.220";

       string user   = "u0490570";

string password = "hP2uH9fdsaY2zpA5eA4";

string basename = "u0490570"; // scheme

int    port     = 3306;

       ires = ts_dbmysql(iMySQL, "connection_open", server, user, password, basename, port);

       if (ires != 0) {

               return -1;

       }

       cout << "connection success\n";


       // Query 

//        string query = "SELECT * FROM u0490570_nsi.labpp_mat_table WHERE labpp_mat_short_text = \'Материал м² 2\'";

//        string query = "SELECT * FROM u0490570_nsi.labpp_mat_table WHERE labpp_mat_short_text LIKE \'%м²%\'";

       string query = "SELECT * FROM u0490570.my_table";

       

       int j = 0;


       ires = ts_dbmysql(iMySQL, "real_query", query);

       if (ires != 0) {

               return -1;

       }

       cout << "query success\n";


       ires = ts_dbmysql(iMySQL, "store_result");

       if (ires != 0) {

               return -1;

       }

       cout << "store result success\n";


       ires = ts_dbmysql(iMySQL, "get_num_fields");

       cout << "num fields = " << ires << "\n";



       int count;

       ires = ts_dbmysql(iMySQL, "get_row_count",count);

       cout << "row count = " << count << "\n";



       int iTable;

       object("create", "ts_table", iTable);


       ts_dbmysql(iMySQL, "export_to_table", iTable);


       ts_dbmysql(iMySQL, "free_result");

       ts_dbmysql(iMySQL, "connection_close");

       object("delete", iMySQL);


       // Create Dialog

       int x, y, w, h, offset;


       object("create", "ts_dialog", iDialog_MD);

       ts_dialog(iDialog_MD, "init_dialog", "palette", 0, 0, 350, 400);

       ts_dialog(iDialog_MD, "set_as_main_panel");

       ts_dialog(iDialog_MD, "SetGrowType", 3);


       ts_dialog(iDialog_MD, "SetTitle", "Наменования материалов для заказчика");


       object("create", "ts_dialogcontrol", iListBox_MD, "iListBox_MD");


       ts_dialogcontrol(iListBox_MD, "init_control", "singlesellistbox", iDialog_MD, 5, 5, 340, 350, 48, 20);

       ts_dialogcontrol(iListBox_MD, "SetAnchorToPanelResize", 0, 0, 1, 1);


       ts_table(iTable, "set_columns_width_when_export", 100);


       ts_table(iTable, "mapping_columns_to_export",

               "id", "№", "",

               "_IDRRef","Идентификатор","",

               "_Description","Наименование для заказчика", "",

               "_ParentIDRRef","Идентификатор родителя", ""

       );

       ts_table(iTable, "export_to_dialogcontrol", iListBox_MD, -1, -1);


       x = 10;

       w = 98;

       int delta = 10;

       x = x + w + delta;

       y = 370;

       h = 20;


       x = x + w + delta;

       object("create", "ts_dialogcontrol", iButton_Ok_MD, "iButton_Ok_MD");

       ts_dialogcontrol(iButton_Ok_MD, "init_control", "button", iDialog_MD, x, y, w, h);

       ts_dialogcontrol(iButton_Ok_MD, "eventreaction", "Event_ButtonClicked", "Event_ButtonClicked_MD");

       ts_dialogcontrol(iButton_Ok_MD, "settext", "Ok");

       ts_dialogcontrol(iButton_Ok_MD, "SetAnchorToPanelResize", 1, 1, 0, 0);


       bool bres;

       ts_dialog(iDialog_MD, "invoke", bres);


       //<-

       object("delete", iTable);

}


int Event_ButtonClicked_MD(int iDescr, string sDescr)

{

       if (sDescr == "iButton_Ok_MD") {

               ts_dialog(iDialog_MD, "SendCloseRequest");

       }

}