dvernoff
Добрая душа
- Сообщения
- 638
- Реакции
- 591

вообще не понимаю в чём может быть проблема, вроде запрос сформировал правильно.
C-подобный:
Database g_DataBaseWR;
char sCurrentMap[256];
public void OnPluginStart()
{
Database.Connect(ConnectCallBack, "smartwr");
}
public void ConnectCallBack(Database hDatabase, const char[] sError, any data)
{
if (hDatabase == null)
{
SetFailState("Database failure: %s", sError);
return;
}
g_DataBaseWR = hDatabase;
SQL_LockDatabase(g_DataBaseWR);
g_DataBaseWR.Query(SQL_Callback_CheckError, "CREATE TABLE IF NOT EXISTS `wr_maps_id` ( \
`id` INT(11) NOT NULL AUTO_INCREMENT, \
`map` VARCHAR(64) NOT NULL, \
PRIMARY KEY (`id`), \
UNIQUE KEY `map` (`map`) \
) AUTO_INCREMENT=1;" );
SQL_UnlockDatabase(g_DataBaseWR);
g_DataBaseWR.SetCharset("utf8mb4");
}
public void SQL_Callback_CheckError(Database hDatabase, DBResultSet results, const char[] szError, any data)
{
if(szError[0])
{
LogError("SQL_Callback_CheckError: %s", szError);
}
}
проверяю есть ли карта в базе
C-подобный:
public void OnMapStart()
{
GetCurrentMap(sCurrentMap, sizeof(sCurrentMap));
char szQuery[256];
FormatEx(szQuery, sizeof(szQuery), "SELECT `map` FROM `wr_maps_id` WHERE `map` = '%s' LIMIT 1;", sCurrentMap);
g_DataBaseWR.Query(SQL_MapAdded, szQuery);
}
C-подобный:
public void SQL_MapAdded(Database hDatabase, DBResultSet results, const char[] sError, any UserID)
{
if(sError[0])
{
LogError("SQL_MapAdded: %s", sError);
return;
}
if(!(results.FetchRow( )))
{
char szQuery[256];
FormatEx(szQuery, sizeof(szQuery), "INSERT INTO `wr_maps_id` (`map`) VALUES ('%s');", sCurrentMap);
g_DataBaseWR.Query(SQL_Callback_CheckError, szQuery);
}
}
Но получаю ошибку в консоли:
C-подобный:
L 05/03/2021 - 21:20:41: [SM] Exception reported: Invalid database Handle 0 (error: 4)
L 05/03/2021 - 21:20:41: [SM] Blaming: SmartWR.smx
L 05/03/2021 - 21:20:41: [SM] Call stack trace:
L 05/03/2021 - 21:20:41: [SM] [0] Database.Query
L 05/03/2021 - 21:20:41: [SM] [1] Line 71, SmartWR/events.sp::OnMapStart
Последнее редактирование: