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.107 by aga4096, Tue Aug 30 09:39:31 2005 UTC revision 1.108 by tani, Thu Sep 8 05:40:21 2005 UTC
# Line 22  Line 22 
22   *   *
23   * $Revision$   * $Revision$
24   * $Log$   * $Log$
25     * Revision 1.108  2005/09/08 05:40:21  tani
26     * freeStringArrayを定義.
27     * selectiveHarvesting:OAIPMHのidentifierを返す.
28     * XNP_CONFIG_REPOSITORY_NIJC_CODEを定義.
29     *
30   * Revision 1.107  2005/08/30 09:39:31  aga4096   * Revision 1.107  2005/08/30 09:39:31  aga4096
31   * ・xnp_get_item_status を作成.   * ・xnp_get_item_status を作成.
32   *   *
# Line 6863  void freeItem( const item_t* ptr ){ dele Line 6868  void freeItem( const item_t* ptr ){ dele
6868  void freeItemType( const itemtype_t* ptr ){ delete[] ( itemtype_t* )ptr; }  void freeItemType( const itemtype_t* ptr ){ delete[] ( itemtype_t* )ptr; }
6869  void freeItemID( const itemid_t* ptr ){ delete[] ( itemid_t* )ptr; }  void freeItemID( const itemid_t* ptr ){ delete[] ( itemid_t* )ptr; }
6870  void freeString( char* str ){ delete[] str; }  void freeString( char* str ){ delete[] str; }
6871    void freeStringArray( char** strs, int len ){ for( int i = 0; i < len; i++ ) freeString( strs[ i ] ); delete[] strs; }
6872  void freeChangeLog( const changelog_t* ptr ){ delete[] ( changelog_t* )ptr; }  void freeChangeLog( const changelog_t* ptr ){ delete[] ( changelog_t* )ptr; }
6873  void freePubmed( const pubmed_t* ptr ){ delete[] ( pubmed_t* )ptr; }  void freePubmed( const pubmed_t* ptr ){ delete[] ( pubmed_t* )ptr; }
6874  void freeInt( const int* ptr ){ delete[] ( int* )ptr; }  void freeInt( const int* ptr ){ delete[] ( int* )ptr; }
# Line 8255  result_t refreshItemStatus() Line 8261  result_t refreshItemStatus()
8261   * @param iids         item_idを返す配列  item_idの小さいものから配列に入る   * @param iids         item_idを返す配列  item_idの小さいものから配列に入る
8262   * @param iidsLen      iidsの長さ   * @param iidsLen      iidsの長さ
8263   */   */
8264  result_t selectiveHarvesting( time_t from, time_t until, int startIID, int limit, itemid_t **iids, int *iidsLen )  result_t selectiveHarvesting( time_t from, time_t until, int startIID, int limit, char ***iids, int *iidsLen )
8265  {  {
8266      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
8267      if ( limit < 0 ) return RES_ERROR;      if ( limit < 0 ) return RES_ERROR;
8268            
8269      string sql = "select item_id from " + dbprefix + "_xoonips_item_status  where ";      char* nijc_code = 0;
8270        if( getConfigValue( XNP_CONFIG_REPOSITORY_NIJC_CODE, &nijc_code ) != RES_OK ){
8271            return RES_ERROR;
8272        }
8273        
8274        string sql = "select stat.item_id, item_type_id from " + dbprefix + "_xoonips_item_status as stat, "
8275            + dbprefix + "_xoonips_item_basic as basic where basic.item_id=stat.item_id and ";
8276      if ( from  != 0 )      sql += unsignedIntToString(from) + " <= unix_timestamp(timestamp) and ";      if ( from  != 0 )      sql += unsignedIntToString(from) + " <= unix_timestamp(timestamp) and ";
8277      if ( until != 0 )      sql += " unix_timestamp(timestamp) <= " + unsignedIntToString(until) + " and ";      if ( until != 0 )      sql += " unix_timestamp(timestamp) <= " + unsignedIntToString(until) + " and ";
8278      sql +=      sql +=
8279          " item_id >= " + unsignedIntToString(startIID) +          " stat.item_id >= " + unsignedIntToString(startIID) +
8280          " limit " + unsignedIntToString(limit);          " limit " + unsignedIntToString(limit);
8281      sqlexec_t s( "updateItemStatus", sql, &ret );      sqlexec_t s( "updateItemStatus", sql, &ret );
8282      //setLastErrorString( "selectiveHarvesting..." );      //setLastErrorString( "selectiveHarvesting..." );
# Line 8272  result_t selectiveHarvesting( time_t fro Line 8284  result_t selectiveHarvesting( time_t fro
8284      if ( s.getSqlcode() == SQL_SUCCESS ){      if ( s.getSqlcode() == SQL_SUCCESS ){
8285          SQLUINTEGER iid = 0;          SQLUINTEGER iid = 0;
8286          SQLLEN cbIID = 0;          SQLLEN cbIID = 0;
8287            SQLUINTEGER itid = 0;
8288            SQLLEN cbITID = 0;
8289          SQLBindCol( s.getHstmt(), 1, SQL_C_ULONG, &iid       , 0, &cbIID       );          SQLBindCol( s.getHstmt(), 1, SQL_C_ULONG, &iid       , 0, &cbIID       );
8290            SQLBindCol( s.getHstmt(), 2, SQL_C_ULONG, &itid      , 0, &cbITID       );
8291                    
8292          *iids = new itemid_t[limit];          *iids = new char*[limit];
8293          for ( *iidsLen = 0; *iidsLen < limit && SQLFetch( s.getHstmt() ) == SQL_SUCCESS; (*iidsLen)++ ){          for ( *iidsLen = 0; *iidsLen < limit && SQLFetch( s.getHstmt() ) == SQL_SUCCESS; (*iidsLen)++ ){
8294              (*iids)[*iidsLen] = iid;              char* id = new char[ 256 ];
8295                snprintf( id, 256, "%s/%d.%d", nijc_code, itid, iid );
8296                (*iids)[*iidsLen] = id;
8297          }          }
8298          ret = RES_OK;          ret = RES_OK;
8299      }      }
8300        freeString( nijc_code );
8301      return ret;      return ret;
8302  }  }
8303    

Legend:
Removed from v.1.107  
changed lines
  Added in v.1.108

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