redlionion Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 Hei, Jeg har en Access database jeg bruker i Delphi gjennom ADO. Mitt store spørsmål er som følger: Hvordan søker man for et felt (field) som vi har definert en index for i Access? For eksempel - dersom jeg skal finne ut om element 'x' er i ADOTableX, hvor jeg skal søke gjennom field 'abc' (dette er forøvrig PK feltet og er selvsagt indexed) for 'x'. Seek funksjonen har blitt testet ut, men jeg får en feilmelding som forteller at denne funksjonen inne er støttet av ADO interfacet. Lenke til kommentar
redlionion Skrevet 6. mars 2004 Forfatter Del Skrevet 6. mars 2004 Har noen her i det hele tatt klart å bruke Seek funksjonen i en database? Takk for all mulig hjelp, RedLionIon Lenke til kommentar
tasle Skrevet 6. mars 2004 Del Skrevet 6. mars 2004 Jeg bruker Goto eller Find til slike formål, også for Access-tabeller.... Lenke til kommentar
DidzisK Skrevet 8. mars 2004 Del Skrevet 8. mars 2004 MyAdoTable.IndexName:='PK'; {hvis primærindexen, som indekserer felt 'abc', heter 'PK'} MyAdoTable.Seek('x',soFirstEQ); For mer informasjon se hjelp for TCustomADODataSet.IndexName Lenke til kommentar
redlionion Skrevet 8. mars 2004 Forfatter Del Skrevet 8. mars 2004 MyAdoTable.IndexName:='PK'; {hvis primærindexen, som indekserer felt 'abc', heter 'PK'} MyAdoTable.Seek('x',soFirstEQ); For mer informasjon se hjelp for TCustomADODataSet.IndexName Jeg har testet denne koden, men får bestandig en feilmelding som sier at "Current provider does not support the necessary interface for Index functionality"... Denne meldingen får jeg bestandig; enten jeg bruker MyAdoTable.Indexname:='PK' eller ei... Jeg regner med at det er ADO interfacet som skaper problemene? Dersom du har fått denne koden til å fungere, regner jeg at du bruker en Jet 4.0 ADO connection og Windows XP?? Mange takk for svar, Christoffer Lenke til kommentar
redlionion Skrevet 8. mars 2004 Forfatter Del Skrevet 8. mars 2004 Jeg bruker Goto eller Find til slike formål, også for Access-tabeller.... Problemet er at dette vil bli en ganske stor og kompleks database, og jeg ønsker å bruker indekser for å bidra til økt ytelse... Takk, Christoffer Lenke til kommentar
DidzisK Skrevet 8. mars 2004 Del Skrevet 8. mars 2004 jeg ønsker å bruker indekser for å bidra til økt ytelse Jeg anbefaler TADOQuery med SQL istedenfor TAdoTabell. Lenke til kommentar
DidzisK Skrevet 8. mars 2004 Del Skrevet 8. mars 2004 regner jeg at du bruker en Jet 4.0 ADO connection og Windows XP?? Nei, jeg har aldri utviklet mot Access og jeg har aldri vært interessert i Index funksjonalitet på TAdoTable (jeg bruker TAdoQuery oftest siden jeg utvikler mot SQLServer). Men denne type koden funker hos meg mot TClientDataset, mot TTable og mot TtbTable (for Btrieve/Pervasive). Her er en liten snutt fra Delphi help som kanskje løser problemet ditt (kanskje ikke): Many providers do not support changing indexes while the dataset is active, raising an exception when an attempt is made to do this. Ensure that the dataset is closed before changing the index through the IndexName property and reopen the dataset after specifying a new index. Eller - er du sikker på at du bruker den mest avanserte provideren som er tilgjengelig på din maskin? Kanskje bruker du "provider for ODBC services" mens du kunne brukt "provider for Jet X.Y" (ja, jeg har 4.0 der) når du lager ConnectionString. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå