-
Forum: Datenbanken
Delphi
by Fritz01,
25. Nov 2007
@ raiguen,
ja, habe das auch getestet, ist OK mit der Schleife und den ges. Inhalt löschen.
Mit Click auf den Grid Titelnamen, das ist ja auch der Feldname meiner Datentabelle, mache ich diesen Namen auch zum Namen der IndexDatei.
Nun wird dieses Feld indiziert und erhält den Feldnamen auch als IndexNamen, dh. zB. FeldName=PLZ, IndexName=PLZ, indiziertes Feld=PLZ
Habe nochmal . Name gegen...
-
Forum: Datenbanken
Delphi
by Fritz01,
24. Nov 2007
@ raiguen,
zu #25 geht das?
procedure TForm1.bIndexDeleteClick(Sender: TObject);
var
cnt : integer;
begin
for cnt := ListBoxIndex.Items.Count -1 downto 0 do
Table.DeleteIndex(ListBoxIndex.Items); // neuen Index löschen
//--gesammte Listbox auf einen Schlag Löschen
-
Forum: Datenbanken
Delphi
by Fritz01,
24. Nov 2007
@ raiguen,
danke für Deine Antwort und die Bemühungen.
Werde mir Deine Vorschläge heute ansehen, war aber auch schon selbst tätig.
Bin ja nur hobbymäßig mit Delphi beschäftigt und kann so nur folgendes vermuten:
Table.IndexDefs.Items.Name = sName then
Table.IndexDefs.Items.Fields = sName then
.Name verweist auf den Namen der Indexdatei .Fields verweist auf die indizierten Felder
-
Forum: Datenbanken
Delphi
by Fritz01,
22. Nov 2007
@ Progman
das hört sich gut an und wird meine nächste Aufgabe.
@ all
Soweit ist das ja eigentlich in Ordnung, aber...
Das sollte für alle Tabellen funktionieren, mit oder ohne Index und der vorhandene IndexName sollte auch keine Rolle spielen.
Ist kein Index vorhanden, so ist das super.
Ist für zB. ein Index, indiziert auf Nachname und Vorname vorhanden, so ist das auch OK. Bei...
-
Forum: Datenbanken
Delphi
by Fritz01,
22. Nov 2007
@ all,
schaut doch mal ab #15
Im ersten Teil werden Indizies benötigt und erstellt. Das ist OK!
Jeder neu erstellte Index wird in ListBox gespeichert. Auch OK
Im 2. Teil sollen die Indizies gemäß ListBox gelöscht werden.
zu #16
Die Fehlermeldung: Inkompatible Typen bezieht sich auf die Zeile
-
Forum: Datenbanken
Delphi
by Fritz01,
22. Nov 2007
Hallo Progman,
danke.
Nein, der Fehler muß hier liegen
for cnt := 0 to Pred(lbIndex) do
Die Zeile ist rot hinterlegt und der Cursor blinkt hinter ')' dieser Klammer.
Fritz
-
Forum: Datenbanken
Delphi
by Fritz01,
22. Nov 2007
@ raiguen,
danke, habs gleich probiert.
DeleteAllIndexes ist ja eine sehr radikale Sache. Alles weg.
Da ist für meine Anwendung die andere Möglichkeit DeleteIndex(const Name: String); optimal.
Da benutze ich eine Listbox und merke mir dort die neuen Indizies.
lbIndex.Items.Add(sName);
Zunächst habe ich die Procedure auf einen Button onClick gelegt, aber...
procedure...
-
Forum: Datenbanken
Delphi
by Fritz01,
21. Nov 2007
Hallo DeddyH,
temporär nicht unbedingt! Nur, wie schon geschrieben, sollten die neu erstellten Indizies am Ende nicht mehr vorhanden sein. Mit diesem Teil kann ich mir dann außerhalb meiner Anwendung auf jedes Feld einen Index setzen, ohne die eigentliche Tabelle zu verändern.
Damit ist dann die Suche nach irgendwelchen Daten deutlich vereinfacht. Habe schon oft genug in einer unsortierten...
-
Forum: Datenbanken
Delphi
by Fritz01,
21. Nov 2007
Hallo,
an dieser Stelle erst einmal Dank an Alle die bei der Problemlösung behilflich waren.
@raiguen,
...Schleife nicht praktikabel, hat ja auch nicht funktioniert und die Fehlermeldung gab es auch noch dazu.
Habe nun den Code entsprechend geändert bzw. ergänzt und siehe da es funktioniert!!
Ganz so weit habe ich doch nicht daneben gelegen, und ich denke das ich noch im lernfähigen Alter...
-
Forum: Datenbanken
Delphi
by Fritz01,
21. Nov 2007
Hallo,
habe gestern noch lange gelesen und gebastelt mit dem Ergennis:
procedure TForm1.GridTitleClick(Column: TColumn);
var
sName : String;
I : integer;
begin
sName := Column.Field.FieldName; // Feldname
// vorhandenen Index suchen
-
Forum: Datenbanken
Delphi
by Fritz01,
20. Nov 2007
Hallo hoika,
danke für die schnelle Antwort.
Das muß ich erst mal verdauen, werde mich gleich dransetzen. Mal sehen was ich davon machen kann, der Abend ist noch lang.
Melde mich dann wieder.
Fritz
-
Forum: Datenbanken
Delphi
by Fritz01,
20. Nov 2007
Hallo hoika,
erstmal danke. Habs gleich testen wollen, aber gleich in der ersten Zeile
function IndexExists(theTable: TABSTabl; const theIndexName: String: Boolean;
gibt es schon Fehlermeldungen.
In dieser Zeile, sehe ich das richtig, muß man da einen Indexnamen vorgeben?
if CompareText(IndexDef.Name,DeinGesuchterIndwxName)=0 then
besser wäre, den vorhandenen Index für das Feld (ganz...
-
Forum: Datenbanken
Delphi
by Fritz01,
20. Nov 2007
@hoika,
danke für die Antwort. Der Link hat mir nicht wirklich weiter geholfen.
Beim bisherigen Code gibts ja noch nicht viel zu sehen.
procedure TForm1.GridTitleClick(Column: TColumn);
var
sName : String;
begin
sName := Column.Field.FieldName; // GridTitleName
Label1.Caption := sName;
-
Forum: Datenbanken
Delphi
by Fritz01,
20. Nov 2007
Hallo,
suche nach einer Möglichkeit, während der Laufzeit vorhandene Indexe zu ermitteln (IndexDefs) auslesen. Dieser Index soll dann in Table.IndexName eingesetzt werden.
Ist kein Index vorhanden so wird mit AddIndex... ein neuer Index erstellt und dort eingesetzt.
Hat die DatenTabelle keinen Index, so ist das OK. Index wird erstellt und die Daten erscheinen sortiert. Mein Problem ist es,...