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.54 by aga, Fri Jan 28 00:36:58 2005 UTC revision 1.55 by youi, Fri Jan 28 07:01:38 2005 UTC
# Line 2  Line 2 
2   *   *
3   * $Revision$   * $Revision$
4   * $Log$   * $Log$
5     * Revision 1.55  2005/01/28 07:01:38  youi
6     * getItemIDByIndexID: 対象となるアイテムの条件見直し.
7     * SQLAllocHandle失敗時のメッセージを追加.
8     *
9   * Revision 1.54  2005/01/28 00:36:58  aga   * Revision 1.54  2005/01/28 00:36:58  aga
10   * ・freeStringで落ちることがあるのを修正.   * ・freeStringで落ちることがあるのを修正.
11   *   *
# Line 394  static result_t querySimple( const char Line 398  static result_t querySimple( const char
398          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
399      }      }
400      else {      else {
401          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in querySimple " );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in querySimple " );
402            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
403            setLastErrorString( s.c_str( ) );
404          ret = RES_ERROR;          ret = RES_ERROR;
405      }      }
406      return ret;      return ret;
# Line 439  static result_t queryGetUnsignedInt( con Line 445  static result_t queryGetUnsignedInt( con
445          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
446      }      }
447      else {      else {
448          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in queryGetUnsignedInt " );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in queryGetUnsignedInt " );
449            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
450            setLastErrorString( s.c_str( ) );
451          ret = RES_ERROR;          ret = RES_ERROR;
452      }      }
453      return ret;      return ret;
# Line 606  static result_t getXoopsModuleConfigValu Line 614  static result_t getXoopsModuleConfigValu
614          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
615      }      }
616      else {      else {
617          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getXoopsModuleConfig " );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getXoopsModuleConfig " );
618            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
619            setLastErrorString( s.c_str( ) );
620          result = RES_ERROR;          result = RES_ERROR;
621      }      }
622      return result;      return result;
# Line 672  static bool gidExists( groupid_t gid ) Line 682  static bool gidExists( groupid_t gid )
682      SQLHANDLE hstmt = NULL;      SQLHANDLE hstmt = NULL;
683            
684      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) != SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) != SQL_SUCCESS ) {
685          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in gidExists" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in gidExists" );
686            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
687            setLastErrorString( s.c_str( ) );
688          return false;          return false;
689      }      }
690    
# Line 801  result_t initializeDB( const char* dsn, Line 813  result_t initializeDB( const char* dsn,
813      // 初期化と接続      // 初期化と接続
814  //    if( SQLAllocEnv( &henv ) != SQL_SUCCESS ) {  //    if( SQLAllocEnv( &henv ) != SQL_SUCCESS ) {
815      if( SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv ) != SQL_SUCCESS ) {      if( SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv ) != SQL_SUCCESS ) {
816          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_ENV,...) in initializeDB" );          string s( "SQLAllocHandle(SQL_HANDLE_ENV,...) in initializeDB" );
817            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
818            setLastErrorString( s.c_str( ) );
819  #ifdef USE_SYSLOG  #ifdef USE_SYSLOG
820          syslog( LOG_DEBUG, "initializeDB %s", getLastErrorString( ) );          syslog( LOG_DEBUG, "initializeDB %s", getLastErrorString( ) );
821          closelog( );          closelog( );
# Line 812  result_t initializeDB( const char* dsn, Line 826  result_t initializeDB( const char* dsn,
826      SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);      SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
827            
828      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_DBC, henv, &hdbc ) ) != SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_DBC, henv, &hdbc ) ) != SQL_SUCCESS ) {
829          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_DBC,...) in initializeDB" );          string s( "SQLAllocHandle(SQL_HANDLE_DBC,...) in initializeDB" );
830            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
831            setLastErrorString( s.c_str( ) );
832  #ifdef USE_SYSLOG  #ifdef USE_SYSLOG
833          syslog( LOG_DEBUG, "initializeDB %s", getLastErrorString( ) );          syslog( LOG_DEBUG, "initializeDB %s", getLastErrorString( ) );
834          closelog( );          closelog( );
# Line 897  bool isActivated( sessionid_t sid, useri Line 913  bool isActivated( sessionid_t sid, useri
913          }          }
914          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
915      }else{      }else{
916          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in isActivated" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in isActivated" );
917            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
918            setLastErrorString( s.c_str( ) );
919          ret = false;          ret = false;
920      }      }
921      return ret;      return ret;
# Line 948  result_t activate( sessionid_t sid, user Line 966  result_t activate( sessionid_t sid, user
966          }          }
967          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
968      }else{      }else{
969          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in activate" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in activate" );
970            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
971            setLastErrorString( s.c_str( ) );
972          ret = RES_ERROR;          ret = RES_ERROR;
973      }      }
974      return ret;      return ret;
# Line 993  int getAccountCount( sessionid_t sid ) Line 1013  int getAccountCount( sessionid_t sid )
1013          }          }
1014          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
1015      }else{      }else{
1016          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getAccountCount" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getAccountCount" );
1017            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
1018            setLastErrorString( s.c_str( ) );
1019          ret = 0;          ret = 0;
1020      }      }
1021      return ret;      return ret;
# Line 1064  result_t deleteAccount( sessionid_t sid, Line 1086  result_t deleteAccount( sessionid_t sid,
1086          }          }
1087          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
1088      }else{      }else{
1089          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in deleteAccount" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in deleteAccount" );
1090            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
1091            setLastErrorString( s.c_str( ) );
1092          ret1 = RES_ERROR;          ret1 = RES_ERROR;
1093      }      }
1094            
# Line 1093  result_t deleteAccount( sessionid_t sid, Line 1117  result_t deleteAccount( sessionid_t sid,
1117          }          }
1118          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
1119      }else{      }else{
1120          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in deleteAccount" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in deleteAccount" );
1121            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
1122            setLastErrorString( s.c_str( ) );
1123          ret2 = RES_ERROR;          ret2 = RES_ERROR;
1124      }      }
1125            
# Line 1408  result_t insertAccount( sessionid_t sid, Line 1434  result_t insertAccount( sessionid_t sid,
1434          }          }
1435          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
1436      }else{      }else{
1437          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in insertAccount" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in insertAccount" );
1438            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
1439            setLastErrorString( s.c_str( ) );
1440          ret = RES_ERROR;          ret = RES_ERROR;
1441      }      }
1442            
# Line 1504  result_t insertAccount( sessionid_t sid, Line 1532  result_t insertAccount( sessionid_t sid,
1532              }              }
1533              SQLFreeHandle( SQL_HANDLE_STMT, hstmt );              SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
1534          }else{          }else{
1535              setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in insertAccount" );              string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in insertAccount" );
1536            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
1537            setLastErrorString( s.c_str( ) );
1538              ret = RES_ERROR;              ret = RES_ERROR;
1539          }          }
1540      }      }
# Line 1715  result_t updateAccount( sessionid_t sid, Line 1745  result_t updateAccount( sessionid_t sid,
1745          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
1746          hstmt = NULL;          hstmt = NULL;
1747      }else{      }else{
1748          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in updateAccount" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in updateAccount" );
1749            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
1750            setLastErrorString( s.c_str( ) );
1751          ret = RES_ERROR;          ret = RES_ERROR;
1752      }      }
1753            
# Line 1791  result_t updateAccount( sessionid_t sid, Line 1823  result_t updateAccount( sessionid_t sid,
1823          }          }
1824          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
1825      }else{      }else{
1826          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in updateAccount" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in updateAccount" );
1827            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
1828            setLastErrorString( s.c_str( ) );
1829          ret = RES_ERROR;          ret = RES_ERROR;
1830      }      }
1831      return ret;      return ret;
# Line 1916  int getGroupCount( sessionid_t sid ) Line 1950  int getGroupCount( sessionid_t sid )
1950          }          }
1951          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
1952      }else{      }else{
1953          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getGroupCount" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getGroupCount" );
1954            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
1955            setLastErrorString( s.c_str( ) );
1956          ret = 0;          ret = 0;
1957      }      }
1958      return ret;      return ret;
# Line 1985  result_t getGroupsByUid( sessionid_t sid Line 2021  result_t getGroupsByUid( sessionid_t sid
2021                          string s( "SQLExecDirect in getGroupsByUid " );                          string s( "SQLExecDirect in getGroupsByUid " );
2022                          s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode );                          s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode );
2023                          s += string( ", sql=" ) + string( sql );                          s += string( ", sql=" ) + string( sql );
2024                            setLastErrorString( s.c_str( ) );
2025                          ret = RES_DB_QUERY_ERROR;                          ret = RES_DB_QUERY_ERROR;
2026                      }                      }
2027                  }else{                  }else{
2028                      string s( "SQLAllocHandle in getGroupsByUid " );                      string s( "SQLAllocHandle in getGroupsByUid " );
2029                      s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );                      s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
2030                        setLastErrorString( s.c_str( ) );
2031                      ret = RES_ERROR;                      ret = RES_ERROR;
2032                  }                  }
2033              }else{              }else{
# Line 1999  result_t getGroupsByUid( sessionid_t sid Line 2037  result_t getGroupsByUid( sessionid_t sid
2037              string s( "SQLExecDirect in getGroupsByUid " );              string s( "SQLExecDirect in getGroupsByUid " );
2038              s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode );              s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode );
2039              s += string( ", sql=" ) + string( sql );              s += string( ", sql=" ) + string( sql );
2040                setLastErrorString( s.c_str( ) );
2041              ret = RES_DB_QUERY_ERROR;              ret = RES_DB_QUERY_ERROR;
2042          }          }
2043      }else{      }else{
2044          string s( "SQLAllocHandle in getGroupsByUid " );          string s( "SQLAllocHandle in getGroupsByUid " );
2045            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
2046          setLastErrorString( s.c_str( ) );          setLastErrorString( s.c_str( ) );
2047          ret = RES_ERROR;          ret = RES_ERROR;
2048      }      }
# Line 2246  static result_t deleteMemberNoLimit( ses Line 2286  static result_t deleteMemberNoLimit( ses
2286          }          }
2287          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
2288      }else{      }else{
2289          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in deleteMember" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in deleteMember" );
2290            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
2291            setLastErrorString( s.c_str( ) );
2292          ret = RES_ERROR;          ret = RES_ERROR;
2293      }      }
2294      return ret;      return ret;
# Line 2306  result_t insertMember( sessionid_t sid, Line 2348  result_t insertMember( sessionid_t sid,
2348          }          }
2349          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
2350      }else{      }else{
2351          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in insertMember" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in insertMember" );
2352            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
2353            setLastErrorString( s.c_str( ) );
2354          ret = RES_ERROR;          ret = RES_ERROR;
2355      }      }
2356      return ret;      return ret;
# Line 2375  result_t getMembers( sessionid_t sid, gr Line 2419  result_t getMembers( sessionid_t sid, gr
2419                          }                          }
2420                          SQLFreeHandle( SQL_HANDLE_STMT, hstmt2 );                          SQLFreeHandle( SQL_HANDLE_STMT, hstmt2 );
2421                      }else{                      }else{
2422                          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getMembers" );                          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getMembers" );
2423            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
2424            setLastErrorString( s.c_str( ) );
2425                          ret = RES_ERROR;                          ret = RES_ERROR;
2426                      }                      }
2427                  }else{                  }else{
# Line 2393  result_t getMembers( sessionid_t sid, gr Line 2439  result_t getMembers( sessionid_t sid, gr
2439          }          }
2440          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
2441      }else{      }else{
2442          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getMembers" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getMembers" );
2443            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
2444            setLastErrorString( s.c_str( ) );
2445          ret = RES_ERROR;          ret = RES_ERROR;
2446      }      }
2447      return ret;      return ret;
# Line 2446  result_t deleteGroup( sessionid_t sid, g Line 2494  result_t deleteGroup( sessionid_t sid, g
2494          }          }
2495          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
2496      }else{      }else{
2497          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in deleteGroup" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in deleteGroup" );
2498            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
2499            setLastErrorString( s.c_str( ) );
2500          ret = RES_ERROR;          ret = RES_ERROR;
2501      }      }
2502      return ret;      return ret;
# Line 2512  result_t insertGroup( sessionid_t sid, c Line 2562  result_t insertGroup( sessionid_t sid, c
2562          }          }
2563          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
2564      }else{      }else{
2565          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in insertGroup" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in insertGroup" );
2566            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
2567            setLastErrorString( s.c_str( ) );
2568          ret = RES_ERROR;          ret = RES_ERROR;
2569      }      }
2570            
# Line 2613  result_t updateGroup( sessionid_t sid, c Line 2665  result_t updateGroup( sessionid_t sid, c
2665          }          }
2666          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
2667      }else{      }else{
2668          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in updateGroup" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in updateGroup" );
2669            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
2670            setLastErrorString( s.c_str( ) );
2671          ret = RES_ERROR;          ret = RES_ERROR;
2672      }      }
2673      return RES_OK;      return RES_OK;
# Line 2783  bool isModerator( sessionid_t sid, useri Line 2837  bool isModerator( sessionid_t sid, useri
2837          }          }
2838          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
2839      }else{      }else{
2840          setLastErrorString( "SQLAllocHandle in isModerator " );          string s( "SQLAllocHandle in isModerator " );
2841            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
2842            setLastErrorString( s.c_str( ) );
2843      }      }
2844      return ret;      return ret;
2845  }  }
# Line 2832  result_t getUid( const char* uname, user Line 2888  result_t getUid( const char* uname, user
2888          }          }
2889          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
2890      }else{      }else{
2891          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getUid" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getUid" );
2892            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
2893            setLastErrorString( s.c_str( ) );
2894          ret = RES_ERROR;          ret = RES_ERROR;
2895      }      }
2896            
# Line 2917  result_t loginUser(const char* uname, co Line 2975  result_t loginUser(const char* uname, co
2975          }          }
2976          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
2977      }else{      }else{
2978          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in loginUser " );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in loginUser " );
2979            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
2980            setLastErrorString( s.c_str( ) );
2981          ret = RES_ERROR;          ret = RES_ERROR;
2982      }      }
2983            
# Line 2951  void logoutUser( sessionid_t sid ) Line 3011  void logoutUser( sessionid_t sid )
3011          }          }
3012      }      }
3013      else {      else {
3014          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in logoutUser" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in logoutUser" );
3015            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
3016            setLastErrorString( s.c_str( ) );
3017      }      }
3018  }  }
3019    
# Line 3206  result_t insertItem( sessionid_t sid, co Line 3268  result_t insertItem( sessionid_t sid, co
3268          }          }
3269          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
3270      }else{      }else{
3271          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in insertItem" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in insertItem" );
3272            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
3273            setLastErrorString( s.c_str( ) );
3274          ret = RES_ERROR;          ret = RES_ERROR;
3275      }      }
3276            
# Line 3521  result_t updateItem( sessionid_t sid, co Line 3585  result_t updateItem( sessionid_t sid, co
3585                  SQLINTEGER count = 0;                  SQLINTEGER count = 0;
3586                  if( ( sqlcode = SQLRowCount( hstmt, &count ) ) == SQL_SUCCESS && count > 0 ){                  if( ( sqlcode = SQLRowCount( hstmt, &count ) ) == SQL_SUCCESS && count > 0 ){
3587                      char* certify_item_val;                      char* certify_item_val;
3588                      if( getConfigValue( XNP_CONFIG_CERTIFY_ITEM_KEY, &certify_item_val ) == RES_OK ){                      if( getXoopsModuleConfigValue( "xnpaccount", XNP_CONFIG_CERTIFY_ITEM_KEY, &certify_item_val ) == RES_OK ){
3589                            //if( getConfigValue( XNP_CONFIG_CERTIFY_ITEM_KEY, &certify_item_val ) == RES_OK ){
3590                          SQLHANDLE hstmt2 = NULL;                          SQLHANDLE hstmt2 = NULL;
3591                          certify_t cerity_state = index::NOT_CERTIFIED;                          certify_t cerity_state = index::NOT_CERTIFIED;
3592                          if( strcmp( certify_item_val, XNP_CONFIG_CERTIFY_ITEM_AUTO ) == 0 ){                          if( strcmp( certify_item_val, XNP_CONFIG_CERTIFY_ITEM_AUTO ) == 0 ){
# Line 3533  result_t updateItem( sessionid_t sid, co Line 3598  result_t updateItem( sessionid_t sid, co
3598                          if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt2 ) ) == SQL_SUCCESS ) {                          if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt2 ) ) == SQL_SUCCESS ) {
3599                              string sql;                              string sql;
3600                              sql = "SELECT index_item_link_id ";                              sql = "SELECT index_item_link_id ";
3601                              sql += " FROM xtest_xnpaccount_index_item_link as tlink ";                              sql += " FROM " + dbprefix + "_xnpaccount_index_item_link as tlink ";
3602                              sql += " LEFT JOIN xtest_xnpaccount_index as tx ON tlink.index_id=tx.index_id ";                              sql += " LEFT JOIN " + dbprefix + "_xnpaccount_index as tx ON tlink.index_id=tx.index_id ";
3603                              sql += " LEFT JOIN xtest_xnpaccount_item_basic as ti ON tlink.item_id=ti.item_id ";                              sql += " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic as ti ON tlink.item_id=ti.item_id ";
3604                              sql += " WHERE (tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );                              sql += " WHERE (tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );
3605                              sql += " OR tx.open_level=" + unsignedIntToString( index::OL_GROUP_ONLY );                              sql += " OR tx.open_level=" + unsignedIntToString( index::OL_GROUP_ONLY );
3606                              sql += ") AND ti.item_type_id!=" + unsignedIntToString( item::ITID_BINDER );                              sql += ") AND ti.item_type_id!=" + unsignedIntToString( item::ITID_BINDER );
# Line 3567  result_t updateItem( sessionid_t sid, co Line 3632  result_t updateItem( sessionid_t sid, co
3632                              setLastErrorString( s.c_str( ) );                              setLastErrorString( s.c_str( ) );
3633                              ret = RES_ERROR;                              ret = RES_ERROR;
3634                          }                          }
3635                          freeString( certify_item_val );                          //fprintf( stderr, "\n%08lx '%s'", certify_item_val, certify_item_val );
3636                            if( certify_item_val != 0 ) freeString( certify_item_val );
3637                            certify_item_val = 0;
3638                        }else{
3639                            string s( "getXoopsModuleConfigValue in updateItem(key=" );
3640                            s += XNP_CONFIG_CERTIFY_ITEM_KEY;
3641                            s += "), ";
3642                            s += getLastErrorString( );
3643                            setLastErrorString( s.c_str( ) );
3644                            ret = RES_ERROR;
3645                      }                      }
3646                  }else{                  }else{
3647                      string s( "SQLRowCount in updateItem sql=" );                      string s( "SQLRowCount in updateItem sql=" );
# Line 3589  result_t updateItem( sessionid_t sid, co Line 3663  result_t updateItem( sessionid_t sid, co
3663          }          }
3664          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
3665      }else{      }else{
3666          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in updateItem" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in updateItem" );
3667            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
3668            setLastErrorString( s.c_str( ) );
3669          ret = RES_ERROR;          ret = RES_ERROR;
3670      }      }
3671            setLastErrorString( "updateItem succeed" );
3672      return ret;      return ret;
3673  }  }
3674    
# Line 3667  result_t deleteItem( sessionid_t sid, it Line 3743  result_t deleteItem( sessionid_t sid, it
3743          }          }
3744          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
3745      }else{      }else{
3746          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in deleteItem" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in deleteItem" );
3747            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
3748            setLastErrorString( s.c_str( ) );
3749          ret = RES_ERROR;          ret = RES_ERROR;
3750      }      }
3751            
# Line 3830  result_t getItemIDByIndexID( sessionid_t Line 3908  result_t getItemIDByIndexID( sessionid_t
3908      if( ( ret = sessionID2UID( sid, &uid ) ) != RES_OK ) return ret;      if( ( ret = sessionID2UID( sid, &uid ) ) != RES_OK ) return ret;
3909      sql = "SELECT DISTINCT tlink.item_id AS item_id FROM " + dbprefix + "_xnpaccount_index_item_link AS tlink";      sql = "SELECT DISTINCT tlink.item_id AS item_id FROM " + dbprefix + "_xnpaccount_index_item_link AS tlink";
3910      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_index AS tx ON tlink.index_id = tx.index_id";      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_index AS tx ON tlink.index_id = tx.index_id";
3911      sql+=       " AND certify_state=" + unsignedIntToString( index::CERTIFIED );  //    sql+=       " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
3912      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic AS ti ON tlink.item_id = ti.item_id";      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic AS ti ON tlink.item_id = ti.item_id";
3913      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_groups_users_link as tgulink ON tx.gid=tgulink.gid AND (ti.uid=";      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_groups_users_link as tgulink ON tx.gid=tgulink.gid AND (ti.uid=";
3914      sql+= unsignedIntToString( uid ) + " OR ";      sql+= unsignedIntToString( uid ) + " OR ";
# Line 3841  result_t getItemIDByIndexID( sessionid_t Line 3919  result_t getItemIDByIndexID( sessionid_t
3919      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NULL";      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NULL";
3920      sql+=    " OR tc.value!=\"" XNP_CONFIG_PUBLIC_ITEM_TARGET_USER_ALL "\"";      sql+=    " OR tc.value!=\"" XNP_CONFIG_PUBLIC_ITEM_TARGET_USER_ALL "\"";
3921      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NOT NULL";      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NOT NULL";
3922      sql+=    " OR tgulink.uid=" + unsignedIntToString( uid );  //    sql+=    " OR tgulink.uid=" + unsignedIntToString( uid );
3923      sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE );      sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE );
3924      sql+=       " AND tx.uid=" + unsignedIntToString( uid );      sql+=       " AND tx.uid=" + unsignedIntToString( uid );
3925      sql+=    " OR " + string( isModerator( sid, uid ) ? "1" : "0" );      sql+=    " OR " + string( isModerator( sid, uid ) ? "1" : "0" );
3926        sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_GROUP_ONLY ); //<<
3927        sql+=    " AND certify_state=" + unsignedIntToString( index::CERTIFIED ); //<<
3928      sql+=    " OR tx.uid IS NULL ";      sql+=    " OR tx.uid IS NULL ";
3929      sql+=    " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );      sql+=    " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );
3930      sql+=    ")";      sql+=    " AND certify_state=" + unsignedIntToString( index::CERTIFIED ); //<<
3931        sql+=    ") AND ti.item_type_id!=" + unsignedIntToString( item::ITID_INDEX );
3932        sql += " AND tx.index_id=" + unsignedIntToString( xid );
3933      sql += criteria2str( cri );      sql += criteria2str( cri );
3934      //fprintf( stderr, "\nsql at %d=%s", __LINE__, sql.c_str() );      //fprintf( stderr, "\nsql at %d=%s", __LINE__, sql.c_str() );
3935      if( countResultRows( sql.c_str(), &count ) == RES_OK ){      if( countResultRows( sql.c_str(), &count ) == RES_OK ){
# Line 4514  static result_t getIndexesInternal( sess Line 4596  static result_t getIndexesInternal( sess
4596          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
4597      }      }
4598      else {      else {
4599          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getIndexesInternal" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getIndexesInternal" );
4600            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
4601            setLastErrorString( s.c_str( ) );
4602          result = RES_ERROR;          result = RES_ERROR;
4603      }      }
4604      return result;      return result;
# Line 4937  result_t insertIndex( sessionid_t sid, i Line 5021  result_t insertIndex( sessionid_t sid, i
5021          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
5022      }      }
5023      else {      else {
5024          setLastErrorString( "SQLAllocHandle in insertIndex" );          string s( "SQLAllocHandle in insertIndex" );
5025            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
5026            setLastErrorString( s.c_str( ) );
5027          result = RES_ERROR;          result = RES_ERROR;
5028      }      }
5029      return result;      return result;
# Line 5007  result_t getDescendantIndexID( int xid, Line 5093  result_t getDescendantIndexID( int xid,
5093              }              }
5094              SQLFreeHandle( SQL_HANDLE_STMT, hstmt );              SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
5095          }else{          }else{
5096              setLastErrorString( "SQLAllocHandle in getDescendantIndexID" );              string s( "SQLAllocHandle in getDescendantIndexID" );
5097                s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
5098                setLastErrorString( s.c_str( ) );
5099              result = RES_ERROR;              result = RES_ERROR;
5100          }          }
5101      }      }
# Line 5079  static result_t getAllIndexLink( indexLi Line 5167  static result_t getAllIndexLink( indexLi
5167          }          }
5168          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
5169      }else{      }else{
5170          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getAllIndexLink" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getAllIndexLink" );
5171            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
5172            setLastErrorString( s.c_str( ) );
5173          result = RES_ERROR;          result = RES_ERROR;
5174      }      }
5175      return result;      return result;
# Line 5128  result_t checkTitleConflict( sessionid_t Line 5218  result_t checkTitleConflict( sessionid_t
5218          }          }
5219          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
5220      } else {      } else {
5221          setLastErrorString( "SQLAllocHandle in checkTitleConflict" );          string s( "SQLAllocHandle in checkTitleConflict" );
5222            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
5223            setLastErrorString( s.c_str( ) );
5224          result =  RES_ERROR;          result =  RES_ERROR;
5225      }      }
5226      return result;      return result;
# Line 5297  result_t updateIndexInternal( sessionid_ Line 5389  result_t updateIndexInternal( sessionid_
5389      }      }
5390      else {      else {
5391          string s( "SQLAllocHandle in updateIndex ");          string s( "SQLAllocHandle in updateIndex ");
5392          s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode );          s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
5393          setLastErrorString( s.c_str( ) );          setLastErrorString( s.c_str( ) );
5394          result = RES_ERROR;          result = RES_ERROR;
5395      }      }
# Line 5492  result_t deleteIndex( sessionid_t sid, Line 5584  result_t deleteIndex( sessionid_t sid,
5584                      }                      }
5585                  }                  }
5586              }else{              }else{
5587                  setLastErrorString( "SQLAllocHandle in deleteIndex" );                  string s( "SQLAllocHandle in deleteIndex" );
5588                    s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
5589                    setLastErrorString( s.c_str( ) );
5590                  result = RES_ERROR;                  result = RES_ERROR;
5591              }              }
5592                            
# Line 5633  result_t setConfigValue( const char* key Line 5727  result_t setConfigValue( const char* key
5727                      }                      }
5728                      SQLFreeHandle( SQL_HANDLE_STMT, hstmt2 );                      SQLFreeHandle( SQL_HANDLE_STMT, hstmt2 );
5729                  }else{                  }else{
5730                      setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in setConfigValue" );                      string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in setConfigValue" );
5731            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
5732            setLastErrorString( s.c_str( ) );
5733                      ret = RES_ERROR;                      ret = RES_ERROR;
5734                  }                  }
5735              }else{              }else{
# Line 5650  result_t setConfigValue( const char* key Line 5746  result_t setConfigValue( const char* key
5746          }          }
5747          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
5748      }else{      }else{
5749          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in setConfigValue" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in setConfigValue" );
5750            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
5751            setLastErrorString( s.c_str( ) );
5752          ret = RES_ERROR;          ret = RES_ERROR;
5753      }      }
5754      return ret;      return ret;
# Line 5687  result_t getConfigValue( const char* key Line 5785  result_t getConfigValue( const char* key
5785                      // get amount of data                      // get amount of data
5786                      if( SQLGetData(hstmt, 1, SQL_C_BINARY, *value, 0, &length)                      if( SQLGetData(hstmt, 1, SQL_C_BINARY, *value, 0, &length)
5787                          == SQL_SUCCESS_WITH_INFO ){                          == SQL_SUCCESS_WITH_INFO ){
5788                                                
5789                      // Get all the data at once.                          // Get all the data at once.
5790                          *value = new char[ length + 1 ];                          *value = new char[ length + 1 ];
5791                          memset( *value, '\0', length + 1 );                          memset( *value, '\0', length + 1 );
5792                          if( SQLGetData(hstmt, 1, SQL_C_DEFAULT, *value,                          if( SQLGetData(hstmt, 1, SQL_C_DEFAULT, *value,
# Line 5730  result_t getConfigValue( const char* key Line 5828  result_t getConfigValue( const char* key
5828          }          }
5829          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );          SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
5830      }else{      }else{
5831          setLastErrorString( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getConfigValue" );          string s( "SQLAllocHandle(SQL_HANDLE_STMT,...) in getConfigValue" );
5832            s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
5833            setLastErrorString( s.c_str( ) );
5834          ret = RES_ERROR;          ret = RES_ERROR;
5835      }      }
5836      return ret;      return ret;
# Line 5788  result_t getChangeLogs( sessionid_t sid, Line 5888  result_t getChangeLogs( sessionid_t sid,
5888              }              }
5889          }else {          }else {
5890              string s( "SQLAllocHandle in getChangeLogs ");              string s( "SQLAllocHandle in getChangeLogs ");
5891              s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode );              s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
5892              setLastErrorString( s.c_str( ) );              setLastErrorString( s.c_str( ) );
5893              ret = RES_ERROR;              ret = RES_ERROR;
5894          }          }
# Line 6345  result_t getIndexIDByItemID( sessionid_t Line 6445  result_t getIndexIDByItemID( sessionid_t
6445              }              }
6446          }else {          }else {
6447              string s( "SQLAllocHandle in getIndexIDByItemID ");              string s( "SQLAllocHandle in getIndexIDByItemID ");
6448              s += odbcDiagString( SQL_HANDLE_STMT, hstmt, sqlcode );              s += odbcDiagString( SQL_HANDLE_DBC, hdbc, sqlcode );
6449              setLastErrorString( s.c_str( ) );              setLastErrorString( s.c_str( ) );
6450              ret = RES_ERROR;              ret = RES_ERROR;
6451          }          }

Legend:
Removed from v.1.54  
changed lines
  Added in v.1.55

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