1

VC++ で単純な MySQL db アプリケーションを構築しようとしていますが、わずかな問題が発生しました。

MySQL Connector C++ 1.1.0 と Visual Studio 2012 を使用しています (重要な場合はプレミアム)

// ConsoleApplication1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <sstream>
#include <memory>
#include <string>
#include <stdexcept>

/* MySQL Connector/C++ specific headers */
#include <driver.h>
#include <connection.h>
#include <statement.h>
#include <prepared_statement.h>
#include <resultset.h>
#include <metadata.h>
#include <resultset_metadata.h>
#include <exception.h>
#include <warning.h>

#include "mysql_driver.h"
#include "mysql_connection.h"

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

using namespace std;
using namespace sql;

int _tmain(int argc, char *argv[]){
    // I'm alive
    cout << "Hello World!" << endl;

    // necessary variables
    Driver *driver;
    Connection* con;
    Statement *stmt;
    ResultSet *res;
    /*PreparedStatement *prep_stmt;
    Savepoint *savept;*/

    //
    driver = get_driver_instance();

    // Connect to DB
    con = driver->connect("tcp//127.0.0.1:3306", "root", "root");

    // 
    con->setAutoCommit(false);

    // set schema
    con->setSchema("world");

    // create statement object
    stmt = con->createStatement();

    // alert user
    cout << "Executing query: \"SELECT * FROM city\"" << endl;

    // execute query "SELECT * FROM city"
    res = stmt->executeQuery("SELECT * FROM city");

    // alert user
    cout << "\tRetrieved " << res->rowsCount() << " row(s)." << endl;

    // fetch data
    while(res->next()){
        cout << res->getString("Name") << endl;
    }

    system("pause");

    // Clean up
    delete res;
    delete stmt;
    /*delete prep_stmt;*/
    con->close();
    delete con;

    return 0;
} // end main

これをデバッグ モードで Win32 コンソール アプリケーションとしてビルドし、構成を x64 に変更し、mysqlcppconn.dll を出力ディレクトリに移動しました。コードは正しくビルドされています (* 必要なインクルード ディレクトリと追加のライブラリの依存関係/関連パスを正しく追加したと思います)。ただし、実行しようとすると、次のデバッグ出力が表示されます。

'ConsoleApplication1.exe' (Win32): Loaded 'C:\Users\RBanerjee\Documents\Visual Studio 2012\Projects\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Symbols loaded.
'ConsoleApplication1.exe' (Win32): Loaded 'C:\Users\RBanerjee\Documents\Visual Studio 2012\Projects\ConsoleApplication1\x64\Debug\mysqlcppconn.dll'. Cannot find or open the PDB file.
'ConsoleApplication1.exe' (Win32): Loaded 'C:\Windows\System32\libmysql.dll'. Module was built without symbols.
'ConsoleApplication1.exe' (Win32): Unloaded 'C:\Windows\System32\libmysql.dll'
'ConsoleApplication1.exe' (Win32): Loaded 'C:\Windows\System32\libmysql.dll'. Module was built without symbols.
'ConsoleApplication1.exe' (Win32): Unloaded 'C:\Windows\System32\libmysql.dll'
The program '[4172] ConsoleApplication1.exe' has exited with code -1073741701 (0xc000007b).

次に何をすべきか少し迷っています。MySQL データベースに接続して対話できる Windows アプリケーションを開発できるようになりたいだけです。この問題に関するヘルプまたは他のチュートリアルへのポインタをいただければ幸いです。

ありがとうロヒット

4

0 に答える 0