Anmelden

Die Datenbankverbindung für Reports kann mit verschiedenen Varianten erfolgen. Dabei funktionieren viele Varianten sowohl unter Windows als auch unter LINUX. 

Die Datenbankverbindung eines Reports kann man am besten im Designer konfigurieren. Das Verständnis der Zusammenhänge ist allerdings sehr erschwert und damit ist auch eine strukturierte Darstellung nicht möglich. Da die einzelnen Varianten i.d.R. gut funktionieren, sollen hier einige Erfahrungen und Konfigurationen vorgestellt werden. Wir konzentrieren uns auf eine PostgreSQL-Datenbank mit UTF8-Kodierung.

Vom Hersteller gibt es auch einige Informationen, jedoch auch ohne umfassendes Verständnis:

http://reportman.sourceforge.net/doc/openingdatatrouble.html

Borland DBExpress

Hier haben wir keine Erfahrungen. Die Dateien dbxdrivers und dbxconnections müssen vorliegen. Unter Windows haben die Dateien eine Endung .ini, unter LINUX nicht. In dbxconnections sind die Datenbankverbindungen konfiguriert.

Microsoft DAO

Reportvorlagen mit dieser Verbindungsart werden unter Linux NICHT unterstützt

  • DAO arbeitet ohne DOTNET-Technologie
  • Der Designer liefert eine Vorschau.
  • printreport (NET) Vorschau, -pdf geht dagegen nicht
  • mit printreptopdf PDF-Generierung unter Winsows möglich

Dot Net Connection - PostgreSQL

Wenn man im Designer unter Dot net driver = PostgeSQL auswählt, wird die Verbindung über eine Odbc-Connection hergestellt (kein direkte Verwendung des NET Postgres-Treibers Npgsql), damit muss auf dem lokalem System vermutlich der entsprechende ODBC-Treiber installiert sein. Siehe PostgreSQL-ODBC

Der anzugebene Verbindungsstring (Connection string) ist aber im Designer kein ODBC-Verbindungsstring (damit auch kein DSN erforderlich), sondern der übliche PostgreSQL-String: DATABASE=smas;SERVER=192.168.0.100;PORT=5432;UID=postgres;Password=postgres

  • Die Verbindungsdaten werden in der Reportdatei gespeichert. dbxconnections.ini und dbxdrivers.ini sind somit nicht erforderlich. In der NET Library ist zudem möglich die Verbdindungsdaten programmteschnisch zu überschreiben, was sehr praktisch ist weil man zur Entwurfszeit im Designer und Laufzeit verschiedenen Datenbankzugänge verwenden kann.
  • Wenn dieser Report dagegen mit NET Library oder NET printreport.exe ausgegeben werden soll muss alsVerbindungsstring ein ODBC-String angegeben werden.
  • Im Designer gibt es UTF8-Probleme (bei Verwendung einer UTF8-Datenbank) Umlaute werden falsch ausgegeben. Diese Probleme treten jedoch nicht auf, wenn man den so konfigurierten Report mit NET printreport.exe ausgibt.
  • Die Verbindungsart ist vermutlich nicht verwendbar für printreptopdf(.exe), diese Tools sind plattformspezifisch. Der Report kann mit printreptopdf nicht ausgegeben werden, sondern nur im Designer-Vorschau oder mit der NET printreport.exe.

Es ist aber unklar, wie die Report Manager Tools wissen, welcher Treiber zu verwenden ist. Auszug aus der Reportdatei:

< DRIVER type="Integer">7< /DRIVER>
< ADOCONNECTIONSTRING type="WideString">DATABASE=smas;SERVER=192.168.0.100;PORT=5
433;UID=postgres;Password=postgres< /ADOCONNECTIONSTRING>
< DOTNETDRIVER type="Integer">4< /DOTNETDRIVER>
< PROVIDERFACTORY type="String">System.Data.Odbc< /PROVIDERFACTORY>

Dies Einstellungen können bei Verwendung der NET Library zur Reportausgabe komplett überschrieben werden

Dot Net 2 Connection

Hierunter wird ein NET-Treiber basierend auf dem Dienstanbietermodell von System.Data.Common verstanden (ADO.NET genannt). Der Treiber implementiert direkt die System.Data.Common-Interfaces, z.B. DbConnection. Bei PostgreSQL ist dies der bekannte NET Npgsql, der zwar eine 100% .NET-Implementierung ist, jedoch für den Report Manager nicht geeignet ist (siehe NET Library - Npgsql).

Unter ADO.NET ist wiederum auch ODBC verfügbar, was dann zusätzlich den nativen ODBC-Treiber erforderlich macht. Aufgrund der Probleme mit Npgsql, muss sogar die ODBC-Variante gewählt werden (System.Data.Odbc)

  • Als Verbindungsstring ist damit ein ODBC-String erforderlich mit oder ohne DSN (DSN-less).
    • Mit DSN: Dsn=smas;
    • Ohne Dsn: Driver=...;....;
  • Designer funktioniert mit Postgres-DSN (auch Unicode)
  • nicht verwendbar für printreptopdf, weil printreptopdf plattformspezifisch ist.

ZEOS

Zusammenfassung

Die Verwendung von Npgsql ist vermutlich nicht möglich, weil komplexe Reports mehrere DataReader gleichzeitig öffnen, was der Treiber abblockt. Die ODBC-Variante funktioniert dagegen auf Windows und LINUX vorbildlich. Diese Lösung stellt keine reine NET-Lösung dar, was aber aufgrund der Verfügbarkeit der ODBC-Treiber unter LINUX kein Problem darstellen sollte.

   
Top

Wir arbeiten mit Software von http://www.campus21.de.

Verantwortlich für angezeigte Daten ist der Webdomain-Eigentümer laut Impressum.

Suche