Untitled
By: a guest | Mar 21st, 2010 | Syntax:
C++ | Size: 1.86 KB | Hits: 72 | Expires: Never
cell AMX_NATIVE_CALL NativeFunctions::n_mysql_fetch_row_format( AMX* amx, cell* params )
{
unsigned int cID = params[3]-1; //cID is the instance ID
MySQL_Log(">> mysql_fetch_row_format( Connection handle: %d )",cID+1);
VALID_CONNECTION_HANDLE("mysql_fetch_row_format",cID);
CMySQLHandler *cHandle = SQLHandle[cID];
cHandle->Delimiter = AMX_H->GetString(amx,params[2]);
string fRow = cHandle->FetchRow();
if(fRow.compare("NULL") != 0) {
AMX_H->SetString(amx,params[1],fRow);
cHandle->m_szResult.clear();
return 1;
}
return 0;
}
string CMySQLHandler::FetchRow()
{
if(!m_bIsConnected) {
NativeFunctions::MySQL_Log("CMySQLHandler::FetchRow() - You cannot call this function now. (Reason: Connection is dead)");
return string("NULL");
}
if(m_stResult == NULL) {
NativeFunctions::MySQL_Log("CMySQLHandler::FetchRow() - You cannot call this function now. (Reason: Empty Result)");
return string("NULL");
}
m_dwFields = mysql_num_fields(m_stResult);
m_stField = mysql_fetch_fields(m_stResult);
if((m_stRow = mysql_fetch_row(m_stResult))) {
for(string::size_type i = 0;i < m_dwFields;i++) {
m_cSStream << (m_stRow[i] ? m_stRow[i] : "NULL") << Delimiter;
}
getline(m_cSStream,m_szResult);
m_cSStream >> m_szResult;
if(m_szResult.empty()) {
NativeFunctions::MySQL_Log("CMySQLHandler::FetchRow() - Result is empty.");
return string("NULL");
} else {
m_cSStream.clear();
m_szResult.erase(m_szResult.length()-1,m_szResult.length());
NativeFunctions::MySQL_Log("CMySQLHandler::FetchRow() - Return: %s",m_szResult.c_str());
return m_szResult;
}
} else {
m_dwError = mysql_errno(m_stConnectionPtr);
if(m_dwError > 0) {
NativeFunctions::MySQL_Log("CMySQLHandler::FetchRow() - An error has occured. (Error ID: %d, %s)",m_dwError,mysql_error(m_stConnectionPtr));
}
return string("NULL");
}
}