AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi vorhandenen Index ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

vorhandenen Index ermitteln

Ein Thema von Fritz01 · begonnen am 20. Nov 2007 · letzter Beitrag vom 25. Nov 2007
Antwort Antwort
Seite 2 von 3     12 3      
Fritz01

Registriert seit: 22. Mär 2006
Ort: Großenkneten
181 Beiträge
 
Delphi 7 Professional
 
#11

Re: vorhandenen Index ermitteln

  Alt 21. Nov 2007, 17:15
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 bin!
Am Ende wäre noch gut, wenn die neu erzeugten Indexe gelöscht würden. Entweder nur temporär erstellen oder mit Form onClose löschen, will mal sehen vielleicht gibt es ja dazu noch einen Tipp.
Nochmal danke für die Hilfe und einen schönen Abend.
Mit den besten Grüßen aus Ahlhorn
Fritz
Fritz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: vorhandenen Index ermitteln

  Alt 21. Nov 2007, 17:37
Hallo Fritz, ich frage mich die ganze Zeit, wozu Du unbedingt temporäre Indizes erstellen möchtest.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Fritz01

Registriert seit: 22. Mär 2006
Ort: Großenkneten
181 Beiträge
 
Delphi 7 Professional
 
#13

Re: vorhandenen Index ermitteln

  Alt 21. Nov 2007, 18:12
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 Tabelle gesucht. Die hat zwar nur ca. 3500 Datensäte, aber durchsuch die mal.
So kann ich einzelne Felder, an die ich sonst nicht rankomme, direkt im Grid verädern. Das möchte ich, wenn es denn richtig fertig ist, in ein anderes Programm integrieren.
Schönen Abend noch
Fritz
Fritz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: vorhandenen Index ermitteln

  Alt 21. Nov 2007, 18:21
Ja OK, in einer sortierten (oder besser indizierten) Tabelle sucht es sich schneller. Allerdings muss der Index aber auch erstmal erstellt werden, und das dauert ja auch seine Zeit. Ich weiß nicht, wie das bei ABS DB ist, aber ich denke, der Geschwindigkeitsvorteil wird dadurch wieder zunichte gemacht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#15

Re: vorhandenen Index ermitteln

  Alt 21. Nov 2007, 23:12
Zitat von Fritz01:
wenn die neu erzeugten Indexe gelöscht würden. ...
Zitat von Absolute Database Manual:
Methode(n) von TABSTable:
procedure DeleteAllIndexes->Löscht ALLE Indexe der Tabelle
procedure DeleteIndex(const Name: String); -> Löscht NUR den Index mit dem übergegeben Namen!
1.Methode empfiehlt sich halt für die neu erstellten ('temporären') Inizies. Tipp: alle Namen der neu erstellten Indizes in einem Array oder StringList merken und beim Onclose anhand dieser Lise die Indizes löschen
Delphi-Quellcode:
  for cnt := 0 to Pred(IndexListe) do
    Tabelle.DeleteIndex(IndexListe[cnt]);
@DeddyH: Das ABS-Manual verweist (gerade bei SQL-STatements) auf die Möglichkeit, zur Beschleunigung von Such-/Sortiervorgängen zusätzliche Indizies auf die betreffenden Spalten zu setzen. Okay, bei GROSSEN TAbellen kann das natürlich etwas dauern...
  Mit Zitat antworten Zitat
Fritz01

Registriert seit: 22. Mär 2006
Ort: Großenkneten
181 Beiträge
 
Delphi 7 Professional
 
#16

Re: vorhandenen Index ermitteln

  Alt 22. Nov 2007, 10:07
@ 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...

Delphi-Quellcode:
procedure TForm1.bIndexDeleteClick(Sender: TObject);
var
cnt : integer; // <-- sollte doch richtig sein oder??
begin
  for cnt := 0 to Pred(lbIndex) do
    Table.DeleteIndex(lbIndex[cnt]);
end;
Fehlermeldung beim compiliern: Inkompatible Typen und Klasse besitzt keine Standardeigenschaft.
Hilfe bitte nochmal erforderlich.
Fritz
Fritz
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#17

Re: vorhandenen Index ermitteln

  Alt 22. Nov 2007, 10:21
    Table.DeleteIndex(lbIndex.Items[cnt]); vielleicht?
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Fritz01

Registriert seit: 22. Mär 2006
Ort: Großenkneten
181 Beiträge
 
Delphi 7 Professional
 
#18

Re: vorhandenen Index ermitteln

  Alt 22. Nov 2007, 11:00
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
Fritz
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: vorhandenen Index ermitteln

  Alt 22. Nov 2007, 11:03
Halo,

was ist lbIndex ?
Eine Form-Variable ?
Wozu ?

for i:= 0 to ListBox1.Items.Count-1 Ausserdem wozu eine ListBox ?
Eine StringList recith doch, oder ?


Ich würde mal die pas-Datei mit dem Editor öffnen (Delphi zu).
Es kann sein, dass durch ein Paste falsche Zeilenumbrüche
in der Pas stehen, erkennbar durch schwarze Blöcke.


Heiko
Heiko
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#20

Re: vorhandenen Index ermitteln

  Alt 22. Nov 2007, 11:17
for cnt := 0 to lbIndex.ItemsCount -1 do (ich nehme mal an, lbIndex ist eine ListBox)
Und wenn es nur darum geht, die Listbox zu löschen, einfach lbIndex.items.Clear.
Ein for-Schleife zum Löschen geht meist schief, weil sich ja die Anzahl nach Löschen eines Eintrags geändert hat, aber for ganz stur seine am Anfang ermittelt Durchlaufzahl machen will. Da nimmt man
while lbIndex.count > 0 do lbIndex.Delete(0);
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:12 Uhr.
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