001
03.12.2007, 09:46 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft... (Operator)
|
Hab ich noch nicht verstanden. Willst du nun einen Zeiger oder eine Referenz auf einen Zeiger übergeben....
ich mache das in etwa immer in der Art
C++: |
#ifndef DB_INTERFACE_H #define DB_INTERFACE_H
//#include "afxwin.h" //#include "winsock2.h" #include "mysql.h"
#include <vector> #include <string>
class DBInterface{
public:
DBInterface(std::string host, std::string user, std::string passwd, std::string db); ~DBInterface(); int selectquery(std::string cmd, std::vector<std::vector<std::string> > & queryresult);
private: bool error; char*** queryresult;
public: MYSQL *connection;
};
#endif
|
C++: |
#include "DBInterface.h" DBInterface::DBInterface(std::string host, std::string user, std::string passwd, std::string db){
error=false;
// initialerror if(!(connection=mysql_init(NULL))) error=true; //connecterror if(!(connection=mysql_real_connect(connection, host.c_str(), user.c_str(), passwd.c_str(), db.c_str(), 0, NULL, 0))) error=true;
}
DBInterface::~DBInterface(){mysql_close(connection);}
int DBInterface::selectquery(std::string cmd, std::vector<std::vector<std::string> > & queryresult){
size_t i,j; size_t num_rows, num_fields;
MYSQL_RES *result; MYSQL_ROW row;
mysql_query(connection,cmd.c_str()); result=mysql_store_result(connection); num_fields=mysql_num_fields(result); num_rows=mysql_num_rows(result);
queryresult.resize(num_rows); for(j=0;j<num_rows;j++){ queryresult[j].resize(num_fields); } for(j=0;j<num_rows;j++){ row=mysql_fetch_row(result); for(i=0;i<num_fields;i++){ queryresult[j][i]=row[i]; } } mysql_free_result(result);
return num_rows;
}
|
-- ...fleißig wie zwei Weißbrote Dieser Post wurde am 03.12.2007 um 09:47 Uhr von Windalf editiert. |