决战私服
决战私服发布网,提供每日新开决战私服发布,大量更新各种决战私服技术文章与软件!

技术文章 新闻公告 软件下载 小偷代码 发布私服 发布家族 广告联系

当前位置决战私服发布网技术文章中心 >> 数据库连接源代码分析

数据库连接源代码分析

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 );
  }

[来源:www.juezhansifu.com.cn] [作者:决战私服发布网] [日期:08-06-22] [热度:]

评论

发表评论
© 2008 决战私服发布网 Juezhansifu.Com.Cn All rights reserved.