| 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 |
* |
* |
| 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 ], |
| 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 ); |
| 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 ); |
| 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; |
| 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; |
| 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() ); |
| 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++ ){ |
| 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; |
| 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 ], |
| 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 ){ |
| 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 ); |
| 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 ){ |
| 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 |
* 条件に一致するインデックスの一覧を得る。 |
* 条件に一致するインデックスの一覧を得る。 |