Changeset 488

Show
Ignore:
Timestamp:
04/07/06 04:46:50 (3 years ago)
Author:
common
Message:

library
- sqlhandler-postgres uses config for credentials
- removed 'some' debug statements
- better callbacking
- config has fields for the database credentials now

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • library/trunk/conf/library.conf.dist

    r483 r488  
    2828    ); 
    2929 
     30    database 
     31    { 
     32        server                          "localhost"; 
     33        table                           "library"; 
     34        user                            "user"; 
     35        pass                            "pass"; 
     36    }; 
    3037 
    3138    logmanager 
  • library/trunk/modules/sqlhandler-postgres/sqlhandler-postgres.cpp

    r479 r488  
    103103bool SQLHandlerPostgres::Init() 
    104104{ 
    105          
    106  
    107         string sConnect; 
    108 //      sConnect = "hostaddr = '" + m_PGServer + "' dbname = '" + m_PGTable + "' user = '" + m_PGUser + "' password = '" + m_PGPass +"'"; 
    109         sConnect = "hostaddr = 'fixthisstaticcraptoconfig' dbname = 'library' user = 'foobar' password = 'steelmycredentials'"; 
    110  
    111         m_PGConnection = PQconnectdb(sConnect.c_str()); 
     105        try 
     106        { 
     107                m_PGServer= g_Library->getConfig()->getValString("library.database.server");    
     108                m_PGTable= g_Library->getConfig()->getValString("library.database.table");     
     109                m_PGUser= g_Library->getConfig()->getValString("library.database.user");      
     110                m_PGPass= g_Library->getConfig()->getValString("library.database.pass"); 
     111        }catch (...) 
     112        { 
     113                logCrit("%s","Error setting needed vars, check your config\n"); 
     114                return false; 
     115        } 
     116 
     117        string ConnectString; 
     118        ConnectString = "hostaddr = '" + m_PGServer + "' dbname = '" + m_PGTable + "' user = '" + m_PGUser + "' password = '" + m_PGPass +"'"; 
     119 
     120        m_PGConnection = PQconnectdb(ConnectString.c_str()); 
    112121 
    113122        if ( PQstatus(m_PGConnection) != CONNECTION_OK ) 
     
    122131 
    123132        g_Library->getSocketMgr()->addPOLLSocket(this); 
    124  
    125133 
    126134 
     
    177185                        while ( (res = PQgetResult(m_PGConnection)) != NULL ) 
    178186                        { 
    179                                 sqlresult = new PGSQLResult(res,m_Queries.front()->getQuery(),m_Queries.front()->getObject()); 
    180                                 printf("status %s\n",PQresStatus(PQresultStatus(res))); 
    181                                 printf("error %s\n",PQresultErrorMessage(res)); 
    182  
    183                                 int i,j; 
    184                                 unsigned int k; 
    185                                 int *maxflen; 
    186  
    187                                 maxflen=(int *)malloc(PQnfields(res)*sizeof(int)); 
    188                                 memset(maxflen,0,PQnfields(res)*sizeof(int)); 
    189  
    190                                 for ( i=0;i<PQnfields(res);i++ ) 
     187                                switch (PQresultStatus(res)) 
    191188                                { 
    192                                         if ((int)strlen(PQfname(res,i)) > maxflen[i]) 
     189                                case PGRES_COMMAND_OK: 
     190                                case PGRES_TUPLES_OK: 
     191                    break; 
     192 
     193                                default: 
     194                                        logCrit("Query failure. Query'%s' Error '%s' ('%s')\n", 
     195                                                        m_Queries.front()->getQuery().c_str(), 
     196                                                        PQresStatus(PQresultStatus(res)), 
     197                                                PQresultErrorMessage(res)); 
     198                                } 
     199 
     200 
     201                                if ( m_Queries.front()->getCallback() != NULL ) 
     202                                { 
     203 
     204                                        sqlresult = new PGSQLResult(res,m_Queries.front()->getQuery(),m_Queries.front()->getObject()); 
     205 
     206                                        switch (PQresultStatus(res)) 
    193207                                        { 
    194                                                 maxflen[i] = strlen(PQfname(res,i)); 
    195                                                 printf("new maxflen %i\n",maxflen[i]); 
     208                                        case PGRES_COMMAND_OK: 
     209                                        case PGRES_TUPLES_OK: 
     210                                                m_Queries.front()->getCallback()->sqlSuccess(sqlresult); 
     211                                                break; 
     212 
     213                                        default: 
     214                                                m_Queries.front()->getCallback()->sqlFailure(sqlresult); 
    196215                                        } 
    197216 
    198                                         for ( j = 0;  j < PQntuples(res); j++ ) 
    199                                         { 
    200                                                 char *result = PQgetvalue(res, j, i); 
    201                                                 if ((int)strlen(result) > maxflen[i]) 
    202                                                 { 
    203                             maxflen[i] = strlen(result); 
    204                                                         printf("new maxflen %i\n",maxflen[i]); 
    205                                                 } 
    206                                         } 
     217                                        delete sqlresult; 
    207218                                } 
    208  
    209  
    210                                 printf("fields %i, tuples %i\n",PQnfields(res),PQntuples(res)); 
    211                                 for ( i=0;i<PQnfields(res);i++ ) 
    212                                 { 
    213                                         printf(" %s ",PQfname(res,i)); 
    214                                         for (k=0;k<maxflen[i]-strlen(PQfname(res,i));k++) 
    215                                         { 
    216                                                 printf(" "); 
    217                                         } 
    218                                         printf(" |"); 
    219                                 } 
    220                                 printf("\n"); 
    221  
    222                                 for ( j = 0;  j < PQntuples(res); j++ ) 
    223                                 { 
    224  
    225                                         for ( i=0;i<PQnfields(res);i++ ) 
    226                                         { 
    227                                                 char *result = PQgetvalue(res, j, i); 
    228                                                 printf(" %s ",result); 
    229                                                 for (k=0;k<maxflen[i]-strlen(result);k++) 
    230                                                 { 
    231                                                         printf(" "); 
    232                                                 } 
    233                                                 printf(" |"); 
    234  
    235  
    236                                         } 
    237                                         printf("\n"); 
    238                                          
    239                                 } 
    240                                 printf("\n"); 
    241  
    242                                  
    243219                        } 
    244220 
    245  
    246                         printf("\n"); 
    247  
    248                         if ( m_Queries.front()->getCallback() != NULL ) 
    249                         { 
    250                                 m_Queries.front()->getCallback()->sqlSuccess(sqlresult); 
    251                         } 
    252221                        PQclear(res); 
    253222 
  • library/trunk/modules/sqlhandler-postgres/sqlhandler-postgres.hpp

    r479 r488  
    7171                Library *m_Library; 
    7272                list <SQLQuery *>       m_Queries; 
     73 
     74                string m_PGServer; 
     75                string m_PGTable; 
     76                string m_PGUser; 
     77                string m_PGPass; 
     78 
    7379        }; 
    7480 
     
    8692                                         
    8793                                        foo[PQfname(res,i)] = PQgetvalue(res, j, i); 
    88                                       printf(" adding %s %s\n",PQfname(res,i), PQgetvalue(res, j, i)); 
     94//                                    printf(" adding %s %s\n",PQfname(res,i), PQgetvalue(res, j, i)); 
    8995                                         
    9096                                }