Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   DBGrid und DB Express (https://www.delphipraxis.net/162133-dbgrid-und-db-express.html)

Leo675 8. Aug 2011 14:38

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?

DeddyH 8. Aug 2011 14:45

AW: DBGrid und DB Express
 
Also, bei mir ist das TClientDataset auf dem Reiter "Datenzugriff" der Komponentenpalette.

Leo675 8. Aug 2011 15:08

AW: DBGrid und DB Express
 
TSQLClientDataSet ist eine ableitung von TClientDataSet man kan den nicht mit SQLQuery verbinden oder?

Nersgatt 8. Aug 2011 15:09

AW: DBGrid und DB Express
 
Crossposts bitte gegenseitig verlinken:
http://www.delphi-forum.de/viewtopic...&postorder=asc

DeddyH 8. Aug 2011 15:45

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: http://delphi.about.com/od/database/...pressguide.htm

Leo675 10. Aug 2011 15:29

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!

DeddyH 10. Aug 2011 15:34

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.

Leo675 10. Aug 2011 15:47

AW: DBGrid und DB Express
 
Auf jeden Fall Danke!

Nersgatt 11. Aug 2011 08:18

AW: DBGrid und DB Express
 
Ich würde auch behaupten, die Konfiguration stimmt. Bist Du sicher, dass die Abfrage überhaupt Daten zurückliefert?

Leo675 12. Aug 2011 13:07

AW: DBGrid und DB Express
 
Hier ist die Komplette Programmabschnitt:

Code:
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;
Den SQL-Befehl habe ich beim Durchlauf mit Fehlersuche-> Auswerten/Ändern rauskopiert unf im Worksheet probiert geht problemlos!

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 08:22 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz