|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
|
txt to db
|
|
| many | Дата: Четверг, 27.11.2008, 15:44:56 | Сообщение # 1 |
 Лейтенант
Группа: Пользователи
Сообщений: 49
Статус: Не в сети
| Есть такой плагин KZ Records который скачивает файл рекордов разных стран в формате txt. мне понадобилось засунуть этот txt в БД и я решил написать плагин. Но debug выводит: Code db_records_update L 11/27/2008 - 15:34:16: [MySQL] Invalid info tuple handle: 0 L 11/27/2008 - 15:34:16: [AMXX] Displaying debug trace (plugin "txttodb.amxx") L 11/27/2008 - 15:34:16: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery") L 11/27/2008 - 15:34:16: [AMXX] [0] phpds88HJ.sma::make_wr_table (line 76) L 11/27/2008 - 15:34:20: [MySQL] Invalid info tuple handle: 0 L 11/27/2008 - 15:34:20: [AMXX] Displaying debug trace (plugin "txttodb.amxx") L 11/27/2008 - 15:34:20: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery") L 11/27/2008 - 15:34:20: [AMXX] [0] phpds88HJ.sma::make_ru_table (line 100) Помогите плз исправить. Вот сам код: Code /* Script generated by Pawn Studio */
#include <amxmodx> #include <amxmisc> #include <sqlx>
#define PLUGIN "txt to db" #define AUTHOR "many" #define VERSION "1.0"
new Handle:DB_TUPLE
new demos_wr[512] new demos_ru[512]
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_srvcmd( "db_records_update", "cmd_update" ) register_cvar( "rec_db_host", "127.0.0.1:4019" ) register_cvar( "rec_db_user", "lala" ) register_cvar( "rec_db_pass", "lala" ) register_cvar( "rec_db_name", "lala" ) new data[128]; get_localinfo( "amxx_datadir", data, sizeof(data) - 1 ) format( demos_wr, sizeof(demos_wr)-1, "%s/demos_wr.txt", data); format( demos_ru, sizeof(demos_ru)-1, "%s/demos_ru.txt", data); }
public db_init( ) { static host[32], user[32], pass[32], name[32] get_cvar_string( "rec_db_host", host, 31 ) get_cvar_string( "rec_db_user", user, 31 ) get_cvar_string( "rec_db_pass", pass, 31 ) get_cvar_string( "rec_db_name", name, 31 ) DB_TUPLE=SQL_MakeDbTuple(host,user,pass,name) new query[1024] formatex( query, 1023, "create table if not exists rec_wr (map_name varchar(32), fin_time float, name varchar(32) unique)") SQL_ThreadQuery( DB_TUPLE, "db_generic_handler", query ) formatex( query, 1023, "create table if not exists rec_ru (map_name varchar(32), fin_time float, name varchar(32) unique)") SQL_ThreadQuery( DB_TUPLE, "db_generic_handler", query ) }
public cmd_update() { set_task(1.0, "make_wr_table") set_task(5.0, "make_ru_table") }
public make_wr_table() { if(file_exists(demos_wr)) { new line, stxtsize new data[256] new map_name[32], name[32] new Float:fin_time new query[1024] while((line=read_file(demos_wr,line,data,255,stxtsize))!=0) { parse(data, map_name, 31, fin_time, 7, name, 31) formatex( query, 1023, "INSERT INTO `rec_wr` VALUES ('%s', '%s', '%s')", map_name, fin_time, name ) SQL_ThreadQuery(DB_TUPLE,"db_save_handler",query) } } else { log_amx("Failed To Load demos_wr.txt !") } }
public make_ru_table() { if(file_exists(demos_ru)) { new line, stxtsize new data[256] new map_name[32], name[32] new Float:fin_time new query[1024] while((line=read_file(demos_wr,line,data,255,stxtsize))!=0) { parse(data, map_name, 31, fin_time, 7, name, 31) formatex( query, 1023, "INSERT INTO `rec_ru` VALUES ('%s', '%s', '%s')", map_name, fin_time, name ) SQL_ThreadQuery(DB_TUPLE,"db_save_handler",query) } } else { log_amx("Failed To Load demos_ru.txt !") } }
public db_generic_handler(failstate, Handle:query, error[], errnum, data[], size, Float:queuetime) { return query_failed( failstate, error, errnum ) }
public db_save_handler( failstate, Handle:query, error[], errnum, data[], size, Float:queuetime ) { return query_failed( failstate, error, errnum ) }
public query_failed( failstate, error[], errnum ) { if( failstate == TQUERY_CONNECT_FAILED ) { log_amx( "Rec to DB: Couldn't connect to database: %s", error ) return 1 } else if( failstate == TQUERY_QUERY_FAILED ) { log_amx( "Rec to DB: Query failed: %s", error ) return 1 } if( errnum ) { log_amx( "Rec to DB: Query Error: %s", error ) return 1 } return 0 }
|
| |
|
|
| PomanoB | Дата: Четверг, 27.11.2008, 16:06:42 | Сообщение # 2 |
 Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| Выложи сюда файл txt формат записей посмотреть PS Я для таких вещей использую PHP, зачем плагин писать ???
