Hallo schon wieder,
Neues von Fritz!
Die Sache beschäftigt mich immer noch und auch mit Erfolg.
Im Prinzip ist es eigentlich so geblieben. Schaut das doch bitte mal an.
Wenn nicht vorhanden:
Index neu
Delphi-Quellcode:
//------------------- 2) Index nicht vorhanden
else //
begin
tTable.CLose;
tTable.Exclusive := true;
tTable.AddIndex(idxName, idxName,[]);
tTable.IndexName := idxName;
tTable.Exclusive := False;
tTable.Open;
label3.Caption := '';
label3.Caption := idxName; <- nur zur Anzeige
sIndexList.Add(idxName);
bIndexDelete.Enabled := True;
//--internes Array mit den Indexdefinitionen aktualisieren
tTable.IndexDefs.Update;
//--evtl. Speichern der Definitionen verhindern
tTable.StoreDefs := False;
end;
Wenn Index nicht mehr benötigt:
Index erntfernen
wird z.Zt. noch per Click gemacht
Delphi-Quellcode:
procedure TfrmMain.bIndexDeleteClick(Sender: TObject);
var
cnt : integer;
begin
for cnt := ListBox.Count -1 downto 0 do begin
tTable.DeleteIndex(sIndexList[cnt]); // index aus table
sIndexList.Delete(cnt); // index aus stringlist
tTable.IndexName := ''; // falls da noch was ist
tTable.IndexDefs.Update; // indexdefinition aktualisieren
tTable.StoreDefs := False; //speichern der definitionen verhindern
bIndexDelete.Enabled := False;
end;
end;
Das funktioniert auch wenn in TreeView Table gewechselt wird.
Delphi-Quellcode:
procedure TfrmMain.TreeViewChange(Sender: TObject; Node: TTreeNode);
begin
if TreeView.Selected.IsFirstNode then exit
else
begin // angeclickte Tabelle öffnen und Daten in Grid zeigen
SelectTable(TreeView.Selected.Text); // neuer TableName
// DisableControls; <-[Fehler] uMain.pas(147): Undefinierter Bezeichner:
try
tTable.Close; // active Table schließen
// <========== hier sollte die procedure Index löschen eigefügt werden
tTable.IndexName := '';
tTable.TableName := TreeView.Selected.Text; // neue Tabelle
tTable.Open;
finally
// EnableControls; <-[Fehler] uMain.pas(147): Undefinierter Bezeichner:
end;
Label1.Caption:=TreeView.Selected.Text;
tTable.IndexDefs.Update;
tTable.StoreDefs := false; // neue Tabelle öffnen
iRecordCount.Caption := IntToStr(tTable.RecordCount); // Datensätze zählen und anzeigen
end;
end;
Soviel dazu!
Und hier mein Anliegen
1) DisableControls / EnableControls gibt Fehlermeldung: undefinierter Bezeichner ???
2) Die procedure bIndexDeleteClick würde ich gerne ind der procedure TreeViewChange unterbringen.
wie geht das, habs noch nie gemacht!
Danke
Fritz