mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-24 13:55:36 +03:00
error checking
This commit is contained in:
parent
1f178b916f
commit
23bea839da
@ -121,6 +121,8 @@ static cell AMX_NATIVE_CALL pgsql_connect(AMX *amx, cell *params)
|
||||
PGconn *cn = make_connection(host, user, pass, name);
|
||||
|
||||
if (PQstatus(cn) != CONNECTION_OK) {
|
||||
char *error = PQerrorMessage(cn);
|
||||
SET_AMXSTRING(amx, params[5], (error?error:""), params[6]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -162,10 +164,18 @@ static cell AMX_NATIVE_CALL pgsql_query(AMX *amx, cell *params)
|
||||
static cell AMX_NATIVE_CALL pgsql_nextrow(AMX *amx, cell *params)
|
||||
{
|
||||
pgs *p = get_conn_i(params[1]);
|
||||
|
||||
if (p == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (p->v.cn == NULL) {
|
||||
return -1;
|
||||
}
|
||||
if (PQstatus(p->v.cn)!= CONNECTION_OK) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (p->v.row > PQntuples(p->v.res)) {
|
||||
return 0;
|
||||
}
|
||||
@ -182,6 +192,14 @@ static cell AMX_NATIVE_CALL pgsql_getfield(AMX *amx, cell *params)
|
||||
if (p == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (p->v.cn == NULL) {
|
||||
return -1;
|
||||
}
|
||||
if (PQstatus(p->v.cn)!= CONNECTION_OK) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (col-1 > PQnfields(p->v.res)) {
|
||||
return 0;
|
||||
}
|
||||
|
@ -112,8 +112,6 @@ public:
|
||||
destroy(v.user);
|
||||
destroy(v.pass);
|
||||
destroy(v.name);
|
||||
destroy(v.cn);
|
||||
destroy(v.res);
|
||||
v.row = 0;
|
||||
free = true;
|
||||
}
|
||||
@ -133,8 +131,9 @@ public:
|
||||
close();
|
||||
}
|
||||
|
||||
bool free;
|
||||
|
||||
private:
|
||||
pgs *next;
|
||||
bool free;
|
||||
int id;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user