http://romanov4400.mybrute.com
|
| |
|
|
| many | Дата: Четверг, 27.11.2008, 16:37:24 | Сообщение # 3 |
 Лейтенант
Группа: Пользователи
Сообщений: 49
Статус: Не в сети
| что бы потом сделать при обновлении рекордов плагина KZ Records автоматическое обновление БД
Сообщение отредактировал many - Четверг, 27.11.2008, 16:39:18 |
| |
|
|
| DaTa | Дата: Четверг, 27.11.2008, 17:58:18 | Сообщение # 4 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Quote /** * Creates a connection information tuple. * This tuple must be passed into connection routines. * Freeing the tuple is not necessary, but is a good idea if you * create many of them. You can cache these handles globally. * !!NOTE!! I have seen most people think that this connects to the DB. * Nowhere does it say this, and in fact it does not. It only caches * the connection information, the host/user/pass/etc. * * The optional timeout parameter specifies how long connections should wait before * giving up. If 0, the default (which is undefined) is used. * */ native Handle:SQL_MakeDbTuple(const host[], const user[], const pass[], const db[], timeout=0); Code /** * Opens a database connection. * Returns an SQL handle, which must be freed. * Returns Empty_Handle on failure. */ native Handle:SQL_Connect(Handle:cn_tuple, &errcode, error[], maxlength);
|
| |
|
|
| many | Дата: Четверг, 27.11.2008, 19:59:51 | Сообщение # 5 |
 Лейтенант
