Я пытаюсь подключиться к удаленному серверу db2, используя мой код на c ++.Я могу подключиться к серверу db2, используя db2CLP для подключения к серверу.Я настроил db2cli, используя следующие команды:
db2cli writecfg add -dsn alias -database BLUDB -host hostname -port 50000
и даже проверил его, используя
db2cli validate -dsn alias -connect -user userid -passwd password
Я получаю код ошибки: Native Error Code = -1531 при использованиифункция
SQLConnect(hdbc,
(SQLWCHAR *)db1Alias,
SQL_NTS,
(SQLWCHAR *)user,
SQL_NTS,
(SQLWCHAR *)pswd,
SQL_NTS);
и без сообщений об ошибках.Кто-нибудь может указать, что я делаю что-то не так?
Я проверил коды ошибок на странице IBM и не нашел -1531 в ее списке.(https://www.ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/codes/src/tpc/db2z_n.html)
Вот фрагмент кода, который я использую: я взял это из примера раздела IBM (https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.apdv.sample.doc/doc/cli/s-dbconn-c.html)
#define DBC_HANDLE_CHECK(hdbc, cliRC) \
if (cliRC != SQL_SUCCESS) \
{ \
SQLWCHAR message[SQL_MAX_MESSAGE_LENGTH + 1]; \
SQLWCHAR sqlstate[SQL_SQLSTATE_SIZE + 1]; \
SQLINTEGER sqlcode; \
SQLSMALLINT length, i; \
i = 1; \
/* get multiple field settings of diagnostic record */
while (SQLGetDiagRec(SQL_HANDLE_DBC, \
hdbc, \
i, \
sqlstate, \
&sqlcode, \
message, \
SQL_MAX_MESSAGE_LENGTH + 1, \
&length) == SQL_SUCCESS) \
{ \
printf("\n SQLSTATE = %s\n", sqlstate); \
printf(" Native Error Code = %d\n", sqlcode); \
printf("Error Meassgaes:%s\n", message); \
i++; \
} \
printf("-------------------------\n"); \
if (rc != 0) return rc; \
}
/* allocate a database connection handle */
cliRC = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
ENV_HANDLE_CHECK(henv, cliRC);
printf("\n Connecting to the database %s ...\n", db1Alias);
/* connect to the database */
cliRC = SQLConnect(hdbc,
(SQLWCHAR *)db1Alias,
SQL_NTS,
(SQLWCHAR *)user,
SQL_NTS,
(SQLWCHAR *)pswd,
SQL_NTS);
DBC_HANDLE_CHECK(hdbc, cliRC);
Фактический результат
Native Error Code = -1531
Error Meassgaes:[
-------------------------
Ожидается: соединение должно быть установлено.