Информация об изменениях

Сообщение Re: как соединиться без DSN, x64? от 22.12.2016 18:15

Изменено 22.12.2016 18:42 AlexGin

Здравствуйте, уважаемый gok, Вы писали:

gok>начало здесь
Автор: Olaf
Дата: 20.12.16

gok>получаю странное исключение от CDBException:
gok>Database error: Data source name not found and no default driver specified.
gok>х86 версия работает нормально.
gok>исходный проект
gok>Пользовал этот драйвер, как он показывается в ODBC DSN (х64) диалоге:
gok>CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb,*.accdb)";
gok>Windows 10, x64, Access 2016
gok>Что не хватает?

Не хватает — правильного решения для работы с БД.
Так как MFC совсем не дружит с БД, то самое верное: применять ту библиотеку, которая всё это реализует без MFC.
Мы обычно применяем OTLv4 для всех наших MFC проектов:

http://otl.sourceforge.net/otl3.htm#toc
http://otl.sourceforge.net/otl3_compile.htm
http://otl.sourceforge.net/otl3_examples.htm

Библиотека очень удобная и легкая, в отличие от монстроидальных классов MFC для работы с БД.
Представлена библиотеке — в виде одного заголовочного файла, компилируется — под какую угодно БД (но, естественно для Windows).
Работать с ODBC для MS SQL Server с этой библиотекой — легко и приятно.
Если что нужно — спрашивайте здесь (скину примеры)!

P.S. Вообше-то правильнее было бы именно работать через ODBC-DSN источник данных, а не пытаться уйти от него.
Если у Вас несколько БД, то создайте несколько ODBC-DSN источников (по каждому для соответствуюшей базы).
Здравствуйте, уважаемый gok, Вы писали:

gok>начало здесь
Автор: Olaf
Дата: 20.12.16

gok>получаю странное исключение от CDBException:
gok>Database error: Data source name not found and no default driver specified.
gok>х86 версия работает нормально.
gok>исходный проект
gok>Пользовал этот драйвер, как он показывается в ODBC DSN (х64) диалоге:
gok>CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb,*.accdb)";
gok>Windows 10, x64, Access 2016
gok>Что не хватает?

Не хватает — правильного решения для работы с БД.
Так как MFC совсем не дружит с БД, то самое верное: применять ту библиотеку, которая всё это реализует без MFC.
Мы обычно применяем OTLv4 для всех наших MFC проектов:

http://otl.sourceforge.net/otl3.htm#toc
http://otl.sourceforge.net/otl3_compile.htm
http://otl.sourceforge.net/otl3_examples.htm

Библиотека очень удобная и легкая, в отличие от монстроидальных классов MFC для работы с БД.
Представлена библиотеке — в виде одного заголовочного файла, компилируется — под какую угодно БД (но, естественно для Windows).
Работать с ODBC для MS SQL Server с этой библиотекой — легко и приятно.
Если что нужно — спрашивайте здесь (скину примеры)!

Здесь очень простая connection string (не надо возиться с MFC-строкой соединения):
пример строки:
sa/12345@ODBCDSNName
где:
"sa" — это логин (стандартный для MS SQL Server)
12345 — это пароль
ODBCDSNName — имя ODBC источника данных.

P.S. Вообше-то правильнее было бы именно работать через ODBC-DSN источник данных, а не пытаться уйти от него.
Если у Вас несколько БД, то создайте несколько ODBC-DSN источников (по каждому для соответствуюшей базы).