Stumped on C++ compile error.

Discussion in 'C++' started by rw123, Apr 23, 2011.

  1. rw123

    rw123 New Member

    Joined:
    Apr 23, 2011
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    Hi.
    Am new to c++ and getting error "Cannot use DBSql to initialize DBSql."
    My code compiles fine on older Sun versions (CC 5.3 and 5.8).
    I marked the lines below that are having this problem.
    Apologies for the icons. I noticed them being inserted
    while previewing my post but didn't see a way to prevent this.
    Anyways, looking for expert help on the compile error.
    Thanks so much.
    -RW

    Unix version: SunOS ut51278 5.10 Generic_141444-09 sun4u sparc SUNW,SPARC-Enterprise
    Compiler version: CC: Sun C++ 5.11 SunOS_sparc 2010/08/13
    ============= BEGIN database.h ====================
    Code:
    #include <dbserver.h> 
    #include <dbstoredproc.h> 
    #include "dbsql.h" 
    class Database : public DBServer 
    { 
    public : 
    DBSql SQL( const char* sqlCmd ); 
    DBSql SQL( const std::string& sqlCmd ); 
    DBSql Table( const char* tableName ); 
    DBSql Table( const std::string& tableName ); 
    DBStoredProc storedProc( const char* spName ); 
    DBStoredProc storedProc( const std::string& tableName ); 
    }; 
    ============= END database.h ======================= 
    ============= BEGIN dbsql.h ========================= 
    #include <string> 
    #include "dbaccess.h" 
    #include "dbtable.h" 
    class DBSql : public DBAccess 
    { 
    public: 
    DBSql(DBServer *pServer,const char *sql) ; 
    DBSql(DBServer *pServer,const std::string& sql); 
    DBSql(DBSql& dbSql); 
    DBSql& operator=(DBSql& dbSql); 
    virtual DBTable getResultSet(); 
    protected: 
    DBSql(); 
    void init(DBServer *pServer,const std::string& sql); 
    }; 
    ============== END dbsql.h ========================= 
    ============== BEGIN database.cpp ==================== 
    #include <database.h> 
    #include "dbsql.h" 
    using namespace std; 
    DBSql Database::Table( const char* tableName ) 
    { 
    return Table( string( tableName ) ); <=== This line getting error... "Error: Cannot use DBSql to initialize DBSql." 
    } 
    DBSql Database::Table( const string& tableName ) 
    { 
    string sqlCmd = "select * from " + tableName; 
    return SQL( sqlCmd.c_str() ); <=== This line getting error... "Error: Cannot use DBSql to initialize DBSql." 
    } 
    DBSql Database::SQL( const char* sqlCmd ) 
    { 
    return DBSql(this,sqlCmd); <=== This line getting error... "Error: Cannot use DBSql to initialize DBSql." 
    } 
    DBSql Database::SQL( const string& sqlCmd ) 
    { 
    return SQL( sqlCmd.c_str() ); <=== This line getting error... "Error: Cannot use DBSql to initialize DBSql." 
    } 
    DBStoredProc Database::storedProc( const char* spName ) 
    { 
    return DBStoredProc( this, spName ); 
    } 
    DBStoredProc Database::storedProc( const std::string& spName ) 
    { 
    return DBStoredProc( this, spName ); 
    } 
    ============ END database.cpp ========================== 
    ============ BEGIN dbsql.cpp =========================== 
    #include "dbsql.h" 
    #include "dbcommon.h" 
    using namespace std; 
    using namespace ORACLE; 
    DBSql::DBSql(DBServer *pServer,const char* sql) 
    { 
    init(pServer,string(sql)); 
    } 
    DBSql::DBSql(DBServer *pServer,const string& sql) 
    { 
    init(pServer,sql); 
    } 
    DBSql::DBSql(DBSql& dbSql) 
    : DBAccess(dbSql) 
    { 
    } 
    DBSql& DBSql::operator=(DBSql& dbSql) 
    { 
    DBAccess::assign(dbSql); 
    return *this; 
    } 
    DBSql::DBSql() 
    { 
    } 
    void DBSql::init(DBServer *pServer,const string& sql) 
    { 
    execSQL(pServer,sql.c_str()); 
    } 
    DBTable DBSql::getResultSet() 
    { 
    DBTable result; 
    if(DBAccess::getResultSet(false)) 
    { 
    //In order to prevent DBAccess from closing the previous result set, pass false to 
    //getResultSet 
    result = DBTable(m_pStmt,m_pResultSet,true); // Pass true to DBTable to allow it 
    m_pStmt = NULL; // to control the statement. 
    } 
    m_pResultSet = NULL; 
    return result; 
    } 
    =========== END dbsql.cpp ==============================
     
    Last edited by a moderator: Apr 23, 2011
  2. rw123

    rw123 New Member

    Joined:
    Apr 23, 2011
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    Am reposting exact same code as above except with code tags for better readability.
    Just in case.
    Thanks.
    Code:
     
    ========================= BEGIN database.h ============================================ 
    #include <dbserver.h> 
    #include <dbstoredproc.h> 
    #include "dbsql.h" 
    class Database : public DBServer 
    { 
    public : 
    DBSql SQL( const char* sqlCmd ); 
    DBSql SQL( const std::string& sqlCmd ); 
    DBSql Table( const char* tableName ); 
    DBSql Table( const std::string& tableName ); 
    DBStoredProc storedProc( const char* spName ); 
    DBStoredProc storedProc( const std::string& tableName ); 
    }; 
    ========================= END database.h =============================================== 
    ========================= BEGIN dbsql.h ================================================ 
    #include <string> 
    #include "dbaccess.h" 
    #include "dbtable.h" 
    class DBSql : public DBAccess 
    { 
    public: 
    DBSql(DBServer *pServer,const char *sql) ; 
    DBSql(DBServer *pServer,const std::string& sql); 
    DBSql(DBSql& dbSql); 
    DBSql& operator=(DBSql& dbSql); 
    virtual DBTable getResultSet(); 
    protected: 
    DBSql(); 
    void init(DBServer *pServer,const std::string& sql); 
    }; 
    ========================= END dbsql.h ================================================== 
    ========================= BEGIN database.cpp =========================================== 
    #include <database.h> 
    #include "dbsql.h" 
    using namespace std; 
    DBSql Database::Table( const char* tableName ) 
    { 
    return Table( string( tableName ) ); <=== This line getting error... "Error: Cannot use DBSql to initialize DBSql." 
    } 
    DBSql Database::Table( const string& tableName ) 
    { 
    string sqlCmd = "select * from " + tableName; 
    return SQL( sqlCmd.c_str() ); <=== This line getting error... "Error: Cannot use DBSql to initialize DBSql." 
    } 
    DBSql Database::SQL( const char* sqlCmd ) 
    { 
    return DBSql(this,sqlCmd); <=== This line getting error... "Error: Cannot use DBSql to initialize DBSql." 
    } 
    DBSql Database::SQL( const string& sqlCmd ) 
    { 
    return SQL( sqlCmd.c_str() ); <=== This line getting error... "Error: Cannot use DBSql to initialize DBSql." 
    } 
    DBStoredProc Database::storedProc( const char* spName ) 
    { 
    return DBStoredProc( this, spName ); 
    } 
    DBStoredProc Database::storedProc( const std::string& spName ) 
    { 
    return DBStoredProc( this, spName ); 
    } 
    ========================= END database.cpp ============================================= 
    ========================= BEGIN dbsql.cpp ================================================ 
    #include "dbsql.h" 
    #include "dbcommon.h" 
    using namespace std; 
    using namespace ORACLE; 
    DBSql::DBSql(DBServer *pServer,const char* sql) 
    { 
    init(pServer,string(sql)); 
    } 
    DBSql::DBSql(DBServer *pServer,const string& sql) 
    { 
    init(pServer,sql); 
    } 
    DBSql::DBSql(DBSql& dbSql) 
    : DBAccess(dbSql) 
    { 
    } 
    DBSql& DBSql::operator=(DBSql& dbSql) 
    { 
    DBAccess::assign(dbSql); 
    return *this; 
    } 
    DBSql::DBSql() 
    { 
    } 
    void DBSql::init(DBServer *pServer,const string& sql) 
    { 
    execSQL(pServer,sql.c_str()); 
    } 
    DBTable DBSql::getResultSet() 
    { 
    DBTable result; 
    if(DBAccess::getResultSet(false)) 
    { 
    //In order to prevent DBAccess from closing the previous result set, pass false to 
    //getResultSet 
    result = DBTable(m_pStmt,m_pResultSet,true); // Pass true to DBTable to allow it 
    m_pStmt = NULL; // to control the statement. 
    } 
    m_pResultSet = NULL; 
    return result; 
    } 
    ========================= END dbsql.cpp ==================================================== 
    
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice