是否可以从 C++ 代码中的 mysql 函数 return 连接对象?
Is it possible to return the connection object from mysql function in C++ code?
错误:‘sql’没有命名类型
sql::Connection connect_mysql();
有没有办法可以 return 从这个函数中获取连接对象?
我知道 return C 中的连接对象,但在 C++ 中没有。
编辑版本: return 类型 connect_mysql() 已更改为 sql::Connection * 。之前是 sql::Connection.
#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","Aricent@123");
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;
}
那不是对象,是指针。试试这个
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;
行中使用相同的类型是可以的。如果您还有任何其他错误消息或警告,请 post 那些。
无需说明,为了获得有关编译器错误消息的帮助,您应该 post 确切的代码、确切的错误消息以及所有这两者。
我不是 mysql 方面的专家,但我想知道您是否需要头文件 #include <cppconn/connection.h>
错误:‘sql’没有命名类型
sql::Connection connect_mysql();
有没有办法可以 return 从这个函数中获取连接对象?
我知道 return C 中的连接对象,但在 C++ 中没有。
编辑版本: return 类型 connect_mysql() 已更改为 sql::Connection * 。之前是 sql::Connection.
#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","Aricent@123");
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;
}
那不是对象,是指针。试试这个
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;
行中使用相同的类型是可以的。如果您还有任何其他错误消息或警告,请 post 那些。
无需说明,为了获得有关编译器错误消息的帮助,您应该 post 确切的代码、确切的错误消息以及所有这两者。
我不是 mysql 方面的专家,但我想知道您是否需要头文件 #include <cppconn/connection.h>