Группа: Пользователи
Сообщений: 49
Статус: Не в сети
| вообщем я изменил но ничего не произошло, таже ошибка код щас такой: Code /* Script generated by Pawn Studio */
#include <amxmodx> #include <amxmisc> #include <sqlx>
#define PLUGIN "txt to db" #define AUTHOR "many" #define VERSION "1.0"
new Handle:DB_TUPLE new error[512] new error_code new Handle:DB_CONNECT
new demos_wr[512] new demos_ru[512]
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_srvcmd( "db_records_update", "cmd_update" ) register_cvar( "rec_db_host", "127.0.0.1:4019" ) register_cvar( "rec_db_user", "lala" ) register_cvar( "rec_db_pass", "lala" ) register_cvar( "rec_db_name", "lalaq" ) new data[128]; get_localinfo( "amxx_datadir", data, sizeof(data) - 1 ) format( demos_wr, sizeof(demos_wr)-1, "%s/demos_wr.txt", data); format( demos_ru, sizeof(demos_ru)-1, "%s/demos_ru.txt", data); }
public db_init( ) { static host[32], user[32], pass[32], name[32] get_cvar_string( "rec_db_host", host, 31 ) get_cvar_string( "rec_db_user", user, 31 ) get_cvar_string( "rec_db_pass", pass, 31 ) get_cvar_string( "rec_db_name", name, 31 ) DB_TUPLE=SQL_MakeDbTuple(host,user,pass,name) DB_CONNECT=SQL_Connect(DB_TUPLE, error_code, error, 511); if(DB_CONNECT == Empty_Handle) set_fail_state(error) new query[1024] formatex( query, 1023, "create table if not exists rec_wr (map_name varchar(32), fin_time float, name varchar(32) unique)") SQL_ThreadQuery( DB_TUPLE, "db_generic_handler", query ) formatex( query, 1023, "create table if not exists rec_ru (map_name varchar(32), fin_time float, name varchar(32) unique)") SQL_ThreadQuery( DB_TUPLE, "db_generic_handler", query ) }
public cmd_update() { set_task(1.0, "make_wr_table") set_task(5.0, "make_ru_table") }
public make_wr_table() { if(file_exists(demos_wr)) { new line, stxtsize new data[256] new map_name[32], name[32] new Float:fin_time[8] new query[1024] while((line=read_file(demos_wr,line,data,255,stxtsize))!=0) { parse(data, map_name, 31, fin_time, 7, name, 31) formatex( query, 1023, "INSERT INTO `rec_wr` VALUES ('%s', '%s', '%s')", map_name, fin_time, name ) SQL_ThreadQuery(DB_CONNECT,"db_save_handler",query) } } else { log_amx("Failed To Load demos_wr.txt !") } }
public make_ru_table() { if(file_exists(demos_ru)) { new line, stxtsize new data[256] new map_name[32], name[32] new Float:fin_time[8] new query[1024] while((line=read_file(demos_wr,line,data,255,stxtsize))!=0) { parse(data, map_name, 31, fin_time, 7, name, 31) formatex( query, 1023, "INSERT INTO `rec_ru` VALUES ('%s', '%s', '%s')", map_name, fin_time, name ) SQL_ThreadQuery(DB_CONNECT,"db_save_handler",query) } } else { log_amx("Failed To Load demos_ru.txt !") } }
public db_generic_handler(failstate, Handle:query, error[], errnum, data[], size, Float:queuetime) { return query_failed( failstate, error, errnum ) }
public db_save_handler( failstate, Handle:query, error[], errnum, data[], size, Float:queuetime ) { return query_failed( failstate, error, errnum ) }
public query_failed( failstate, error[], errnum ) { if( failstate == TQUERY_CONNECT_FAILED ) { log_amx( "Rec to DB: Couldn't connect to database: %s", error ) return 1 } else if( failstate == TQUERY_QUERY_FAILED ) { log_amx( "Rec to DB: Query failed: %s", error ) return 1 } if( errnum ) { log_amx( "Rec to DB: Query Error: %s", error ) return 1 } return 0 }
public plugin_end() { SQL_FreeHandle(DB_TUPLE) } помогите)
Сообщение отредактировал many - Четверг, 27.11.2008, 20:00:21 |
| |
|
|
| DaTa | Дата: Четверг, 27.11.2008, 20:27:52 | Сообщение # 6 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| скопируй ту же ошибку для начала
|
| |
|
|
| many | Дата: Четверг, 27.11.2008, 20:44:06 | Сообщение # 7 |
 Лейтенант
Группа: Пользователи
Сообщений: 49
Статус: Не в сети
| Code db_records_update L 11/27/2008 - 20:37:50: [MySQL] Invalid info tuple handle: 0 L 11/27/2008 - 20:37:50: [AMXX] Displaying debug trace (plugin "txttodb.amxx") L 11/27/2008 - 20:37:50: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery") L 11/27/2008 - 20:37:50: [AMXX] [0] phpy3rWFT.sma::make_wr_table (line 85) L 11/27/2008 - 20:37:54: [MySQL] Invalid info tuple handle: 0 L 11/27/2008 - 20:37:54: [AMXX] Displaying debug trace (plugin "txttodb.amxx") L 11/27/2008 - 20:37:54: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery") L 11/27/2008 - 20:37:54: [AMXX] [0] phpy3rWFT.sma::make_ru_table (line 109)
|
| |
|
|
| DaTa | Дата: Четверг, 27.11.2008, 21:37:43 | Сообщение # 8 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Quote /** * Prepares and executes a threaded query. * This will not interrupt gameplay in the event of a poor/lossed * connection, however, the interface is more complicated and * asynchronous. Furthermore, a new connection/disconnection is * made for each query to simplify driver support. * The handler should look like: * * @param failstate - One of the three TQUERY_ defines. * @param query - Handle to the query, do not free it. * @param error - An error message, if any. * @param errnum - An error code, if any. * @param data - Data array you passed in. * @param size - Size of the data array you passed in. * @param queuetime - Amount of gametime that passed while the query was resolving. * * public QueryHandler(failstate, Handle:query, error[], errnum, data[], size, Float:queuetime) * * Note! The handle you pass in is a DB Tuple, NOT an active connection! * Note! The handle does not need to be freed. * Also note: This function is not guaranteed to be in another thread * (in fact - it's not). You're seeing data "after the fact", * and as such to execute another query you should run * SQL_ThreadQuery again with new data. */ native SQL_ThreadQuery(Handle:db_tuple, const handler[], const query[], const data[]="", dataSize=0); Хоть иногда читайте описание функций Code SQL_ThreadQuery(DB_CONNECT,"db_save_handler",query) //... SQL_ThreadQuery(DB_CONNECT,"db_save_handler",query) -> Code SQL_ThreadQuery(DB_TUPLE,"db_save_handler",query) //... SQL_ThreadQuery(DB_TUPLE,"db_save_handler",query)
|
| |
|
|
| many | Дата: Четверг, 27.11.2008, 22:02:09 | Сообщение # 9 |
 Лейтенант
