2017-04-05 87 views
0

我試圖將SOCI庫連接到我的數據庫,但繼續在我的VS編譯器輸出上收到此錯誤。SOCI ODBC連接錯誤

我的代碼是:

{ 
    try 
    { 
    backend_factory const& backEnd = odbc; 
    std::string const & connectString = "DSN=CVD_SQL_connection_2016b_64bit"; 
    session sql(backEnd, connectString); 

    } 
    catch (const std::exception& e) 
    { 

    cerr << e.what(); 
    } 

    return 0; 
} 

的錯誤警告如下:

enter image description here

是否有人可以指導我什麼,我做錯了什麼?

+0

我也看着我們需要SQLDriverConnect但看起來無法理解。有人能給我一個例子嗎? –

+0

關於如何設置編譯器開關_CRT_SECURE_NO_WARNINGS的搜索堆棧溢出。這裏有很多問題和答案。 – acraig5075

+0

我已經添加到預處理器。我的問題是,我不太確定我需要設置什麼參數來連接到我的ODBC ms_sql。網站指南如下[鏈接](http://soci.sourceforge.net/doc/3.2/backends/odbc.html)。你能幫我解決這個問題嗎?我很抱歉,因爲它似乎很簡單,但我似乎無法遵循。 –

回答

0

您可以使用

#define _CRT_SECURE_NO_WARNINGS 

#pragma warning(disable : 4996) 

取消此警告。

或使用:

#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 

讓編譯器與strcpy_s()自動爲您更換strcpy()。見here for more


要連接到ODBC,你可以使用一個connection_parameters對象通過連接的詳細信息如下:

connection_parameters parameters("odbc", "DSN=CVD_SQL_connection_2016b_64bit"); 
parameters.set_option(odbc_option_driver_complete, "0"); 
session sql(parameters); 

不要忘了包括soci-odbc.h