2016-12-08 8 views
0

を出力... 関数が別の関数からの入力を受け取りMySQLのC++コネクタは、常に私はMySQLのテーブルからの出力に行をプログラムを記述しようとしていますし、それが常に同じものを出力し、同じ文字列

C++

try { 
    sql::Driver *driver; 
    sql::Connection *con; 
    sql::Statement *stmt; 
    sql::ResultSet *res; 

/* Create a connection */ 
driver = get_driver_instance(); 
con = driver->connect("tcp://127.0.0.1:3306", "root", "TSA!"); 
/* Connect to the MySQL test database */ 
con->setSchema("main"); 

stmt = con->createStatement(); 
stmt->execute("CALL getData('" + quest1 +"', @ans)"); 
res = stmt->executeQuery("SELECT @ans AS _message"); 
while (res->next()) { 
    cout << "Answer: "; 
    /* Access column data by alias or column name */ 
    cout << res->getString("_message") << endl; 
} 
delete res; 
delete stmt; 
delete con; 
} 

このエラーメッセージは、このプログラムによってトリガされません。

MySQLの

CREATE DEFINER=`root`@`localhost` PROCEDURE `getData`(IN info MEDIUMTEXT, 
OUT datas MEDIUMTEXT) 
BEGIN 
    SELECT `answer` from `approved` WHERE `Question` = info into datas; 
END 

テーブル: 質問|回答 テスト|テスト test2 | test2

プログラムは常に「テスト」のみを出力します これを修正するにはどうすればよいですか?

+0

出力してください: 'cout << quest1;'あなたが送るparamが何であるかを確認してください。 – Alex

答えて

0

文字列にcinではなく、cin.getlineを使用して入力された文字をユーザーから取得して修正しました。

私は問題と思われるcinで既存のバッファをクリアすることができます。