![]() |
Datenbank: MSAccess, MSSQL, MySQL, DB2, Oracle • Zugriff über: ADO
Spaltenreihenfolge im DBGrid festlegen
Hallo zusammen,
ich habe folgende Situation: In meiner Software greife ich über das ADODataset auf eine Datenbank zu. Über einen DataSource ist ein DBGrid mit dem Dataset verbunden. Die Datenmenge wird mit einer SQL Anweisung geöffnet und im Grid angezeigt. Innerhalb des Grids lasse ich eine Umsortierung der Spalten zu. Somit ändert sich ggf der Spaltenindex. Wenn ich die Software beende muß ich dann den Index speichern. Das mache ich so:
Delphi-Quellcode:
Das funktioniert soweit richtig. Jetzt kommt aber der Rest. Wenn ich die Software wieder starte und an meine Datenquelle anknüpfe, will ich anschließend die Spaltenreihenfolge wieder zuweisen. Ich habe es auf dem gleichen Weg wieder versucht, aber da wird dann alles durcheinander gewürfelt.
for i := 0 to PFORM.MyGrid.Columns.Count - 1 do
begin if Form1.MyGrid.Columns.Items[i].FieldName = tdbe.DataField then // tdbe ist ein DBEdit begin MyInifile.WriteInteger(tempstr, 'ColID', Form1.MyGrid.Columns.Items[i].Index); Break; end; end; Ich lade immer alle Felder per SQL in das Dataset, es kann aber auch sein, dass ich im Grid einige nicht anzeigen lasse. Die Spalte wird dann auf invisible gesetzt:
Delphi-Quellcode:
So, hoffe die Infos sind alle vorhanden, die benötigt werden und mir kann schnell geholfen werden.
Form1.MyGrid.Columns.Items[i].Visible:= FALSE
Gruß, Moony |
Re: Spaltenreihenfolge im DBGrid festlegen
Ich streame so etwas in ein Binärfeld in der Datenbank.
Speichern:
Delphi-Quellcode:
Laden:
...
ms:TMemoryStream; ... ms:=TMemoryStream.Create; DBGrid1.Columns.SaveToStream(ms); ms.Position:=0; TBlobField(tbSettings.FieldByName('Data')).LoadFromStream(ms); tbSettings.Post;
Delphi-Quellcode:
...
ms:TMemoryStream; ... ms:=TMemoryStream.Create; TBlobField(tbSettings.FieldByName('Data')).SaveToStream(ms); ms.Position:=0; DBGrid1.Columns.LoadFromStream(ms); |
Re: Spaltenreihenfolge im DBGrid festlegen
|
Re: Spaltenreihenfolge im DBGrid festlegen
@ joachim: Danke, aber ich kann die Software jetzt nicht ohne weiteres auf das Streamen umbauen.
Ich hatte das auch schon mit dem Index probiert, aber dieser funktioniert innerhalb eine for-Schleife sehr schlecht. Aber ich muß die einzelnen DB Felder durchgehen. Da muß ich wohl schauen, ob es nicht irgendeine Möglichkeit gibt das dennoch so durchzuführen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04: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