Подтвердить что ты не робот

Извлекать необработанный SQL-запрос из файла Crystal Reports.rpt

У меня есть файл .rpt, который я не писал и не могу найти документацию. Я хочу, чтобы иметь возможность просматривать SQL, который создается из этого отчета, чтобы я мог выяснить, какие данные он извлекал, и какие параметры предложения WHERE были использованы.

Я могу открыть его и посмотреть макет отчета. Но когда я выбираю Database | Show SQL Query..., отчет пытается подключиться к источнику данных. Проблема в том, что используемый источник данных неизвестен мне, возможно, ODBC-соединение, используемое тем, кто написал запрос. Все, что я могу сделать на этом этапе, это "Отмена", и я снова обратился к дизайнеру отчета.

Я что-то упустил? Могу ли я получить SQL-запрос без подключения к источнику данных? Кажется, что просмотр критериев выбора не должен зависеть от подключения к данным.

Спасибо.

версия: Crystal Reports 2008

4b9b3361

Ответ 1

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

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

Мы столкнулись с той же проблемой, но решение на самом деле довольно просто. Если у вас нет доступа к исходному источнику данных, просто создайте новый "пустой" источник данных (например, соединение ODBC). Пока соединение с источником данных работает (т.е. Это какой-то действительный источник данных, он работает нормально). При запуске опции "Показать SQL" укажите отчет на этот источник данных. Пока вы не пытаетесь запустить отчет (и только показывать SQL), операция не завершится. В любом случае это работало на нашу ситуацию. (Crystal Reports 2008)

(Я могу дать более подробную информацию, если это поможет в любом случае.)

Ответ 2

Должно быть возможно узнать некоторые сведения о существующем источнике данных, выбрав Database > Set Datasource Location....

Кроме того, чтобы вы могли изменить местоположение источника данных, это должно показать вам некоторую информацию о текущем источнике данных, например, какой тип источника данных используется и, возможно (в зависимости от типа драйвера) имя базы данных, Скорее всего, это будет менее полезно, если (как вы предполагаете) источник данных ODBC, но если он использует собственный драйвер, может быть что-то полезное.

Ответ 3

Без пароля я не уверен, сколько вы можете сделать. Кажется, что "Показать SQL-запрос" требует отчета для запуска в первую очередь, а затем создания плана SQL.

Это не идеально, но вы можете пойти в базу данных > Visual Linking Expert, чтобы хотя бы увидеть таблицы и то, как они объединены, и перейти к редактору формул выбора записей и посмотреть, что представляют собой пользовательские инструкции WHERE.

Ответ 4

Просмотр SQL команды в файле отчета Crystal

Есть моменты, когда у вас есть только файл отчета, но не связанная с ним структура базы данных, используемая в отчете. Это часто встречается при рассмотрении отчетов о функциях, которые вы хотите имитировать. Это обходное решение ТОЛЬКО, чтобы вы могли видеть SQL команды, на основе которой основан Crystal Report, когда у вас нет базового соединения с базой данных, на котором основан отчет. По сути, диалоговое окно должно быть удовлетворено до того, как оно покажет SQL, поэтому мы обманываем его законным источником данных, а не тем, который будет работать с SQL, который фактически находится в команде SQL.

Почему в отчете используется команда? Разве Crystal Reports не имеет возможности связывать таблицы? Когда Crystal Report основан на наборе записей, который является слишком сложным для функции связывания таблицы в Crystal Reports, отчет может быть основан на SQL Query, обычно разработанном/протестированным в другом инструменте редактора и вставляемом в команду. Это позволяет использовать расширенные функции SQL.

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

Достаточно простого файла Microsoft Access.mdb, сохраненного в простом месте. Я поместил мой путь C:\A_test\test.mdb, чтобы было легко найти. Если у вас его нет, зайдите в файл образца mdb и загрузите его, сохранив его с именем и местоположением, которое вы можете запомнить. (Вы никогда не откроете этот файл, а просто подключитесь к нему.) После сохранения файла откройте Администратор ODBC и создайте новый источник данных. (вы можете быстро добраться до администратора ODBC из "Пуск" > "Тип ODBC в поиске" ) На вкладке User DSN нажмите кнопку "Добавить". Прокрутите список драйверов до Microsoft Access Driver (*.mdb), выберите его и нажмите кнопку "Готово". В поле Имя источника данных введите имя (я использовал MyTest). Нажмите кнопку "Выбрать" и выберите файл mdb, сохраненный на предыдущем шаге, нажмите "ОК". Еще раз нажмите OK. Вы увидите, что ваш новый источник данных указан по имени, которое вы ему дали. Нажмите "ОК". Теперь у вас есть источник данных, который вам понадобится для следующих шагов.

  • Откройте Crystal Report, для которого вы хотите увидеть команду SQL, и нажмите кнопку "Эксперт базы данных" или "База данных" > "Экспертное меню базы данных".
  • В выбранных таблицах щелкните правой кнопкой мыши на Command и выберите команду View
  • Появится окно выбора источника данных. Выберите источник данных, который вы создали (или тот, который вы уже используете), и нажмите кнопку "Готово". Поле View Command должно открыться SQL с левой панели. Скопируйте SQL в свой любимый текстовый редактор.