Группа: Пользователи
Сообщений: 49
Статус: Не в сети
| Тоже самое... Code db_records_update L 11/27/2008 - 21:53:55: [MySQL] Invalid info tuple handle: 0 L 11/27/2008 - 21:53:55: [AMXX] Displaying debug trace (plugin "txttodb.amxx") L 11/27/2008 - 21:53:55: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery") L 11/27/2008 - 21:53:55: [AMXX] [0] phpy3rWFT.sma::make_wr_table (line 85) L 11/27/2008 - 21:53:59: [MySQL] Invalid info tuple handle: 0 L 11/27/2008 - 21:53:59: [AMXX] Displaying debug trace (plugin "txttodb.amxx") L 11/27/2008 - 21:53:59: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery") L 11/27/2008 - 21:53:59: [AMXX] [0] phpy3rWFT.sma::make_ru_table (line 109) Плагин: Code /* Script generated by Pawn Studio */
#include <amxmodx> #include <amxmisc> #include <sqlx>
#define PLUGIN "txt to db" #define AUTHOR "many" #define VERSION "1.0"
new Handle:DB_TUPLE new error[512] new error_code new Handle:DB_CONNECT
new demos_wr[512] new demos_ru[512]
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_srvcmd( "db_records_update", "cmd_update" ) register_cvar( "rec_db_host", "lala" ) register_cvar( "rec_db_user", "lala" ) register_cvar( "rec_db_pass", "lala" ) register_cvar( "rec_db_name", "lala" ) new data[128]; get_localinfo( "amxx_datadir", data, sizeof(data) - 1 ) format( demos_wr, sizeof(demos_wr)-1, "%s/demos_wr.txt", data); format( demos_ru, sizeof(demos_ru)-1, "%s/demos_ru.txt", data); }
public db_init( ) { static host[32], user[32], pass[32], name[32] get_cvar_string( "rec_db_host", host, 31 ) get_cvar_string( "rec_db_user", user, 31 ) get_cvar_string( "rec_db_pass", pass, 31 ) get_cvar_string( "rec_db_name", name, 31 ) DB_TUPLE=SQL_MakeDbTuple(host,user,pass,name) DB_CONNECT=SQL_Connect(DB_TUPLE, error_code, error, 511); if(DB_CONNECT == Empty_Handle) set_fail_state(error) new query[1024] formatex( query, 1023, "create table if not exists rec_wr (map_name varchar(32), fin_time float, name varchar(32) unique)") SQL_ThreadQuery( DB_TUPLE, "db_generic_handler", query ) formatex( query, 1023, "create table if not exists rec_ru (map_name varchar(32), fin_time float, name varchar(32) unique)") SQL_ThreadQuery( DB_TUPLE, "db_generic_handler", query ) }
public cmd_update() { set_task(1.0, "make_wr_table") set_task(5.0, "make_ru_table") }
public make_wr_table() { if(file_exists(demos_wr)) { new line, stxtsize new data[256] new map_name[32], name[32] new Float:fin_time[8] new query[1024] while((line=read_file(demos_wr,line,data,255,stxtsize))!=0) { parse(data, map_name, 31, fin_time, 7, name, 31) formatex( query, 1023, "INSERT INTO `rec_wr` VALUES ('%s', '%s', '%s')", map_name, fin_time, name ) SQL_ThreadQuery(DB_TUPLE,"db_save_handler",query) } } else { log_amx("Failed To Load demos_wr.txt !") } }
public make_ru_table() { if(file_exists(demos_ru)) { new line, stxtsize new data[256] new map_name[32], name[32] new Float:fin_time[8] new query[1024] while((line=read_file(demos_wr,line,data,255,stxtsize))!=0) { parse(data, map_name, 31, fin_time, 7, name, 31) formatex( query, 1023, "INSERT INTO `rec_ru` VALUES ('%s', '%s', '%s')", map_name, fin_time, name ) SQL_ThreadQuery(DB_TUPLE,"db_save_handler",query) } } else { log_amx("Failed To Load demos_ru.txt !") } }
public db_generic_handler(failstate, Handle:query, error[], errnum, data[], size, Float:queuetime) { return query_failed( failstate, error, errnum ) }
public db_save_handler( failstate, Handle:query, error[], errnum, data[], size, Float:queuetime ) { return query_failed( failstate, error, errnum ) }
public query_failed( failstate, error[], errnum ) { if( failstate == TQUERY_CONNECT_FAILED ) { log_amx( "Rec to DB: Couldn't connect to database: %s", error ) return 1 } else if( failstate == TQUERY_QUERY_FAILED ) { log_amx( "Rec to DB: Query failed: %s", error ) return 1 } if( errnum ) { log_amx( "Rec to DB: Query Error: %s", error ) return 1 } return 0 }
public plugin_end() { SQL_FreeHandle(DB_TUPLE) }
Сообщение отредактировал many - Четверг, 27.11.2008, 22:34:55 |
| |
|
|
| DaTa | Дата: Четверг, 27.11.2008, 22:40:06 | Сообщение # 10 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Quote (DaTa) скопируй ту же ошибку для начала Добавлено (2008-11-27, 10:40 Pm) --------------------------------------------- public db_init( ) не вызывается
|
| |
|
|
| many | Дата: Четверг, 27.11.2008, 23:03:24 | Сообщение # 11 |
 Лейтенант
