TCHAR strConnect2[256];
wsprintf(strConnect2, _T("ODBC;DSN=%s;UID=%s;PWD=%s"), "Droiyan", "droiyan", "droiyan");
// wsprintf(strConnect, _T("ODBC;DSN=%s;UID=%s;PWD=%s"), "Droiyan", "droiyan", "droiyan");
for ( i = 0; i < AUTOMATA_THREAD+1;i++)
{
// g_DBSession[i].Init(2);
g_DBSession[i].Init(5);
g_DBSession[i].DBConnect(strConnect2);
}
if(!pDB->db.Open(NULL, FALSE, FALSE, m_strConnect))
{
TRACE("SQL Connection Fail...");
return FALSE;
}
char strGuildName[128];
char strTitle[128];
char strContent[1024];
sprintf( strGuildName, "%s", m_strGuildName );
sprintf( strTitle, "GUILD_RUN" );
sprintf( strContent, "MasterID : %s, MasterAccount : %s", m_strUserID, m_strAccount );
SDWORD sTitleLen = _tcslen(strTitle);
SDWORD sContentLen = _tcslen(strContent);
SDWORD sIDLen = _tcslen(strGuildName);
SQLHSTMT hstmt = NULL;
SQLRETURN retcode;
TCHAR szSQL[8000]; ::ZeroMemory(szSQL, sizeof(szSQL));
int bbsnum = 2; // 捞亥飘侩 霸矫魄
_sntprintf(szSQL, sizeof(szSQL), TEXT( "{call BBS_WRITE ( %d, ?, ?, ? )}" ), bbsnum );
int db_index = 0;
CDatabase* pDB = g_DBNew[m_iModSid].GetDB( db_index );
if( !pDB ) return;
retcode = SQLAllocHandle( (SQLSMALLINT)SQL_HANDLE_STMT, pDB->m_hdbc, &hstmt );
if( retcode != SQL_SUCCESS )
{
// TRACE("Fail To Write BBS (BBS:%d,Writer:%s,Title:%d) !!\n", bbsnum, m_strUserID, strTitle);
// g_DBNew[m_iModSid].ReleaseDB(db_index);
return;
}
int i = 1;
SQLBindParameter( hstmt, i++, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_VARBINARY, 20, 0, (TCHAR*)strGuildName,0, &sIDLen );
SQLBindParameter( hstmt, i++, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_VARBINARY, 50, 0, (TCHAR*)strTitle, 0, &sTitleLen );
SQLBindParameter( hstmt, i++, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_VARBINARY, 5000, 0, (TCHAR*)strContent, 0, &sContentLen );
retcode = SQLExecDirect( hstmt, (unsigned char*)szSQL, sizeof(szSQL));
if( retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO )
{
}
else if (retcode == SQL_ERROR)
{
DisplayErrorMsg(hstmt);
SQLFreeHandle( (SQLSMALLINT)SQL_HANDLE_STMT, hstmt);
BREAKPOINT();
g_DBNew[m_iModSid].ReleaseDB(db_index);
return;
}
SQLUINTEGER iDN;
SQLCHAR strItem[_ACCOUNT_BANK_DB];
SQLINTEGER sInd;
iDN = 0;
::ZeroMemory(strItem, sizeof(strItem));
int db_index = 0;
CDatabase* pDB = g_DB[m_iModSid].GetDB( db_index );
if( !pDB ) return FALSE;
retcode = SQLAllocHandle( (SQLSMALLINT)SQL_HANDLE_STMT, pDB->m_hdbc, &hstmt );
if( retcode != SQL_SUCCESS )
{
return FALSE;
}
retcode = SQLExecDirect( hstmt, (unsigned char*)szSQL, SQL_NTS);
if( retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO )
{
retcode = SQLFetch( hstmt );
if( retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO )
{
int i = 1;
SQLGetData( hstmt, i++, SQL_C_ULONG, &iDN, sizeof(iDN), &sInd );
SQLGetData( hstmt, i++, SQL_C_BINARY, strItem, sizeof(strItem), &sInd );
}