Hallo Leute,
seit mehreren Stunden versuche ich erfolglos meine MS SQL-Server Compact Edition-Datenbank mit RaveReports "auszuwerten". Die Arbeit mit der SQL-Datenbank läuft über die ADO-Komponenten von Delphi (also TADOConnection, TADOQuery). Das Hinzufügen und Auswählen von Daten verläuft problemlos. Nur das Reporting funktioniert noch nicht.
Die Verbindung zwischen Delphi und RaveReports wird über ein Direct-DataView und den Rave-Komponenten (TRVProject, TRVSystem, TRVDatasetConnection), die wiederum mit den ADO-Komponenten verlinkt sind, realisiert.
Das Problem das dabei auftritt ist, dass die Datentypen der Datenbank (z.B. ntext oder nchar) nicht mit den Datentypen von den RaveReports-Feldern kompatibel sind. Folgende Fehlermeldung tritt auf, wenn ich Zeichenketten aus der Datenbank in RaveReports ausgeben will:
Field DataView1:Bauleiter. Datatype expected: dtMemo Datatype found: dtString
Leider fehlt die Option, im Report-Designer die Datentypen von jedem Feld auszuwählen. Wenn jemand eine Lösung wüsste, wär ich dankbar.
Mein Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.Button1Click(Sender: TObject); begin adoquery1.Close; adoquery1.Connection:=adoconnection1; adoquery1.SQL.Add('SELECT * FROM allgemein WHERE Nummer=:snr'); adoquery1.Parameters.ParamByName('snr').value:=3; adoquery1.Open; rvproject1.ExecuteReport('Report1'); end;
procedure TForm1.FormCreate(Sender: TObject); begin adoconnection1.ConnectionString:='Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source="D:\Eigene Dateien\RAD Studio\bau_db.sdf"'; adoconnection1.Open('',''); end;
procedure TForm1.FormDestroy(Sender: TObject); begin adoconnection1.Close; end; |