Группа: Пользователи
Сообщений: 49
Статус: Не в сети
| Code db_records_update L 11/27/2008 - 22:55:48: [MySQL] Invalid info tuple handle: 0 L 11/27/2008 - 22:55:48: [AMXX] Displaying debug trace (plugin "txttodb.amxx") L 11/27/2008 - 22:55:48: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery") L 11/27/2008 - 22:55:48: [AMXX] [0] phpy3rWFT.sma::make_wr_table (line 85) L 11/27/2008 - 22:55:52: [MySQL] Invalid info tuple handle: 0 L 11/27/2008 - 22:55:52: [AMXX] Displaying debug trace (plugin "txttodb.amxx") L 11/27/2008 - 22:55:52: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery") L 11/27/2008 - 22:55:52: [AMXX] [0] phpy3rWFT.sma::make_ru_table (line 109) Code /* Script generated by Pawn Studio */
#include <amxmodx> #include <amxmisc> #include <sqlx>
#define PLUGIN "txt to db" #define AUTHOR "many" #define VERSION "1.0"
new Handle:DB_TUPLE new error[512] new error_code new Handle:DB_CONNECT
new demos_wr[512] new demos_ru[512]
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_srvcmd( "db_records_update", "cmd_update" ) register_cvar( "rec_db_host", "127.0.0.1:4019" ) register_cvar( "rec_db_user", "xxx" ) register_cvar( "rec_db_pass", "xxx" ) register_cvar( "rec_db_name", "cs" ) new data[128]; get_localinfo( "amxx_datadir", data, sizeof(data) - 1 ) format( demos_wr, sizeof(demos_wr)-1, "%s/demos_wr.txt", data); format( demos_ru, sizeof(demos_ru)-1, "%s/demos_ru.txt", data); static host[32], user[32], pass[32], name[32] get_cvar_string( "rec_db_host", host, 31 ) get_cvar_string( "rec_db_user", user, 31 ) get_cvar_string( "rec_db_pass", pass, 31 ) get_cvar_string( "rec_db_name", name, 31 ) DB_TUPLE=SQL_MakeDbTuple(host,user,pass,name) DB_CONNECT=SQL_Connect(DB_TUPLE, error_code, error, 511); if(DB_CONNECT == Empty_Handle) set_fail_state(error) new query[1024] formatex( query, 1023, "create table if not exists rec_wr (map_name varchar(32), fin_time float, name varchar(32) unique)") SQL_ThreadQuery( DB_TUPLE, "db_generic_handler", query ) formatex( query, 1023, "create table if not exists rec_ru (map_name varchar(32), fin_time float, name varchar(32) unique)") SQL_ThreadQuery( DB_TUPLE, "db_generic_handler", query ) }
public cmd_update() { set_task(1.0, "make_wr_table") set_task(5.0, "make_ru_table") }
public make_wr_table() { if(file_exists(demos_wr)) { new line, stxtsize new data[256] new map_name[32], name[32] new Float:fin_time[8] new query[1024] while((line=read_file(demos_wr,line,data,255,stxtsize))!=0) { parse(data, map_name, 31, fin_time, 7, name, 31) formatex( query, 1023, "INSERT INTO `rec_wr` VALUES ('%s', '%s', '%s')", map_name, fin_time, name ) SQL_ThreadQuery(DB_TUPLE,"db_save_handler",query) } } else { log_amx("Failed To Load demos_wr.txt !") } }
public make_ru_table() { if(file_exists(demos_ru)) { new line, stxtsize new data[256] new map_name[32], name[32] new Float:fin_time[8] new query[1024] while((line=read_file(demos_wr,line,data,255,stxtsize))!=0) { parse(data, map_name, 31, fin_time, 7, name, 31) formatex( query, 1023, "INSERT INTO `rec_ru` VALUES ('%s', '%s', '%s')", map_name, fin_time, name ) SQL_ThreadQuery(DB_TUPLE,"db_save_handler",query) } } else { log_amx("Failed To Load demos_ru.txt !") } }
public db_generic_handler(failstate, Handle:query, error[], errnum, data[], size, Float:queuetime) { return query_failed( failstate, error, errnum ) }
public db_save_handler( failstate, Handle:query, error[], errnum, data[], size, Float:queuetime ) { return query_failed( failstate, error, errnum ) }
public query_failed( failstate, error[], errnum ) { if( failstate == TQUERY_CONNECT_FAILED ) { log_amx( "Rec to DB: Couldn't connect to database: %s", error ) return 1 } else if( failstate == TQUERY_QUERY_FAILED ) { log_amx( "Rec to DB: Query failed: %s", error ) return 1 } if( errnum ) { log_amx( "Rec to DB: Query Error: %s", error ) return 1 } return 0 }
public plugin_end() { SQL_FreeHandle(DB_TUPLE) }
Сообщение отредактировал many - Четверг, 27.11.2008, 23:04:02 |
| |
|
|
| DaTa | Дата: Четверг, 27.11.2008, 23:08:22 | Сообщение # 12 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| На 85й строке в представоенном плагине пустота, перекомпилируй.
|
| |
|
|
| many | Дата: Пятница, 28.11.2008, 12:25:15 | Сообщение # 13 |
 Лейтенант
