Member 13872723 Ответов: 1

Указание источника данных в ODBC для функции функция sqlconnect


Сборка Unicode.

Я сейчас пытаюсь

std::wstring dsn(L"dailyworkbook");
РЦ = SQLConnectW(ConHandle, (SQLWCHAR*)ДСН.c_str(), уведомления о доставке.длина(), (SQLWCHAR*)л"", значение sql_nts, (SQLWCHAR*)л"", значение sql_nts);

Программа компилируется, но во время выполнения происходит нарушение доступа. Если я заменю dsn.length() на 3/10/3000(любое сумасшедшее значение), нарушение не произойдет, но ODBC сообщает о недопустимой длине строки или буфера. Если я заменю dsn.length() на SQL_NTS/length() что угодно, я получу нарушение доступа.

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

Отладка в Visual studio. Также занимаюсь этим на Codeproject со вчерашнего дня.

Jochen Arndt

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

Кроме того, другие читатели этого вопроса обычно не знают о предыдущем и могут повторить уже данные ответы.

Если у вас есть дополнительная или новая информация, отредактируйте свой первоначальный вопрос, используя зеленую ссылку "улучшить вопрос", указывающую, что вы добавили или изменили (например, поместив новый контент между текстовыми маркерами "[EDIT]" и "[/EDIT]").

Richard Deeming

Не забудьте сообщить о репостах как таковых, используя красный флаг на этом вопросе. :)

(Мой доклад был первым.)

Jochen Arndt

Я надеялся, что он поймет это и удалит его.

1 Ответов

Рейтинг:
2

Mike V Baker

Я нашел образец здесь и Серхио использует SQL_NTS вместо того, чтобы пытаться указать определенную длину для DSN. Вы пробовали это сделать?
У меня есть вопрос по этому поводу, я уже давно вышел из C++. Нужно ли указывать W разновидность всего? Если вы используете SQLConnect, то он будет использовать любой вариант, подходящий для сборки, не так ли?

ХТХ,
Майк