2017-10-08 2 views
-1

VS2013を使用してmySQLテーブルからDATETIME値を読み取ることができません。C++でmySQL DATETIME値を取得する

sql::mysql::MySQL_Driver* m_driver; 
sql::Connection* m_conn; 
sql::Statement* m_stmt; 
sql::ResultSet* m_res; 

m_driver = sql::mysql::get_driver_instance(); 
m_conn = m_driver->connect(ch_hostName, ch_userName, ch_pwd); 

m_stmt = m_conn->createStatement(); 
m_res = m_stmt->executeQuery("select tip, id1, datum from recordLocker where id1 = 'A0001' and tip = 1"); 

try 
{ 
    m_res->getString("datum"); 
} 
catch (sql::SQLException& e) 
{ 
    TRACE1("\nSQL Error %d\n", e.getErrorCode()); 
} 

私は、 "SQLエラー0" をgetingてる
:私は、MySQLコネクタ-1.1.9-win32のを使用してい
(mysqlcppconn.lib)ここで

this is the row containing the datas

は私のコードです私も試みた:同じエラーコードで

m_res->getInt64("datum"); 
m_res->getUInt64("datum"); 

(m_resが空ではありません)。

ありがとうございます!

+0

'DATETIME'は、文字列、また整数値でもありません。 – user0042

+0

sql :: ResultSetにgetDateTime()関数がありません。これは私の問題です – janos

答えて

0

コネクタをmysql-5.7.19-win32に変更しました。
このコネクタは、文字列形式のすべての列を返します。これらの列は、整数、倍精度、または倍精度に変換できます。

はここに私のコードです:

MYSQL* m_sql; 
MYSQL* m_conn; 

mysql_init(m_sql) 
m_conn = mysql_real_connect(m_sql, ch_Host, ch_User, ch_Pwd, ch_Db, 0, 0, 0); 

mysql_query(m_conn, "select * from recordLocker"); 

MYSQL_RES* m_res = mysql_use_result(m_conn); 

MYSQL_ROW m_row; 

while(m_row = mysql_fetch_row(m_res)) 
{ 
    CString szDate = CString(mysqlRow[6]); 
    //szDate is in the following format "YYYY-mm-dd hh:mm:ss.000000" 
} 
関連する問題