Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid Eigenschaften (https://www.delphipraxis.net/109733-dbgrid-eigenschaften.html)

Moony 6. Mär 2008 17:11


DBGrid Eigenschaften
 
Hallo zusammen,

ich arbeite mit der KADAO-Komponente (KADAOTable, KADAODatabase, DataSource). Diese Komponenten sind miteinander verbunden und an mein DBGrid angeknüpft. Ich erstelle zur Laufzeit meine Spalten mit "Grid.Columns.Add" un weise anschließend die Caption und die ggf. die Breite jeder Spalte zu. Das funktioniert auch einwandfrei.

Mein Problem besteht darin, dass alle mit dem Grid verbundenen Funktionen nicht mehr funktionieren.

Als Beispiel:

- Bei den Optionen ist dgMultiSelect = True, es werden dennoch nicht mehrere Zeilen markiert
- dgRowSelect = True, dennoch werden einzelne Zellen angewählt
- Beim OnClick-Ereignis habe ich vorher die Anzahl von Grid.SelectedRows.Count anzeigen lassen und jetzt ists ständig 0

Da gibts viele weitere Punkte.

Ich hoffe ihr könnt mir helfen. Danke.

Gruß, Moony

RavenIV 7. Mär 2008 09:28

Re: DBGrid Eigenschaften
 
Wenn Du einem DBGrid eine Datasource zuweist, dann werden doch alle Zeilem und vor allem alle Spalten automatisch angezeigt.
Was willst Du mit "Grid.Columns.Add" erreichen?

Moony 7. Mär 2008 10:06

Re: DBGrid Eigenschaften
 
Ich weiß, dass alles angezeigt wird und das ist das was ich nicht will. Ich möchte die komplette Datenmenge in meiner ADOTable haben, aber nur bestimmte Spalten mit variablen Captions angezeigt bekommen. Deshalb erstelle ich die Spalten separat und weise diesen dann das richtige Feld aus der Tabelle zu.

RavenIV 7. Mär 2008 10:23

Re: DBGrid Eigenschaften
 
Zitat:

Zitat von Moony
Ich weiß, dass alles angezeigt wird und das ist das was ich nicht will. Ich möchte die komplette Datenmenge in meiner ADOTable haben, aber nur bestimmte Spalten mit variablen Captions angezeigt bekommen. Deshalb erstelle ich die Spalten separat und weise diesen dann das richtige Feld aus der Tabelle zu.

Einige Anmerkungen:
a) es ist generell nicht so vorteilhaft, mit TTable (KADAOTable wird wohl ein Nachfahre davon sein) zu arbeiten.
Eine TTable liesst immer die gesamte Tabelle ein und schreibt bei Änderungen immer die gesamte Tabelle zurück.
b) wenn Du nur bestimmte Records haben willst, dann bau Dir eine entsprechende Query zusammen und lass das Ergebnis im DBGrid anzeigen.
c) Ein DBGrid ist dafür gemacht, dass es direkt Daten aus der DB (via Dataset und Datasource) anzeigt. Pfuscht man dem DBGrid dazwischen, verhält es sich gerne mal "komisch".

SirThornberry 7. Mär 2008 10:25

Re: DBGrid Eigenschaften
 
kommst du dann nicht besser wenn du gleich ein normales Grid nimmst und nicht eins was mit der Datenbank verbunden ist? Oder kannst du die Abfrage an die Datenbank nicht gleich so gestalten das die Datenbank nur die entsprechenden Datensätze zurück gibt?

Könntest du dem Beitrag eventuell einen aussagekräftigeren Titel geben? :)

RavenIV 7. Mär 2008 10:27

Re: DBGrid Eigenschaften
 
Zitat:

Zitat von Moony
Hallo zusammen,

ich arbeite mit der KADAO-Komponente (KADAOTable, KADAODatabase, DataSource).

Noch eine Frage:
Was sind die KADAO-Komponenten und warum arbeitest Du gerade damit?

DP-Maintenance 7. Mär 2008 10:33

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "VCL / WinForms / Controls" nach "Datenbanken" verschoben.

Moony 7. Mär 2008 11:02

Re: DBGrid Eigenschaften
 
@Raven:
1. KADAO ist der Vorgänger von ADO
2. Ich verwende KADAO, weil das ein älteres Projekt ist und mit der MS Access DB arbeitet. Was die Records betrifft möchte ich alle Records der Datenbank angezeigt bekommen, jedoch nicht immer alle Spalten der DB.
3. Wenn ich das über ein Query & ADO regel, habe ich nicht immer alle Daten der Tabelle im Query verfügbar.

@Thornberry: Ich möchte ja nicht die Daten zu Fuß aus der DB holen und ins Grid einpflegen.

RavenIV 7. Mär 2008 11:23

Re: DBGrid Eigenschaften
 
Zitat:

Zitat von Moony
@Raven:
1. KADAO ist der Vorgänger von ADO
2. Ich verwende KADAO, weil das ein älteres Projekt ist und mit der MS Access DB arbeitet. Was die Records betrifft möchte ich alle Records der Datenbank angezeigt bekommen, jedoch nicht immer alle Spalten der DB.
3. Wenn ich das über ein Query & ADO regel, habe ich nicht immer alle Daten der Tabelle im Query verfügbar.

Wieso brauchst Du ALLE Daten der Tabelle in der Query?
Eine Query dient zur Abfrage spezieller Daten aus einer Tabelle. Da hat man meistens nie ALLE Daten der Tabelle drin. Würde auch keinen Sinn machen.
Man holt sich aus der DB, genau das, was man braucht und zeigt es im Grid an.

Zitat:

Zitat von Moony
@Thornberry: Ich möchte ja nicht die Daten zu Fuß aus der DB holen und ins Grid einpflegen.

Du machst ja im Prinzip nichts anderes.

Moony 7. Mär 2008 11:39

Re: DBGrid Eigenschaften
 
Also, zum Verständnis und um weitere Fragen nach dem Warum abzuwürgen:

Die Daten in der Datenbank werden ALLE in meine KADAO-Tabelle geladen. Für die Anzeige sind nicht alle Spalten relevant. Nachdem dann im Grid x Datensätze ausgewählt wurden, werden ALLE Daten eines Datensatzes in eine andere Datenbank & Tabelle importiert.
Ich hoffe damit ist die Frage nach dem Warum geklärt!

Des weiteren schreibe ich nicht zu Fuß alle Daten in das Grid, sondern lege lediglich die Spalten fest und die Daten werden anschließend selbständig in das Griid gefüllt. Anders wäre das bei einem StringGrid.

Um wieder zu meinem eigentlichen Problem zu kommen:
- Bei den Optionen ist dgMultiSelect = True, es werden dennoch nicht mehrere Zeilen markiert
- dgRowSelect = True, dennoch werden einzelne Zellen angewählt
- Beim OnClick-Ereignis habe ich vorher die Anzahl von Grid.SelectedRows.Count anzeigen lassen und jetzt ists ständig 0


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:36 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz