//Add the following procedures to the database //CREATE PROCEDURE `noop`() //BEGIN //END // //CREATE PROCEDURE `echo`(IN txt TEXT) //BEGIN // SELECT txt AS `echoed_text`; //END #include "stdafx.h" #include #include #include int executeQuery(const char* multiSQL) { printf("CRT\n"); MYSQL handle; mysql_init(&handle); if(&handle == NULL) return -1; if(!mysql_real_connect(&handle, "127.0.0.1", "root", NULL, "test", 0, NULL, CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS)) { mysql_close(&handle); return -1; } printf("Executing: \"%s\"\n", multiSQL); if(mysql_real_query(&handle, multiSQL, (unsigned long) strlen(multiSQL))) { mysql_close(&handle); return -1; } MYSQL_RES* result = NULL; result = mysql_store_result(&handle); if(mysql_field_count(&handle) > 0) printf("%i field resultset returned.\n", mysql_field_count(&handle)); else printf("Empty resultset returned.\n"); if(result != NULL) mysql_free_result(result); while(true) { int res = mysql_next_result(&handle); if(res != 0) { mysql_free_result(result); mysql_close(&handle); return 0; } result = mysql_store_result(&handle); if(result != NULL) mysql_free_result(result); if(mysql_field_count(&handle) > 0) printf("%i field resultset returned.\n", mysql_field_count(&handle)); else printf("Empty resultset returned.\n"); } mysql_close(&handle); return 0; } int main(int argc, char* argv[]) { const char* multiSQL = "CALL noop();CALL noop();CALL noop();"; executeQuery(multiSQL); printf("====================\n"); multiSQL = "CALL echo('hi');CALL echo('hi');CALL echo('hi');"; executeQuery(multiSQL); printf("====================\n"); return 0; }