我正在尝试从Windows桌面连接到Red Hat Linux服务器上的Postgres数据库。我有" Postgres DB ODBC Driver 9.0.0"安装在我的Windows机器上。我使用以下代码。连接不成功。我想知道我的标题是否正常以及我的_szDSN字符串是否正常?
我使用了非常相似的代码来成功连接到我在桌面上创建的本地Access数据库。我还有" Microsoft Access数据库引擎2010"安装在我的桌面上。
如果需要更多信息来回答此问题,请与我们联系。谢谢你的帮助!
#include <iostream>
#include <string>
#include <Windows.h>
#include <sql.h>
#include <sqlext.h>
int main()
{
SQLHENV env;
SQLHDBC dbc;
SQLHSTMT stmt;
SQLRETURN rc;
//*** Connecting to remote PostgreSQL database
rc = SQLAllocEnv( &env );
rc = SQLAllocConnect( env, &dbc );
if( SQL_SUCCEEDED(rc) )
{
std::cout << "allocation successful" << std::endl;
}
std::string _szDSN = "DATABASE=dbname; SERVER=123.45.66.7; PORT=5432; UID=id123; PWD=pw123;";
rc = SQLDriverConnect( dbc, NULL, (unsigned char*)(_szDSN.c_str()), SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT );
if( SQL_SUCCEEDED(rc) )
{
std::cout << "Connection successful" << std::endl;
}
else
{
std::cout << "Connection UNsuccessful" << std::endl;
}
//*** Exit program
std::cout.flush();
std::getchar();
return 1;
}