DSN - очень полезные вещи. Я могу настроить DSN так, чтобы он указывал на базу данных разработки, а когда я закончу разработку, просто перенастрою его, чтобы он указывал на производственную базу данных, и все готово. Нет необходимости вносить какие-либо изменения в мою программу или ее конфигурацию.
Но если я создаю отчет Crystal Reports XI с использованием соединения ODB C и указываю конкретный DSN, CR просматривает DSN, чтобы найти имя текущей базы данных и использует это имя в своих запросах. Если я изменю базу данных, на которую указывает DSN, в отчете будет использоваться старая база данных. Например, у меня есть DSN с именем «WinCaps», который указывает на базу данных с именем «Anneal». Я создал отчет и предоставил строку подключения типа «DSN = WinCaps; user = caps; passwd = xyz» (синтаксис может быть несовершенным). Затем мне было предложено ввести имя хоста, имя пользователя и пароль, которые были предоставлены в DSN и не должны были быть необходимыми. Я сохранил отчет и закрыл его, а затем изменил DSN, чтобы он указывал на базу данных с именем «Worthington HS Control». Я снова открыл отчет и выбрал «Показать SQL запрос». Я видел, что запрос выбирал данные из базы данных Anneal. Есть ли способ изменить это поведение? Последняя версия CR ведет себя так же?