| 2 |
* |
* |
| 3 |
* $Revision$ |
* $Revision$ |
| 4 |
* $Log$ |
* $Log$ |
| 5 |
|
* Revision 1.51 2005/01/24 10:50:29 youi |
| 6 |
|
* freeItemType,getItemTypes関数を追加した. |
| 7 |
|
* |
| 8 |
* Revision 1.50 2005/01/24 01:54:38 youi |
* Revision 1.50 2005/01/24 01:54:38 youi |
| 9 |
* 引数の型修飾を変更. |
* 引数の型修飾を変更. |
| 10 |
* dumpItemID, getItemIDByBinderID, getItemIDByIndexID |
* dumpItemID, getItemIDByBinderID, getItemIDByIndexID |
| 2755 |
} |
} |
| 2756 |
} |
} |
| 2757 |
}else{ |
}else{ |
| 2758 |
setLastErrorString( "SQLFetch in isModerator " ); |
/* |
| 2759 |
|
string s( "SQLFetch in isModerator " ); |
| 2760 |
|
s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode ); |
| 2761 |
|
s += ", sql="; |
| 2762 |
|
s += string( sql ); |
| 2763 |
|
setLastErrorString( s.c_str( ) ); |
| 2764 |
|
*/ |
| 2765 |
} |
} |
| 2766 |
}else{ |
}else{ |
| 2767 |
string s( "SQLExecDirect in isModerator " ); |
string s( "SQLExecDirect in isModerator " ); |
| 3753 |
} |
} |
| 3754 |
ret = RES_OK; |
ret = RES_OK; |
| 3755 |
}else{ |
}else{ |
| 3756 |
string s( "SQLExecDirect in getUncertifiedItemID " ); |
string s( "SQLExecDirect in getPrivateItemID " ); |
| 3757 |
s += odbcDiagString( SQL_HANDLE_STMT, hstmt2, sqlcode ); |
s += odbcDiagString( SQL_HANDLE_STMT, hstmt2, sqlcode ); |
| 3758 |
s += "sql="; |
s += "sql="; |
| 3759 |
s += string( sql ); |
s += string( sql ); |
| 3762 |
} |
} |
| 3763 |
SQLFreeHandle( SQL_HANDLE_STMT, hstmt2 ); |
SQLFreeHandle( SQL_HANDLE_STMT, hstmt2 ); |
| 3764 |
}else{ |
}else{ |
| 3765 |
string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getUncertifiedItemID" ); |
string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getPrivateItemID" ); |
| 3766 |
s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode ); |
s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode ); |
| 3767 |
setLastErrorString( s.c_str( ) ); |
setLastErrorString( s.c_str( ) ); |
| 3768 |
ret = RES_ERROR; |
ret = RES_ERROR; |
| 3769 |
} |
} |
| 3770 |
}else { |
}else { |
| 3771 |
string s( "SQLExecDirect in getUncertifiedItemID " ); |
string s( "SQLExecDirect in getPrivateItemID " ); |
| 3772 |
s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode ); |
s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode ); |
| 3773 |
s += ", sql="; |
s += ", sql="; |
| 3774 |
s += string( sql ); |
s += string( sql ); |
| 3776 |
ret = RES_DB_QUERY_ERROR; |
ret = RES_DB_QUERY_ERROR; |
| 3777 |
} |
} |
| 3778 |
}else{ |
}else{ |
| 3779 |
string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getUncertifiedItemID" ); |
string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getPrivateItemID" ); |
| 3780 |
s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode ); |
s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode ); |
| 3781 |
setLastErrorString( s.c_str( ) ); |
setLastErrorString( s.c_str( ) ); |
| 3782 |
ret = RES_ERROR; |
ret = RES_ERROR; |
| 5870 |
void freeUID( const userid_t* ptr ){ delete[] ( userid_t* )ptr; } |
void freeUID( const userid_t* ptr ){ delete[] ( userid_t* )ptr; } |
| 5871 |
void freeGID( const groupid_t* ptr ){ delete[] ( groupid_t* )ptr; } |
void freeGID( const groupid_t* ptr ){ delete[] ( groupid_t* )ptr; } |
| 5872 |
void freeItem( const item_t* ptr ){ delete[] ( item_t* )ptr; } |
void freeItem( const item_t* ptr ){ delete[] ( item_t* )ptr; } |
| 5873 |
|
void freeItemType( const itemtype_t* ptr ){ delete[] ( itemtype_t* )ptr; } |
| 5874 |
void freeItemID( const itemid_t* ptr ){ delete[] ( itemid_t* )ptr; } |
void freeItemID( const itemid_t* ptr ){ delete[] ( itemid_t* )ptr; } |
| 5875 |
void freeString( char* str ){ delete[] str; } |
void freeString( char* str ){ delete[] str; } |
| 5876 |
void freeChangeLog( const changelog_t* ptr ){ delete[] ( changelog_t* )ptr; } |
void freeChangeLog( const changelog_t* ptr ){ delete[] ( changelog_t* )ptr; } |
| 6213 |
} |
} |
| 6214 |
ret = RES_OK; |
ret = RES_OK; |
| 6215 |
}else { |
}else { |
| 6216 |
string s( "SQLExecDirect in getUncertifiedItemID " ); |
string s( "SQLExecDirect in getUncertifiedLink " ); |
| 6217 |
s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode ); |
s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode ); |
| 6218 |
s += ", sql="; |
s += ", sql="; |
| 6219 |
s += string( sql ); |
s += string( sql ); |
| 6221 |
ret = RES_DB_QUERY_ERROR; |
ret = RES_DB_QUERY_ERROR; |
| 6222 |
} |
} |
| 6223 |
}else{ |
}else{ |
| 6224 |
string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getUncertifiedItemID" ); |
string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getUncertifiedLink" ); |
| 6225 |
s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode ); |
s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode ); |
| 6226 |
setLastErrorString( s.c_str( ) ); |
setLastErrorString( s.c_str( ) ); |
| 6227 |
ret = RES_ERROR; |
ret = RES_ERROR; |
| 6229 |
return ret; |
return ret; |
| 6230 |
} |
} |
| 6231 |
|
|
| 6232 |
|
result_t getItemTypes( const itemtype_t** types, int* len ) |
| 6233 |
|
{ |
| 6234 |
|
if( hdbc == NULL ) return RES_DB_NOT_INITIALIZED; |
| 6235 |
|
|
| 6236 |
|
int i = 0; |
| 6237 |
|
SQLHANDLE hstmt = NULL; |
| 6238 |
|
result_t ret = RES_ERROR; |
| 6239 |
|
itemtype_t* dst= 0; |
| 6240 |
|
string sql; |
| 6241 |
|
SQLRETURN sqlcode; |
| 6242 |
|
SQLINTEGER count = 0; |
| 6243 |
|
|
| 6244 |
|
sql = "SELECT item_type_id, name, mid, display_name "; |
| 6245 |
|
sql += " FROM " + dbprefix + "_xnpaccount_item_type order by item_type_id"; |
| 6246 |
|
//fprintf( stderr, "\nsql at %d=%s", __LINE__, sql.c_str() ); |
| 6247 |
|
if( countResultRows( sql.c_str(), &count ) == RES_OK ){ |
| 6248 |
|
dst = new itemtype_t[ count ]; |
| 6249 |
|
*types = dst; |
| 6250 |
|
}else{ |
| 6251 |
|
return RES_ERROR; |
| 6252 |
|
} |
| 6253 |
|
|
| 6254 |
|
*len = 0; |
| 6255 |
|
if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) { |
| 6256 |
|
if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){ |
| 6257 |
|
itemtypeid_t itid = 0; |
| 6258 |
|
SQLINTEGER mid = 0; |
| 6259 |
|
SQLCHAR name[XNP_ITEMTYPE_NAME_LEN+1]; |
| 6260 |
|
SQLCHAR display_name[XNP_ITEMTYPE_DISPLAY_NAME_LEN+1]; |
| 6261 |
|
SQLINTEGER cbItid = 0, cbMid = 0, cbName=SQL_NTS, cbDisplayName=SQL_NTS; |
| 6262 |
|
SQLBindCol( hstmt, 1, SQL_C_ULONG, &itid, 0, &cbItid ); |
| 6263 |
|
SQLBindCol( hstmt, 2, SQL_C_CHAR , &name, XNP_ITEMTYPE_NAME_LEN+1, &cbName ); |
| 6264 |
|
SQLBindCol( hstmt, 3, SQL_C_ULONG, &mid, 0, &cbMid ); |
| 6265 |
|
SQLBindCol( hstmt, 4, SQL_C_CHAR , &display_name, XNP_ITEMTYPE_DISPLAY_NAME_LEN+1, &cbDisplayName ); |
| 6266 |
|
for( i = 0 ; ( sqlcode = SQLFetch( hstmt ) ) == SQL_SUCCESS ; i++ ){ |
| 6267 |
|
//fprintf( stderr, "\nitid=%d, mid=%d, name='%s', display_name='%s'", itid, mid, name, display_name ); |
| 6268 |
|
dst[ i ].setItemTypeID( itid ); |
| 6269 |
|
dst[ i ].setModuleID( itid ); |
| 6270 |
|
dst[ i ].setName( ( char* )name ); |
| 6271 |
|
dst[ i ].setDisplayName( ( char* )display_name ); |
| 6272 |
|
( *len )++; |
| 6273 |
|
} |
| 6274 |
|
ret = RES_OK; |
| 6275 |
|
}else { |
| 6276 |
|
string s( "SQLExecDirect in getItemType " ); |
| 6277 |
|
s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode ); |
| 6278 |
|
s += ", sql="; |
| 6279 |
|
s += string( sql ); |
| 6280 |
|
setLastErrorString( s.c_str( ) ); |
| 6281 |
|
ret = RES_DB_QUERY_ERROR; |
| 6282 |
|
} |
| 6283 |
|
}else{ |
| 6284 |
|
string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getItemType" ); |
| 6285 |
|
s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode ); |
| 6286 |
|
setLastErrorString( s.c_str( ) ); |
| 6287 |
|
ret = RES_ERROR; |
| 6288 |
|
} |
| 6289 |
|
return ret; |
| 6290 |
|
} |