/ / Crystal Reports, das temporäre Tabelle mit SQL Server erstellt - SQL-Server, TSQL, Crystal Reports

Crystal Reports erstellt eine temporäre Tabelle mit SQL Server - sql-server, tsql, crystal-reports

Ich verwende Crystal Reports 2008 mit SQL Server 2014.

Ich habe im Internet gelesen, dass mit Crystal Reports eine temporäre Tabelle erstellt werden konnte. Dieser Link sagt das, eines von vielen Beispielen -> Klick hier

Wenn ich jedoch zum Datenbankexperten gehe, erstellen Sie einen neuen Befehl und geben Sie die folgende DDL ein

 CREATE TABLE #temp_test (col1 VARCHAR(5))

Ich bekomme diesen Fehler

Bildbeschreibung hier eingeben

Übersetzung:

Datenbank-Connector-Fehler: "Keine Fehlermeldung vom Server"

Wenn ich das mit SQL Server in meiner Datenbank mache, ist alles in Ordnung.

Hast du es geschafft? Wenn ja wie

Es klingt für mich wie eine urbane Legende, aber ich könnte mich irren ...

Prost

Antworten:

1 für die Antwort № 1

Wenn Sie in Crystal eine "Command" -Tabelle erstellen,Sie geben Crystal einen Textsatz zum Senden an den SQL-Server, und Crystal erwartet einen Datensatz als Gegenleistung. Alles dazwischen wird auf dem SQL-Server ausgeführt. Crystal überprüft den Befehl, indem es ihn beim Eingeben an den SQL-Server sendet um zu sehen, ob es funktioniert.

Vorausgesetzt, Ihre temporäre Tabelle wird tatsächlich auf dem SQL Server erstellt. Wenn Sie eine temporäre Tabelle erstellen, wird diese gelöscht, nachdem der Befehl ausgeführt wurde.

Wenn Sie nur diesen Code verwenden, wird die SQL-Anweisung ausgeführtDer Server erstellt die Tabelle, es ist jedoch kein zurückzugebender Datensatz vorhanden. Es ist erfolgreich, gibt also keinen Fehler zurück, gibt aber auch keine Daten zurück, daher die Meldung: "Keine Fehlermeldung vom Server".

Für Ihren nächsten Schritt würde ich vorschlagen, Code wie diesen zu verwenden:

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

Dadurch wird ein leerer Datensatz erstellt, zu dem Sie zurückkehren könnenCrystal, damit es die Antwort erhält, die es benötigt. Ich sage dies, damit Sie nicht glauben, dass etwas nicht stimmt, wenn Sie nichts sehen. Sie müssen Daten in die temporäre Tabelle einfügen, um es zu erhalten aus der select-Anweisung zur visuellen Bestätigung.

Ich würde auch vorschlagen, dass Sie keine Zeitarbeit verwendenTabelle, es sei denn, Sie stellen fest, dass Sie eine im Bereich des Befehls ausführen oder tatsächlich benötigen. Möglicherweise benötigen Sie eine, um die Leistung bei einer besonders komplexen Abfrage oder einem besonders komplexen CTE zu steigern. Daher kann die Leistung bei der Verwendung einer temporären Tabelle erhöht werden. Aber ich würde diese Abfrage zuerst erstellen und mich um die Optimierung kümmern, nachdem ich zumindest einige davon entwickelt habe.