2011-12-09 15 views
3

私はmysql.comのWebサイトからC++のMySQLの例を実行しようとしています。get_driver_instance()によってstd :: bad_allocがスローされるのはなぜですか?

#define DBHOST "tcp://127.0.0.1:3306/" 
#define USER "root" 
#define PASSWORD "" 

//... 

string url(DBHOST); 
const string user(USER); 
const string password(PASSWORD); 
const string database(DATABASE); 

try { 
    driver = sql::mysql::get_driver_instance(); 

    /* create a database connection using the Driver */ 

    con = driver->connect(url, user, password); 

私が取得:

First-chance exception at 0x75c99673 in DBTest.exe: Microsoft C++ exception:  std::bad_alloc at memory location 0x0027f1ec.. 
First-chance exception at 0x75c99673 in DBTest.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0027eb78.. 
First-chance exception at 0x75c99673 in DBTest.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000.. 
Unhandled exception at 0x75c99673 in DBTest.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0027eb78.. 
The program '[1236] DBTest.exe: Native' has exited with code -529697949 (0xe06d7363). 

... driver->connect(...)で。私はそれをconに割り当てずに試してみましたが、同じことが(意味問題はget_driver_instance()にあります)?

+0

は、あなたが 'にmysql_init()'電話したために働いていましたか? (または、C++ APIの同等のもの、私はC言語のみを知っています) –

+0

問題を再現できる実際のテストケースを投稿してください。あなたのスニペットは有効なC++プログラムではありません。また、質問のタイトルには質問が記載されていません。 –

+0

多くのコードを書いていない場合は、ライブラリを[Poco :: Data :: MySql](http://pocoproject.org/docs/)に変更することをお勧めします。 –

答えて

0

それは少し遅いですが、この問題を解決するために、私はこれを試してみましたが、それは私

sql::mysql::Driver *driver = get_driver_instance(); 

const sql::SQLString host = "tcp://127.0.0.1:3306"; 
const sql::SQLString user = "root"; 
const sql::SQLString pass = "*****"; 

sql::mysql::Connection *con = driver->connect(host, user, pass); 
関連する問題