adityarao31 Ответов: 1

Sqldriverconnect не возвращает строку outconnection


RETCODE rc1 = SQLDriverConnect(m_hConnect, hWnd, (_TUCHAR*)(LPCTSTR)sConnect, SQL_NTS,szFullConnect, sizeof szFullConnect, &avail, prompt);


В приведенной выше инструкции кода C++ предполагается, что szFullConnect возвращает строку подключения
который используется в программе.Но в моем коде в одном месте это идет как мусор
персонажи.Может ли кто-нибудь помочь мне, пожалуйста, решить эту проблему.

Что я уже пробовал:

Я много гуглил но не могу найти конкретной помощи

Richard MacCutchan

Поскольку мы понятия не имеем, какие исходные данные обрабатываются, невозможно узнать, какие фактические символы должны быть возвращены, и мы не можем видеть то, что видите вы. Вы уверены, что не просто смешиваете ASCII и Unicode?

adityarao31

На самом деле строка подключения, возвращаемая функцией, используется для подключения базы данных

Richard MacCutchan

Мы это знаем. Что нам нужно знать, так это фактическое определение всех переменных, которые используются в вашем вызове SQLDriverConnect, и фактическое содержание данных любого, содержащего исходные данные. Пожалуйста, отредактируйте свой вопрос с помощью этой информации, а также символов, которые вы видите по возвращении.

1 Ответов

Рейтинг:
1

KarstenK

Наиболее распространенной причиной является несоответствие типа символа в строковых параметрах.

Использование данных sqlchar по всем параметрам и создать или корректно их. В зависимости от настроек вашего компилятора вам может понадобиться функция преобразования. Приведение типа может нет хватить.

кстати: два типа приведения по одному параметру-это сильный намек на то, что есть что-то очень подозрительное ;-)


adityarao31

szFullConnect я определил только как SQLCHAR