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.64 by youi, Tue Feb 15 02:35:47 2005 UTC revision 1.65 by youi, Wed Feb 16 07:37:17 2005 UTC
# Line 2  Line 2 
2   *   *
3   * $Revision$   * $Revision$
4   * $Log$   * $Log$
5     * Revision 1.65  2005/02/16 07:37:17  youi
6     * insertItem, updateItem, getItems: publication_dateに対応.
7     *
8   * Revision 1.64  2005/02/15 02:35:47  youi   * Revision 1.64  2005/02/15 02:35:47  youi
9   * SQLINTEGERからSQLLENへ型変更.   * SQLINTEGERからSQLLENへ型変更.
10   *   *
# Line 3220  result_t insertItem( sessionid_t sid, co Line 3223  result_t insertItem( sessionid_t sid, co
3223      SQLHANDLE hstmt = NULL;      SQLHANDLE hstmt = NULL;
3224      SQLRETURN sqlcode;      SQLRETURN sqlcode;
3225      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
3226      SQLINTEGER uid, item_type_id, creation_date, last_update_date;      SQLINTEGER uid, item_type_id, creation_date, last_update_date, publication_date;
3227      SQLLEN cbUid = 0, cbItem_type_id = 0, cbCreation_date = 0, cbLast_update_date = 0;      SQLLEN cbUid = 0, cbItem_type_id = 0, cbCreation_date = 0, cbLast_update_date = 0, cbPublication_date = 0;
3228      SQLCHAR title[ XNP_ITEM_TITLE_LEN + 1 ],      SQLCHAR title[ XNP_ITEM_TITLE_LEN + 1 ],
3229          keywords[ XNP_ITEM_KEYWORDS_LEN + 1 ],          keywords[ XNP_ITEM_KEYWORDS_LEN + 1 ],
3230          description[ XNP_ITEM_DESCRIPTION_LEN + 1 ],          description[ XNP_ITEM_DESCRIPTION_LEN + 1 ],
# Line 3234  result_t insertItem( sessionid_t sid, co Line 3237  result_t insertItem( sessionid_t sid, co
3237            
3238      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
3239          string sql;          string sql;
3240          sql = "INSERT INTO " + dbprefix + "_xnpaccount_item_basic (item_type_id, title, keywords, description, doi, uid, creation_date, last_update_date) VALUES (?, ?, ?, ?, ?, ?, ?, ? )";          sql = "INSERT INTO " + dbprefix + "_xnpaccount_item_basic (item_type_id, title, keywords, description, doi, uid, creation_date, last_update_date, publication_date) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ? )";
3241          sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);          sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);
3242          if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){          if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){
3243              SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 0, 0, &item_type_id, 0, &cbItem_type_id );              SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 0, 0, &item_type_id, 0, &cbItem_type_id );
# Line 3245  result_t insertItem( sessionid_t sid, co Line 3248  result_t insertItem( sessionid_t sid, co
3248              SQLBindParameter(hstmt, 6, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 0, 0, &uid, 0, &cbUid );              SQLBindParameter(hstmt, 6, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 0, 0, &uid, 0, &cbUid );
3249              SQLBindParameter(hstmt, 7, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &creation_date, 0, &cbCreation_date );              SQLBindParameter(hstmt, 7, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &creation_date, 0, &cbCreation_date );
3250              SQLBindParameter(hstmt, 8, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &last_update_date, 0, &cbLast_update_date );              SQLBindParameter(hstmt, 8, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &last_update_date, 0, &cbLast_update_date );
3251                SQLBindParameter(hstmt, 9, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &publication_date, 0, &cbPublication_date );
3252                            
3253              strncpy2( (char*)title, item -> getTitle(), XNP_ITEM_TITLE_LEN );              strncpy2( (char*)title, item -> getTitle(), XNP_ITEM_TITLE_LEN );
3254              strncpy2( (char*)keywords, item -> getKeywords(), XNP_ITEM_KEYWORDS_LEN );              strncpy2( (char*)keywords, item -> getKeywords(), XNP_ITEM_KEYWORDS_LEN );
# Line 3254  result_t insertItem( sessionid_t sid, co Line 3258  result_t insertItem( sessionid_t sid, co
3258              uid = item -> getContributorUID( );              uid = item -> getContributorUID( );
3259              creation_date = time( NULL );              creation_date = time( NULL );
3260              last_update_date = time( NULL );              last_update_date = time( NULL );
3261                publication_date = item -> getPublicationDate();
3262                            
3263              if( ( sqlcode = SQLExecute( hstmt ) ) == SQL_SUCCESS ){              if( ( sqlcode = SQLExecute( hstmt ) ) == SQL_SUCCESS ){
3264                  SQLLEN count = 0;                  SQLLEN count = 0;
# Line 3370  result_t getItems( sessionid_t sid, cons Line 3375  result_t getItems( sessionid_t sid, cons
3375      string where;      string where;
3376      item_t* dst = new item_t[ iidsLen ];      item_t* dst = new item_t[ iidsLen ];
3377                    
3378      sql = "SELECT item_id, item_type_id, title, keywords, description, doi, uid, creation_date, last_update_date ";      sql = "SELECT item_id, item_type_id, title, keywords, description, doi, uid, creation_date, last_update_date, publication_date ";
3379      sql += "FROM " + dbprefix + "_xnpaccount_item_basic ";      sql += "FROM " + dbprefix + "_xnpaccount_item_basic ";
3380      if( iidsLen > 0 ){      if( iidsLen > 0 ){
3381          int i;          int i;
# Line 3393  result_t getItems( sessionid_t sid, cons Line 3398  result_t getItems( sessionid_t sid, cons
3398              return RES_OK;              return RES_OK;
3399          }          }
3400      }      }
 /*  
     if( !isModeratorBySession( sid ) ){  
         userid_t uid;  
         if( sessionID2UID( sid, &uid ) == RES_OK ){  
             sql += "uid=" + unsignedIntToString( uid );  
             sql += " AND";  
         }else{  
             return RES_ERROR;  
         }  
     }  
     if( iidsLen > 0 ){  
         sql += " ( item_id=" + string( unsignedIntToString( iids[ 0 ] ) );  
         for( int i = 1; i < iidsLen; i++ ){  
             sql += " OR item_id=" + string( unsignedIntToString( iids[ i ] ) );  
         }  
         sql += " ) ";  
     }  
 */  
