2016-02-17 2 views
1

Я использую Crystal Reports 2008 с SQL Server 2014.Crystal Reports создание временной таблицы с SQL Server

Я читал в Интернете, что это было возможно создать временную таблицу с Crystal Reports. Эта ссылка говорит, что один из многих примеров ->Click here

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

CREATE TABLE #temp_test (col1 VARCHAR(5)) 

Я получаю эту ошибку

enter image description here

Перевод: ошибка подключения

базы данных: «N o сообщение об ошибке с сервера '

Однако, когда я делаю это с SQL Server в своей базе данных, все в порядке.

Вам удалось это сделать? Если да, то как?

Это звучит как городская легенда для меня, но я могу ошибаться ...

Приветствия

+1

Вы создаете временную таблицу в отчетах о кристаллах или в базе данных? – Siva

+0

Привет @Siva, пытаясь сделать это на CR –

ответ

1

При создании таблицы «Command» в кристалле, вы даете кристалл набор текста, отправьте на сервер SQL, а Crystal ожидает набор данных в ответ. Все между ними выполняется на сервере SQL. Crystal проверяет команду, отправляя ее на SQL-сервер, когда вы вводите ее, чтобы узнать, работает ли она.

Учитывая, что ваша временная таблица фактически создана на сервере SQL. Кроме того, когда вы создаете временную таблицу, она удаляется после завершения выполнения команды.

В результате, если вы используете только этот код, SQL-сервер создаст таблицу, но нет набора данных для возврата. Он преуспевает, поэтому не возвращает ошибку, но также не возвращает данные, поэтому сообщение: «Нет сообщения об ошибке с сервера».

Для вашего следующего шага я предложил бы использовать такой код:

CREATE TABLE #temp_test (col1 VARCHAR(5)) 
SELECT * FROM #temp_test 

Это создаст пустой набор данных для возврата в кристалл, так что он получает ответ он нуждается. Я говорю это так, чтобы вы не думали, что что-то не так, когда вы ничего не видите. Вам нужно будет вставить данные в таблицу temp, чтобы получить ее из оператора select для визуального подтверждения.

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

+0

Вы очень хорошо осведомлены. Благодаря :) –