PDA

Visualizza la versione completa : [Delphi] Database: campi indicizzati


nic_sirio
28-10-2003, 17:53
Buongiorno a tutti:
ho un problema con una funzione che mi ero costruito per eliminare un generico di una generica tabella.
Il problema sta nel fatto che non so gestire il caso in cui il campo sia indicizzato e\o una chiave primaria e\o parte di essa.
lavoro in ADO
ho trovato che le due seguenti righe di codice eliminano i campi in questione

DROP INDEX nomeindice ON nometabella
DROP INDEX nomechiave ON nometabella

Il problema è che nomeindice e nomechiave non so come conoscerli nel caso generale in cui il database non l'abbia creato io. Quindi la questione è sia come capire se un campo sia indicizzato o meno, sia capire come risalire al suo nome e quindi eliminarlo, una volta individuato.

Inoltre nel terzo caso, in cui cioè ho un campo da cancellare che fa parte di una chiave primaria, come vengono identificati i vari campi che la compongono in modo da risalire a quello che mi interessa?

alka
28-10-2003, 18:29
Non credo che ADO sia in grado di restituirti tutte le proprietà che chiedi con facilità.

Tuttavia, potresti ad esempio ispezionare la proprietà IndexDefs del componente DataSet (ADOTable, ADOQuery, ...) che usi per accedere alla tabella interessata: tale proprietà contiene la definizione degli indici della tabella; ciascuno degli elementi rappresenta un indice della tabella ed è in grado di restituirti varie informazioni, tra cui anche il nome dei campi utilizzati.

Consulta la Guida in linea di Delphi in merito a quella proprietà per ottenere maggiori informazioni.

Ciao! :ciauz:

Loading