Инфо из sql.inc:
/**
* Gets information about a failed query error.
* Returns the errorcode.
*/
native SQL_QueryError(Handle:query, error[], maxlength);
Синтаксис:
SQL_QueryError(Handle:query, error[], maxlength)
- Handle:query - Идентификатор выполненного запроса
- error[] - Массив для записи ошибки
- maxlength - Максимальная длина
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#define PLUGIN "[SQLx.inc] SQL_QueryError"
#define VERSION "1.0"
#define AUTHOR "Admin"
new Handle:SQL_Tuple
new Handle:SQL_Connection
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("SQLx_host","127.0.0.1")
register_cvar("SQLx_db","amxxmodx")
register_cvar("SQLx_user","admin")
register_cvar("SQLx_password","pass")
register_concmd("select_sql","sqlx_select")
}
public plugin_cfg(){
new host[33],dbase[33],user[33],pass[33]
get_cvar_string("SQLx_host",host,30)
get_cvar_string("SQLx_db",dbase,30)
get_cvar_string("SQLx_user",user,30)
get_cvar_string("SQLx_password",pass,30)
SQL_Tuple = SQL_MakeDbTuple(host,user,pass,dbase)
new err, error[256]
SQL_Connection = SQL_Connect(SQL_Tuple, err, error, charsmax(error))
if(SQL_Connection != Empty_Handle)
{
log_amx("[SQLx connect ok]")
}else{
log_amx("[SQLX sql error] %s ",error)
pause("a")
}
}
public sqlx_select(id){
new Handle:query = SQL_PrepareQuery(SQL_Connection,"SELECT * FROM `table`")
SQL_Execute (query)
//Массив для текста ошибки
new error[128]
//Получение ошибки
SQL_QueryError(query, error, charsmax(error))
//Вывод в консоль сервера текст ошибки
server_print("[SQL error]:%s",error)
}
public plugin_end(){
SQL_FreeHandle(SQL_Tuple)
SQL_FreeHandle(SQL_Connection)
}
Описание:
Из всего кода нас интересует только получение кода ошибки,выделю его отдельно:
//Массив для текста ошибки
new error[128]
//Получение ошибки
SQL_QueryError(query, error, charsmax(error))
//Вывод в консоль сервера текст ошибки
server_print("[SQL error]:%s",error)
Результат работы:
[SQL error]:Table 'amxxmodx.table' doesn't exist
В базе данных с которой было установлено соединения нет таблицы с именем table.