2015-09-03 49 views
-1

错误:'sql'未命名类型 sql :: Connection connect_mysql(); 有没有办法可以从这个函数返回连接对象? 我知道在C中返回连接对象,但不在C++中发生。
编辑版本:connect_mysql()的返回类型已更改为sql :: Connection *。早些时候它是sql :: Connection。是否有可能从C++代码中的mysql函数返回连接对象?

#include <iostream> 
#include <fstream> 
#include <stdlib.h> 
#include <string.h> 
#include<mysql/mysql.h> 
#include<cppconn/driver.h> 
#include<cppconn/exception.h> 
#include<cppconn/resultset.h> 
#include<cppconn/statement.h> 
sql::Connection * connect_mysql();  


     int main() 
     { 
      sql::Connection *con; 
      con = connect_mysql(); 
      return 0; 
     } 



     sql::Connection * connect_mysql() 
     { 
      cout << "CONNECTING DATABASE..............."<<endl; 
      try{ 
        cout<<"inside try while connecting to mysql"<<endl; 
        sql::Driver *driver; 
        sql::Connection *con; 
        sql::Statement *stmt; 
        sql::ResultSet *res; 
        driver = get_driver_instance(); 
        con = driver->connect("localhost","root","[email protected]"); 
        con->setSchema("COE");        
        stmt = con->createStatement();       
        res = stmt->executeQuery("show tables"); 
        while(res->next()) 
        { 
          cout<<"MYSQL replies:"<<endl; 
          cout<<res->getInt(1); 
          cout<<res->getString(1)<<endl; 
        } 
      } 
     catch(exception e) 
      { 

        cout << "# ERR: SQLException in " << __FILE__;     
        cout << "# ERR: "; 
        cout << " (MySQL error code: "; 
        cout << ", SQLState: "; 
      } 
      return con; 
     } 

回答

1

这不是一个对象,它是一个指针。试试这个

sql::Connection* connect_mysql() 
{ 
    ... 
} 

另一个错误是缺少原型connect_mysql。你应该有这样的事情

sql::Connection* connect_mysql(); // prototype 

    int main() 
    { 
     sql::Connection *con; 
     con = connect_mysql(); 
     ... 

但什么是混淆了我关于你的错误信息是,它指的是线路sql::Connection* connect_mysql()但显然使用相同类型的线sql::Connection *con;正常。如果您还有其他错误消息或警告,请将其发布。

它不应该指出,为了帮助编译器错误消息,你应该发布确切的代码,确切的错误消息,以及所有这些。

我不是MySQL的专家,但我不知道,如果你需要一个头文件#include <cppconn/connection.h>

+0

没错,但错误的是更基本的:'错误:“SQL”没有指定类型的SQL ::连接connect_mysql ();'。 – juanchopanza

+0

建议更改后,我收到此错误: 错误:'sql'不会命名一个类型 sql :: Connection * connect_mysql(); –

+0

@ShreyasBhargav您的代码中没有使用任何头文件。那就是问题所在。 – john

相关问题