3401      sql += criteria2str( cri );      sql += criteria2str( cri );
3402            
3403      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
# Line 3421  result_t getItems( sessionid_t sid, cons Line 3408  result_t getItems( sessionid_t sid, cons
3408              itemtypeid_t item_type_id = 0;              itemtypeid_t item_type_id = 0;
3409              time_t creation_date = 0;              time_t creation_date = 0;
3410              time_t last_update_date = 0;              time_t last_update_date = 0;
3411              SQLLEN cbUid = 0, cbItem_id = 0, cbItem_type_id = 0, cbCreation_date = 0, cbLast_update_date = 0;              time_t publication_date = 0;
3412                SQLLEN cbUid = 0, cbItem_id = 0, cbItem_type_id = 0, cbCreation_date = 0, cbLast_update_date = 0, cbPublication_date = 0;
3413              SQLBindCol( hstmt, 1, SQL_C_ULONG, &item_id, 0, &cbItem_id );              SQLBindCol( hstmt, 1, SQL_C_ULONG, &item_id, 0, &cbItem_id );
3414              SQLBindCol( hstmt, 2, SQL_C_ULONG, &item_type_id, 0, &cbItem_type_id );              SQLBindCol( hstmt, 2, SQL_C_ULONG, &item_type_id, 0, &cbItem_type_id );
3415              SQLBindCol( hstmt, 7, SQL_C_ULONG, &uid, 0, &cbUid );              SQLBindCol( hstmt, 7, SQL_C_ULONG, &uid, 0, &cbUid );
3416              SQLBindCol( hstmt, 8, SQL_C_SLONG, &creation_date, 0, &cbCreation_date );              SQLBindCol( hstmt, 8, SQL_C_SLONG, &creation_date, 0, &cbCreation_date );
3417              SQLBindCol( hstmt, 9, SQL_C_SLONG, &last_update_date, 0, &cbLast_update_date );              SQLBindCol( hstmt, 9, SQL_C_SLONG, &last_update_date, 0, &cbLast_update_date );
3418                SQLBindCol( hstmt, 10, SQL_C_SLONG, &publication_date, 0, &cbPublication_date );
3419                            
3420              *itemsLen = 0;              *itemsLen = 0;
3421              for( int i = 0; ( sqlcode = SQLFetch( hstmt ) ) == SQL_SUCCESS && i < iidsLen ; i++ ){              for( int i = 0; ( sqlcode = SQLFetch( hstmt ) ) == SQL_SUCCESS && i < iidsLen ; i++ ){
# Line 3439  result_t getItems( sessionid_t sid, cons Line 3428  result_t getItems( sessionid_t sid, cons
3428                  dst[ i ].setContributorUID( uid );                  dst[ i ].setContributorUID( uid );
3429                  dst[ i ].setCreationDate( creation_date );                  dst[ i ].setCreationDate( creation_date );
3430                  dst[ i ].setLastUpdateDate( last_update_date );                  dst[ i ].setLastUpdateDate( last_update_date );
3431                    dst[ i ].setPublicationDate( publication_date );
3432                  ( *itemsLen )++;                  ( *itemsLen )++;
3433              }              }
3434              *items = dst;              *items = dst;
# Line 3568  result_t updateItem( sessionid_t sid, co Line 3558  result_t updateItem( sessionid_t sid, co
3558          return RES_ERROR;          return RES_ERROR;
3559      }      }
3560            
3561      SQLINTEGER uid, item_type_id, last_update_date, item_id;      SQLINTEGER uid, item_type_id, last_update_date, publication_date, item_id;
3562      SQLLEN cbUid = 0, cbItem_type_id = 0, cbLast_update_date = 0, cbItem_id = 0;      SQLLEN cbUid = 0, cbItem_type_id = 0, cbLast_update_date = 0, cbPublication_date = 0, cbItem_id = 0;
3563      SQLCHAR title[ XNP_ITEM_TITLE_LEN + 1 ],      SQLCHAR title[ XNP_ITEM_TITLE_LEN + 1 ],
3564          keywords[ XNP_ITEM_KEYWORDS_LEN + 1 ],          keywords[ XNP_ITEM_KEYWORDS_LEN + 1 ],
3565          description[ XNP_ITEM_DESCRIPTION_LEN + 1 ],          description[ XNP_ITEM_DESCRIPTION_LEN + 1 ],
# Line 3589  result_t updateItem( sessionid_t sid, co Line 3579  result_t updateItem( sessionid_t sid, co
3579          sql += ", doi=?";          sql += ", doi=?";
3580          sql += ", uid=?";          sql += ", uid=?";
3581          sql += ", last_update_date=?";          sql += ", last_update_date=?";
3582            sql += ", publication_date=?";
3583          sql += " WHERE item_id=?";          sql += " WHERE item_id=?";
3584          sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);          sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);
3585          if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){          if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){
# Line 3599  result_t updateItem( sessionid_t sid, co Line 3590  result_t updateItem( sessionid_t sid, co
3590              SQLBindParameter(hstmt, 5, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, XNP_ITEM_DOI_LEN, 0, doi, 0, &cbDOI );              SQLBindParameter(hstmt, 5, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, XNP_ITEM_DOI_LEN, 0, doi, 0, &cbDOI );
3591              SQLBindParameter(hstmt, 6, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 0, 0, &uid, 0, &cbUid );              SQLBindParameter(hstmt, 6, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 0, 0, &uid, 0, &cbUid );
3592              SQLBindParameter(hstmt, 7, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &last_update_date, 0, &cbLast_update_date );              SQLBindParameter(hstmt, 7, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &last_update_date, 0, &cbLast_update_date );
3593              SQLBindParameter(hstmt, 8, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &item_id, 0, &cbItem_id );              SQLBindParameter(hstmt, 8, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &publication_date, 0, &cbPublication_date );
3594                SQLBindParameter(hstmt, 9, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &item_id, 0, &cbItem_id );
3595                            
3596              strncpy2( (char*)title, item -> getTitle(), XNP_ITEM_TITLE_LEN );              strncpy2( (char*)title, item -> getTitle(), XNP_ITEM_TITLE_LEN );
3597              strncpy2( (char*)keywords, item -> getKeywords(), XNP_ITEM_KEYWORDS_LEN );              strncpy2( (char*)keywords, item -> getKeywords(), XNP_ITEM_KEYWORDS_LEN );
# Line 3608  result_t updateItem( sessionid_t sid, co Line 3600  result_t updateItem( sessionid_t sid, co
3600              item_type_id = item -> getItemTypeID( );              item_type_id = item -> getItemTypeID( );
3601              uid = item -> getContributorUID( );              uid = item -> getContributorUID( );
3602              last_update_date = time( NULL );              last_update_date = time( NULL );
3603                publication_date = item -> getPublicationDate();
3604              item_id = item -> getItemID( );              item_id = item -> getItemID( );
3605                            
3606              if( ( sqlcode = SQLExecute( hstmt ) ) == SQL_SUCCESS ){              if( ( sqlcode = SQLExecute( hstmt ) ) == SQL_SUCCESS ){
# Line 4570  bool isValidSessionID( sessionid_t sid ) Line 4563  bool isValidSessionID( sessionid_t sid )
4563  }  }
4564    
4565    
 /*  
 // todo  
 // basic informationに書き込み  
 result_t insertItemInternal( sessionid_t sid, item_t *item, itemid_t *iid ){  
     string sql = "INSERT INTO " + dbprefix + "_xnpaccount_item_basic "  
       " ( item_type_id, uid, title, last_update_date, creation_date ) values ( "  
      + unsignedIntToString(item->getItemTypeID()) + "," + unsignedIntToString(item->getContributorUID()) + ","  
      + " '" + addSlashes(item->getTitle()) + "'," + unsignedIntToString(item->getLastUpdateDate())  
      + "," + unsignedIntToString(item->getCreationDate()) + ")";  
     result_t result = querySimple( "insertItemInternal", sql );  
     if( result == RES_OK ){  
         sql = "SELECT LAST_INSERT_ID()";  
         result = queryGetUnsignedInt( "insertItemInternal", sql, (unsigned int*)iid );  
     }  
     return result;  
 }  
 */  
   
4566  /**  /**
4567   *   *
4568   * 条件に一致するインデックスの一覧を得る。   * 条件に一致するインデックスの一覧を得る。

Legend:
Removed from v.1.64  
changed lines
  Added in v.1.65

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