Я получаю код ошибки SQL -4903 при попытке подключиться к базе данных DB2 с помощью кода SQC (это приложение ANSI C, поэтому мне нужно использовать SQC для запросов SQL).Когда я смотрю на веб-сайт IBM, чтобы понять, что означает -4903, все, что он говорит, это «Длина параметра n имени функции недопустима».Однако я понятия не имею, на какой параметр или функцию он ссылается.Я пытался просмотреть элементы объектов SQLCA, но не вижу их в Visual Studio 2015.
Это отладка приложения ANSI C в Visual Studio 2015. Я могу подключиться к той же базе данных, используякомандную строку DB2 (т. е. с помощью команды «db2 connect to dbname user username используя пароль». Однако, когда я пытаюсь сделать это в коде, я получаю ошибку -4903. Я также пробовал это делать на двух разных ОС, Windows 7 и Windows10. У меня есть коллеги, у которых не было проблем с этим на компьютере с Windows 7.
while ((retry++ < 3)
|| (sqlca.sqlcode == -30080)
|| (sqlca.sqlcode == -900 ) )
{
EXEC SQL CONNECT TO :DBName USER :userid USING :pword;
if ((SQLCODE == 0 ) || (SQLCODE == (-1026)))
{
return(1);
}
else
{
dbLogAudit(KLCB, PLCB, KLLOGSEV(T),
"Retry DBInit/sqlca.sqlcode : %i", sqlca.sqlcode);
}
}
Я ожидаю, что SQLCODE будет 0, что указывает на успешное соединение, и функция вернет 1 к немувызывающая программа. Но вместо этого переменная sqlca.sqlcode имеет значение -4903 (что я описал выше).
РЕДАКТИРОВАТЬ: я нашел параметры, передаваемые в сообщение об ошибке. Полный текст ошибки: «Длина параметра runtime_pidфункция sqlastrt_trusted недействительна ".