Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Indizies mit Access über SQL Befehl (https://www.delphipraxis.net/60312-indizies-mit-access-ueber-sql-befehl.html)

Christian18 5. Jan 2006 09:37

Datenbank: Access • Version: 2000 • Zugriff über: ADO

Indizies mit Access über SQL Befehl
 
Hallo,

wie kann ich in Access über die SQL Befehle Indizies Festlegen??? Wie ich einen Primär Schlüssel vergeben kann das weiß ich. Aber wie kann man Indizies vergeben, die man später von Delphi aus zum Sortieren einer Tabelle nutzen will, anlegen.

Christian18 5. Jan 2006 10:40

Re: Indizies mit Access über SQL Befehl
 
hi,

ist es überhaupt möglich sowas zu machen. ich habe schon im internet geschaut konnte aber nur finden wie man einen primär schlüssel vergibt.

MFG Christian18

mikhal 5. Jan 2006 11:15

Re: Indizies mit Access über SQL Befehl
 
Auszug aus einer Datenbank-Definition, die ich für ein eigenes Programm verwendet habe. Dazu wird ein TAdoCommand mit dem entsprechenden SQL-Statement gefüllt und via Execute ausgeführt.

Delphi-Quellcode:
const
   cCR = #13#10; // Carriage-Return
  cCreateTableAdresse = 'CREATE TABLE Adresse(' + cCR +
                    ' Adr_Id COUNTER,' + cCR +
              ' Adr_Name VARCHAR(50),' + cCR +
              ' Adr_Strasse VARCHAR(50),' + cCR +
              ' Adr_Land VARCHAR(5),' + cCR +
              ' Adr_PLZ VARCHAR(5),' + cCR +
              ' Adr_Ort VARCHAR(50),' + cCR +
              ' Adr_Telefon VARCHAR(20),' + cCR +
              ' Adr_Email VARCHAR(100));'; // Tabellendefinition

  cCreatePKAdresse = 'CREATE INDEX PK_Adresse ON Adresse(Adr_Id) WITH PRIMARY;'; // Definition des PK der Tabelle

  cCreateIDXAdrName = 'CREATE INDEX IDX_AdrName ON Adresse(Adr_Name);'; // Definition eines Index auf das Feld Adr_Name
Grüße
Mikhal

[edit]ExecSQl gegen Execute ausgetauscht[/edit]

Christian18 5. Jan 2006 11:40

Re: Indizies mit Access über SQL Befehl
 
Hallo,

ok danke das funktioniert schon mal. Ist es auch möglich die Anweisung bei Erstellen der Tabelle zu implementieren??? Also bei Create Table??? oder muß ich jedes mal wenn ich bei einer Tabelle Indizies verwenden möchte eine neue Abfrage machen.

MFG Christian18

mikhal 5. Jan 2006 15:26

Re: Indizies mit Access über SQL Befehl
 
Mir ist lediglich eine Variante für den PK bekannt. Es handelt sich dabei allerdings um TSQL, das Access (besser die JET-DB) verstehen sollte. Um bei dem vorgegebenen Beospiel zu bleiben:

Delphi-Quellcode:
const
   cCR = #13#10; // Carriage-Return
  cCreateTableAdresse = 'CREATE TABLE Adresse(' + cCR + 
                    ' Adr_Id int identity(1,1) not null CONSTRAINT PK_Adresse primary key,' + cCR + 
              ' Adr_Name VARCHAR(50),' + cCR + 
              ' Adr_Strasse VARCHAR(50),' + cCR + 
              ' Adr_Land VARCHAR(5),' + cCR + 
              ' Adr_PLZ VARCHAR(5),' + cCR + 
              ' Adr_Ort VARCHAR(50),' + cCR + 
              ' Adr_Telefon VARCHAR(20),' + cCR + 
              ' Adr_Email VARCHAR(100));'; // Tabellendefinition
Geändert hat sich eigentlich nur die Zeile für Adr_Id. Ich habe mich damals aber für die explizite Variante entscheiden, da ich eine Versionierung meiner Datenbank vorsah, und ich dann die entsprechenden Konstanten abrufen konnte, um ein Versionsupdate vornehmen zu können.

Grüße
Mikhal


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:40 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 by Thomas Breitkreuz