![]() |
DBGrid und DB Express
Hallo alle zusammen!
Kann mir jemand vielleicht deutlich erklären wie man die Datensetze aus einer ORACLE 10g Datenbank in einem DBGrid mit Hilfe der DBExpress – Tools anzeigen kann. Ich benutze Borland Developer Studio 2006. Die Datenbankverbindung komm aus einer ini-File und geht dan an einen SQLQuery Spricht SQLQuery.SQLConnection := Conection; funktioniert! An SQLQuery soll man einen TDataSetProvider verknüpfen und zu dem TClientDataSet und erst dan TDBGrid Allerdings klapst es irgendwie nicht. Ich knüpfe bei DataSetProvider.DataSet := SQLQuery an und danach komme ich einfach nicht weiter! Bei versuchen es zusammen zu führen kommen die Fehlermeldungen wie: die Variable nur zum lesen da usw. Es stand noch das es einfacher ist mit TSQLClientDataSet es zu machen aber der Modul finde ich nicht in meiner Toolpalette . Kann mir jemand da helfen? |
AW: DBGrid und DB Express
Also, bei mir ist das TClientDataset auf dem Reiter "Datenzugriff" der Komponentenpalette.
|
AW: DBGrid und DB Express
TSQLClientDataSet ist eine ableitung von TClientDataSet man kan den nicht mit SQLQuery verbinden oder?
|
AW: DBGrid und DB Express
|
AW: DBGrid und DB Express
Die Komponente sagt mir jetzt gar nichts. Vielleicht ist es aber hilfreich, wenn Du Dich einmal durch diesen Artikel durcharbeitest:
![]() |
AW: DBGrid und DB Express
Also ich hab es wie folgt verknüpft:
SQLDataSet1.SQLConnection := SQLConnection1; SQLDataSet1.CommandText := SQL_Strg_Such1; DataSetProvider1.DataSet := SQLDataSet1; ClientDataSet1.ProviderName := DataSetProvider1.Name; DataSource1.DataSet := ClientDataSet1; DBGrid1.DataSource.DataSet := ClientDataSet1; DBGrid1.DataSource := DataSource1; SQLDataSet1.Open; Das Programm durchläuft ohne Fehler im DBGrid erscheinen aber keine Daten. Im Worksheet funktioniert SQL-Befahl Problemlos! |
AW: DBGrid und DB Express
Dann weiß ich leider auch nicht weiter, da ich weder einen DBExpress-Treiber für Oracle noch momentan einen Oracle-Server zur Verfügung habe. Wenn ich das richtig überflogen habe sollte Deine Konfiguration stimmen.
|
AW: DBGrid und DB Express
Auf jeden Fall Danke!
|
AW: DBGrid und DB Express
Ich würde auch behaupten, die Konfiguration stimmt. Bist Du sicher, dass die Abfrage überhaupt Daten zurückliefert?
|
AW: DBGrid und DB Express
Hier ist die Komplette Programmabschnitt:
Code:
Den SQL-Befehl habe ich beim Durchlauf mit Fehlersuche-> Auswerten/Ändern rauskopiert unf im Worksheet probiert geht problemlos!
procedure TFBAPflege.btnSucheClick(Sender: TObject);
begin SQLDataSet1.Close; SQL_Strg_Such1 := ''; SQLDataSet1.SQLConnection := TelProdObj.FSQLConTelNet; SQL_Strg_Such1 := 'Select pi_id, p_id, typ, descr, pi_jahrgang from '+ DB +'.produkt_instanz4' + ' order by descr, pi_jahrgang'; SQLDataSet1.CommandText := SQL_Strg_Such1; dbgridSuche1.Visible := True; DataSetProvider1.DataSet := SQLDataSet1; ClientDataSet1.ProviderName := DataSetProvider1.Name; DataSource1.DataSet := ClientDataSet1; dbgridSuche1.DataSource := DataSource1; dbgridSuche1.DataSource.DataSet := ClientDataSet1; //dbgridSuche1.Columns.Capacity := 5; dbgridSuche1.Columns[0].FieldName := 'PI_ID'; dbgridSuche1.Columns[1].FieldName := 'P_ID'; dbgridSuche1.Columns[2].FieldName := 'Typ'; dbgridSuche1.Columns[3].FieldName := 'Descr'; dbgridSuche1.Columns[4].FieldName := 'Jahr'; dbgridSuche1.Columns[0].Visible := False; dbgridSuche1.Columns[1].Visible := False; SQLDataSet1.Open; dbgridSuche1.DataSource.AutoEdit := False; end; Was ich nicht hinkriege ist die Daten im DBGrid anzeigen zu lassen und Anzahl den Spalten im Grid fest zu nennen. Ich musste die Anzahl in ColumnsEditor fest legen, wenn ich es per Code fersuche dann kommt ein Fehlermeldung mit „Die aufzurufende Funktion TCollection.GetCapacity wurde vom Linker entfernt„ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz