Fixed connection bugs

This commit is contained in:
David Anderson 2004-05-28 05:05:58 +00:00
parent 5a91f05748
commit 997a79a692

View File

@ -33,10 +33,10 @@ bool msdb::Kill()
user.clear(); user.clear();
free = true; free = true;
try { try {
if (res)
res->Close();
cn->Close(); cn->Close();
cn = NULL; cn = NULL;
if (res)
res->Close();
res = NULL; res = NULL;
} catch(_com_error &e) { } catch(_com_error &e) {
_bstr_t bstrSource(e.Description()); _bstr_t bstrSource(e.Description());
@ -82,7 +82,8 @@ int sql_exists(char *user, char *pass, char *db, char *host)
if (((*i)->user.compare(user) == 0) && if (((*i)->user.compare(user) == 0) &&
((*i)->pass.compare(pass) == 0) && ((*i)->pass.compare(pass) == 0) &&
((*i)->dbname.compare(db) == 0) && ((*i)->dbname.compare(db) == 0) &&
((*i)->host.compare(host) == 0)) { ((*i)->host.compare(host) == 0) &&
(!(*i)->free)) {
return id; return id;
} }
@ -146,13 +147,12 @@ static cell AMX_NATIVE_CALL mssql_close(AMX *amx, cell *params)
unsigned int id = params[1] - 1; unsigned int id = params[1] - 1;
if (id >= DBList.size() || id < 0 || DBList.at(id)->free) { if (id >= DBList.size() || id < 0 || DBList.at(id)->free) {
error.assign("Invalid handle.");
MF_RaiseAmxError(amx, AMX_ERR_NATIVE); MF_RaiseAmxError(amx, AMX_ERR_NATIVE);
return 0; return 0;
} }
DBList.at(id)->Kill(); return DBList.at(id)->Kill();
return true;
} }
static cell AMX_NATIVE_CALL mssql_query(AMX *amx, cell *params) static cell AMX_NATIVE_CALL mssql_query(AMX *amx, cell *params)
@ -160,6 +160,7 @@ static cell AMX_NATIVE_CALL mssql_query(AMX *amx, cell *params)
unsigned int id = params[1] - 1; unsigned int id = params[1] - 1;
if (id >= DBList.size() || id < 0 || DBList.at(id)->free) { if (id >= DBList.size() || id < 0 || DBList.at(id)->free) {
error.assign("Invalid handle.");
MF_RaiseAmxError(amx, AMX_ERR_NATIVE); MF_RaiseAmxError(amx, AMX_ERR_NATIVE);
return 0; return 0;
} }
@ -209,6 +210,7 @@ static cell AMX_NATIVE_CALL mssql_nextrow(AMX *amx, cell *params)
unsigned int id = params[1] - 1; unsigned int id = params[1] - 1;
if (id >= DBList.size() || id < 0 || DBList.at(id)->free) { if (id >= DBList.size() || id < 0 || DBList.at(id)->free) {
error.assign("Invalid handle.");
MF_RaiseAmxError(amx, AMX_ERR_NATIVE); MF_RaiseAmxError(amx, AMX_ERR_NATIVE);
return 0; return 0;
} }
@ -241,6 +243,7 @@ static cell AMX_NATIVE_CALL mssql_getfield(AMX *amx, cell *params)
unsigned int id = params[1] - 1; unsigned int id = params[1] - 1;
if (id >= DBList.size() || id < 0 || DBList.at(id)->free) { if (id >= DBList.size() || id < 0 || DBList.at(id)->free) {
error.assign("Invalid handle.");
MF_RaiseAmxError(amx, AMX_ERR_NATIVE); MF_RaiseAmxError(amx, AMX_ERR_NATIVE);
return 0; return 0;
} }
@ -289,6 +292,7 @@ static cell AMX_NATIVE_CALL mssql_getfield(AMX *amx, cell *params)
static cell AMX_NATIVE_CALL mssql_error(AMX *amx, cell *params) static cell AMX_NATIVE_CALL mssql_error(AMX *amx, cell *params)
{ {
error.assign("Invalid handle.");
MF_SetAmxString(amx, params[2], error.c_str(), params[3]); MF_SetAmxString(amx, params[2], error.c_str(), params[3]);
return lastError; return lastError;
} }