fix for 45337 and some other little things

This commit is contained in:
David Anderson
2006-10-01 19:46:56 +00:00
parent f3057efd7d
commit fe1ebfe7bb
16 changed files with 141 additions and 47 deletions

View File

@ -55,6 +55,10 @@ static cell AMX_NATIVE_CALL SQL_MakeDbTuple(AMX *amx, cell *params)
sql->user = strdup(MF_GetAmxString(amx, params[2], 0, &len));
sql->pass = strdup(MF_GetAmxString(amx, params[3], 0, &len));
sql->db = strdup(MF_GetAmxString(amx, params[4], 0, &len));
if (params[0] / sizeof(cell) >= 5)
{
sql->max_timeout = static_cast<unsigned int>(params[5]);
}
unsigned int num = MakeHandle(sql, Handle_Connection, FreeConnection);
@ -87,11 +91,12 @@ static cell AMX_NATIVE_CALL SQL_Connect(AMX *amx, cell *params)
nfo.pass = sql->pass;
nfo.port = sql->port;
nfo.host = sql->host;
nfo.max_timeout = sql->max_timeout;
char buffer[512];
int errcode;
IDatabase *pDb = g_Mysql.Connect(&nfo, &errcode, buffer, sizeof(buffer)-1);
IDatabase *pDb = g_Mysql.Connect2(&nfo, &errcode, buffer, sizeof(buffer)-1);
if (!pDb)
{
@ -378,13 +383,15 @@ static cell AMX_NATIVE_CALL SQL_GetQueryString(AMX *amx, cell *params)
{
AmxQueryInfo *qInfo = (AmxQueryInfo *)GetHandle(params[1], Handle_Query);
if (!qInfo || !qInfo->pQuery)
if (!qInfo || (!qInfo->pQuery && !qInfo->opt_ptr))
{
MF_LogError(amx, AMX_ERR_NATIVE, "Invalid query handle: %d", params[1]);
return 0;
}
return MF_SetAmxString(amx, params[2], qInfo->pQuery->GetQueryString(), params[3]);
const char *ptr = qInfo->pQuery ? qInfo->pQuery->GetQueryString() : qInfo->opt_ptr;
return MF_SetAmxString(amx, params[2], ptr, params[3]);
}
static cell AMX_NATIVE_CALL SQL_FieldNameToNum(AMX *amx, cell *params)