Develop and Download Open Source Software

Browse CVS Repository

Diff of /xoonips/AL/commonal.cc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.52 by aga, Tue Jan 25 06:46:50 2005 UTC revision 1.53 by youi, Thu Jan 27 08:30:35 2005 UTC
# Line 2  Line 2 
2   *   *
3   * $Revision$   * $Revision$
4   * $Log$   * $Log$
5     * Revision 1.53  2005/01/27 08:30:35  youi
6     * getIndexIDByItemIDを定義した.
7     *
8   * Revision 1.52  2005/01/25 06:46:50  aga   * Revision 1.52  2005/01/25 06:46:50  aga
9   * ・Bindersを含むindexはdeleteIndex不可.   * ・Bindersを含むindexはdeleteIndex不可.
10   * ・getItemsがエラーを出すことがあるのを修正.   * ・getItemsがエラーを出すことがあるのを修正.
# Line 403  static result_t queryGetUnsignedInt( con Line 406  static result_t queryGetUnsignedInt( con
406      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
407      SQLRETURN sqlcode;      SQLRETURN sqlcode;
408      SQLHANDLE hstmt = NULL;      SQLHANDLE hstmt = NULL;
409    
410      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
411          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), strlen( sql.c_str() ) ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), strlen( sql.c_str() ) ) ) == SQL_SUCCESS ){
412              SQLUINTEGER sInt = 0;              SQLUINTEGER sInt = 0;
# Line 5780  result_t getChangeLogs( sessionid_t sid, Line 5784  result_t getChangeLogs( sessionid_t sid,
5784                  ret = RES_ERROR;                  ret = RES_ERROR;
5785              }              }
5786          }else {          }else {
5787              string s( "SQLAllocHandle in updateIndex ");              string s( "SQLAllocHandle in getChangeLogs ");
5788              s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode );              s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode );
5789              setLastErrorString( s.c_str( ) );              setLastErrorString( s.c_str( ) );
5790              ret = RES_ERROR;              ret = RES_ERROR;
# Line 6301  result_t getItemTypes( const itemtype_t* Line 6305  result_t getItemTypes( const itemtype_t*
6305      }      }
6306      return ret;      return ret;
6307  }  }
6308    
6309    
6310    result_t getIndexIDByItemID( sessionid_t sid, itemid_t itemid, const indexid_t** xids, int* xidsLen )
6311    {
6312        if( hdbc == NULL ) return RES_DB_NOT_INITIALIZED;
6313        if( !isValidSessionID( sid ) ) return RES_NO_SUCH_SESSION;
6314        if( !getItemPermission( sid, itemid, item::OP_READ ) ) return RES_NO_READ_ACCESS_RIGHT;
6315        
6316        result_t ret = RES_ERROR;
6317        SQLRETURN sqlcode;
6318        SQLHANDLE hstmt = NULL;
6319        SQLINTEGER count = 0;
6320        string sql;
6321        indexid_t xid = 0;
6322        SQLINTEGER len = 0;
6323        
6324        sql = "SELECT index_id FROM " +  dbprefix + "_xnpaccount_index_item_link"
6325            + " WHERE item_id=" + unsignedIntToString( itemid );
6326        if( countResultRows( sql.c_str(), &count ) == RES_OK ){
6327            indexid_t* xids_ = new indexid_t[ count ];
6328            if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
6329                if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
6330                    SQLBindCol( hstmt, 1, SQL_C_ULONG, &xid, 0, &len );
6331                    for( *xidsLen=0; ( sqlcode = SQLFetch( hstmt ) ) == SQL_SUCCESS && *xidsLen < count ; (*xidsLen)++ ){
6332                        *( xids_ + *xidsLen ) = xid;
6333                    }
6334                    *xids = xids_;
6335                    ret = RES_OK;
6336                }else{
6337                    string s( "SQLExecDirect in getIndexIDByItemID ");
6338                    s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode );
6339                    s += string( ", sql=" ) + string( sql );
6340                    setLastErrorString( s.c_str( ) );
6341                    ret = RES_ERROR;
6342                }
6343            }else {
6344                string s( "SQLAllocHandle in getIndexIDByItemID ");
6345                s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode );
6346                setLastErrorString( s.c_str( ) );
6347                ret = RES_ERROR;
6348            }
6349        }
6350        return ret;
6351    }

Legend:
Removed from v.1.52  
changed lines
  Added in v.1.53

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26