Группа: Пользователи
Сообщений: 49
Статус: Не в сети
| сейчас код такой Code /* Script generated by Pawn Studio */
#include <amxmodx> #include <amxmisc> #include <sqlx>
#define PLUGIN "txt to db" #define AUTHOR "many" #define VERSION "1.0"
new Handle:DB_TUPLE new error[512] new error_code new Handle:DB_CONNECT
new demos_wr[512] new demos_ru[512]
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_srvcmd( "make_wr_table", "make_wr_table" ) register_srvcmd( "make_ru_table", "make_ru_table" ) register_cvar( "rec_db_host", "127.0.0.1:4019" ) register_cvar( "rec_db_user", "xxx" ) register_cvar( "rec_db_pass", "xxx" ) register_cvar( "rec_db_name", "xxx" ) new data[128]; get_localinfo( "amxx_datadir", data, sizeof(data) - 1 ) format( demos_wr, sizeof(demos_wr)-1, "%s/demos_wr.txt", data); format( demos_ru, sizeof(demos_ru)-1, "%s/demos_ru.txt", data); static host[32], user[32], pass[32], name[32] get_cvar_string( "rec_db_host", host, 31 ) get_cvar_string( "rec_db_user", user, 31 ) get_cvar_string( "rec_db_pass", pass, 31 ) get_cvar_string( "rec_db_name", name, 31 ) DB_TUPLE=SQL_MakeDbTuple(host,user,pass,name) DB_CONNECT=SQL_Connect(DB_TUPLE, error_code, error, 511); if(DB_CONNECT == Empty_Handle) set_fail_state(error) new query[1024] formatex( query, 1023, "create table if not exists rec_wr (map_name varchar(32), fin_time float, name varchar(32) unique)") SQL_ThreadQuery( DB_TUPLE, "db_generic_handler", query ) formatex( query, 1023, "create table if not exists rec_ru (map_name varchar(32), fin_time float, name varchar(32) unique)") SQL_ThreadQuery( DB_TUPLE, "db_generic_handler", query ) }
public make_wr_table() { if(file_exists(demos_wr)) { new line, stxtsize new data[256] new map_name[32], name[32] new fin_time[8] new query[1024] while((line=read_file(demos_wr,line,data,255,stxtsize))!=0) { parse(data, map_name, 31, fin_time, 7, name, 31) formatex( query, 1023, "INSERT INTO `rec_wr` VALUES ('%s', '%s', '%s')", map_name, fin_time, name ) SQL_ThreadQuery(DB_TUPLE,"db_save_handler",query) } } else { log_amx("Failed To Load demos_wr.txt !") } }
public make_ru_table() { if(file_exists(demos_ru)) { new line, stxtsize new data[256] new map_name[32], name[32] new fin_time[8] new query[1024] while((line=read_file(demos_ru,line,data,255,stxtsize))!=0) { parse(data, map_name, 31, fin_time, 7, name, 31) formatex( query, 1023, "INSERT INTO `rec_ru` VALUES ('%s', '%s', '%s')", map_name, fin_time, name ) SQL_ThreadQuery(DB_TUPLE,"db_save_handler",query) } } else { log_amx("Failed To Load demos_ru.txt !") } }
public db_generic_handler(failstate, Handle:query, error[], errnum, data[], size, Float:queuetime) { return query_failed( failstate, error, errnum ) }
public db_save_handler( failstate, Handle:query, error[], errnum, data[], size, Float:queuetime ) { return query_failed( failstate, error, errnum ) }
public query_failed( failstate, error[], errnum ) { if( failstate == TQUERY_CONNECT_FAILED ) { log_amx( "Rec to DB: Couldn't connect to database: %s", error ) return 1 } else if( failstate == TQUERY_QUERY_FAILED ) { log_amx( "Rec to DB: Query failed: %s", error ) return 1 } if( errnum ) { log_amx( "Rec to DB: Query Error: %s", error ) return 1 } return 0 }
public plugin_end() { SQL_FreeHandle(DB_TUPLE) } весь файл в БД переписываеться но при записи каждой строчки в консоль сервера он пишет Code L 11/28/2008 - 12:16:34: [txttodb.amxx] Rec to DB: Query failed: Duplicate entry 'ZzdNk' for key 1 L 11/28/2008 - 12:16:34: [txttodb.amxx] Rec to DB: Query failed: Duplicate entry 'ZzdNk' for key 1 L 11/28/2008 - 12:16:34: [txttodb.amxx] Rec to DB: Query failed: Duplicate entry 'slaip' for key 1 L 11/28/2008 - 12:16:35: [txttodb.amxx] Rec to DB: Query failed: Duplicate entry 'DotAntipro' for key 1 L 11/28/2008 - 12:16:35: [txttodb.amxx] Rec to DB: Query failed: Duplicate entry 'slaip' for key 1 ...... 'slaip', 'DotAntipro', 'ZzdNk' это все ники Да и еще переписывает не все строки
Сообщение отредактировал many - Пятница, 28.11.2008, 12:33:37 |
| |
|
|
| PomanoB | Дата: Пятница, 28.11.2008, 12:47:38 | Сообщение # 14 |
 Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| У тебя имя уникальный идентификатор, но в рекордах он повторяется Сделай поле id в таблице
http://romanov4400.mybrute.com
|
| |
|
|
| many | Дата: Пятница, 28.11.2008, 13:01:39 | Сообщение # 15 |
 Лейтенант
Группа: Пользователи
Сообщений: 49
Статус: Не в сети
| спс)) я просто таблицы заного сделал без unique Вроде все работает)
|
| |
|
|
 | AMX Mod X Russian Community © 2006-2026  |  |
|
| |