AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADSTable.ADSCreateIndex falsch angewandt?

ADSTable.ADSCreateIndex falsch angewandt?

Ein Thema von trockentaucher · begonnen am 2. Feb 2006 · letzter Beitrag vom 3. Feb 2006
Antwort Antwort
Benutzerbild von trockentaucher
trockentaucher

Registriert seit: 25. Nov 2003
Ort: Dortmund
41 Beiträge
 
Delphi 7 Professional
 
#1

ADSTable.ADSCreateIndex falsch angewandt?

  Alt 2. Feb 2006, 19:50
Datenbank: ADS Local • Version: 7.1 • Zugriff über: ADS Connection & DataSet
Hallo zusammen

Ich erzeuge zur Laufzeit für eine Tabelle mit Table.ADSCreateIndex einen neuen Index. Das Index-File *.ADI wird auch erzeugt. Öffne ich danach mit dem Advantage Data Architect die Tabelle, ist der eben erzeugte Index nicht im Index Management aufzufinden?!

Der Index wird mit folgender Syntax erzeugt

  Table.AdsCreateIndex('', '', 'RecNo', '.NOT. DELETED()', '', [optCOMPOUND]); Da das entsprechende ADI-File erzeugt wird, und auch keine Fehlermeldung bzw. Exception erzeugt wird, scheint das auch okay zu sein, warum wird aber der eigentliche Index nicht erzeugt?

mfg,
trocki
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
631 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: ADSTable.ADSCreateIndex falsch angewandt?

  Alt 3. Feb 2006, 09:45
Zitat von trockentaucher:
  Table.AdsCreateIndex('', '', 'RecNo', '.NOT. DELETED()', '', [optCOMPOUND]);
Tagname (2. Parameter) ist leer - hier würde ich zumindest etwas reinschreiben (zB RecNo).
Zudem sollte man keine AdsXXXX-Funktionen im TDataset direkt verwenden, da damit der komplette Mechanismus des TDataset umgangen wird (und der Index eventuell gar nicht in der Index-Liste der Komponente erscheint). Besser gleich die TDataset Methode verwenden:
AdsTable.AddIndex('Recno','RecNo',[]); Aber abgesehen davon: Welchen Sinn macht denn ein index mit der Kondition 'not deleted', wenn im ADT-Format die gelöschten Records sowieso nicht in den Index kommen? Die Kondition verhindert, dass der Index für Optimierungen herangezogen wird.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von trockentaucher
trockentaucher

Registriert seit: 25. Nov 2003
Ort: Dortmund
41 Beiträge
 
Delphi 7 Professional
 
#3

Re: ADSTable.ADSCreateIndex falsch angewandt?

  Alt 3. Feb 2006, 12:22
Zitat von joachimd:
AdsTable.AddIndex('Recno','RecNo',[]);
Hallo, habe ich auch so getestet. Gleiches Ergebnis, das *.adi wird erstellt und scheint auch zu funktionieren, allerdings bleibt im Index Management weiterhin alles leer...

Zitat von joachimd:
Aber abgesehen davon: Welchen Sinn macht denn ein index mit der Kondition 'not deleted', wenn im ADT-Format die gelöschten Records sowieso nicht in den Index kommen? Die Kondition verhindert, dass der Index für Optimierungen herangezogen wird.
Stimmt schon, das Feld ist eigentlich leer, bei der ganzen Testerei habe ich dann versuchsweise "not deleted" eingetragen, was am Ergebnis aber nichts änderte...

mfg,
trocki
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
631 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: ADSTable.ADSCreateIndex falsch angewandt?

  Alt 3. Feb 2006, 12:32
Zitat von trockentaucher:
Hallo, habe ich auch so getestet. Gleiches Ergebnis, das *.adi wird erstellt und scheint auch zu funktionieren, allerdings bleibt im Index Management weiterhin alles leer...
Wie sieht es in Delphi selbst aus? Ist da ein Index auswählbar? Wenn ja, so vermute ich 2 Ursachen:
1) Du hast ein Data Dictionary, Dein User aber keine Rechte zur Erstellung des Index (dann ist es ein Temp-Index, welcher bei Connection Abbau gelöscht wird)
2) Dein Architect ist buggy (wobei mir hier keine Probleme bekannt sind)
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 12:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf