Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Indici ed ADO

  1. #1

    Indici ed ADO

    Ragazzi,

    io utilizzo come database microsoft access, sto iniziando ad utilizzare il metodo ado in vb però mi sono accorto che il provider ole db 3.51 e 4.0 non supporta l'interfaccia index, però sulle tabelle per effettuare delle ricerche molto + veloci gli indici vengono inseriti sia come chiave primaria che come chiavi secondarie.

    La mia domanda è questa: si può utilizzare ado e gli indici che uno crea su access e come si deve fare?

    C'è qualcuno che mi può dare una mano anche facendomi vedere qualche riga di programmazione?

    Grazie mille e ciao a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    327
    Cioè???

    Se tu fai delle query su db access si arrangia il motore jet a chiedere aiuto agli indici che hai definito nel db.

    Devi stare accorto tu nelle query in modo da fare delle condizioni di WHERE che siano compatibili con gli indici che hai definito

  3. #3
    Utente di HTML.it L'avatar di Gigi84
    Registrato dal
    May 2001
    Messaggi
    569
    Ti ha gia risposto Sebamix in un post precedente..

    devi aprire una tabella con l'opzione adcmdTableDirect,
    impostare la proprietà index del recordset appena aperto:
    tuorst.index = "NomeIndice"
    e poi usare il metodo seek(che effettuerà le ricerche sul\i campo\i indicizzato\i)

    tuorst.Seek "valore da cercare",opzioni di ricerca

    se il valore non è stato trovato il recordset sarà su EOF


  4. #4

    esempio

    Grazie della risposta,
    ti volevo chiedere se mi potevi far vedere come posso scrivere il codice della seek sotto ado, tu mi hai detto che devo fare così: tuorst.Seek "valore da cercare",opzioni di ricerca
    mi puoi fare su esempio e cosa sono le opzioni di ricerca?

    ciao

  5. #5
    Utente di HTML.it L'avatar di Gigi84
    Registrato dal
    May 2001
    Messaggi
    569
    dall'MSDN per le opzioni di ricerca

    recordset.Seek ValoriChiave, OpzioneSeek

    Parametri

    ValoriChiave Matrice di valori VARIANT. Un indice consiste di una o più colonne; la matrice contiene un valore da confrontare con ciascuna delle colonne corrispondenti.

    OpzioneSeek Valore SeekEnum che specifica il tipo di confronto da effettuare tra le colonne dell'indice e i corrispondenti ValoriChiave. Può essere una delle seguenti costanti di confronto:

    Costante Descrizione
    adSeekAfterEQ Cerca una chiave nella stessa posizione di ValoriChiave o nella posizione immediatamente successiva.

    adSeekAfter Cerca una chiave nella posizione immediatamente successiva a ValoriChiave.
    adSeekBeforeEQ Cerca una chiave nella stessa posizione di ValoriChiave o nella posizione immediatamente precedente.
    adSeekBefore Cerca una chiave nella posizione immediatamente precedente a ValoriChiave.
    adSeekFirstEQ Cerca la prima chiave uguale a ValoriChiave.
    adSeekLastEQ Cerca l'ultima chiave uguale a ValoriChiave.

    Osservazioni

    Utilizzare il metodo Seek insieme alla proprietà Index se il relativo provider supporta indici sull'oggetto Recordset. Determinare se il provider supporta indici con il metodo Supports (adIndex).

    Se Seek non trova la riga richiesta, non si verificano errori e la riga viene spostata alla fine del file. Impostare la proprietà Index all'indice desiderato prima di eseguire il metodo.

    Questo metodo può essere utilizzato soltanto quando la proprietà CursorLocation dell'oggetto Recordset ha un valore diverso da adUseClient.
    esempio l'indice si chiama indice1 e fa riferimento ad un campo IDOrdine

    codice:
    rst.Index = "indice1"
    
    IdDaCercare = "01001"
    
    rst.movefirst
    
    rst.seek iDDaCercare,adSeekFirstEQ   'così è un findfirst di dao
    list1.additem rst("IDOrdine")
    
    do until rst.eof
        rst.seek iDDaCercare,adSeekAfter   'così è un findnext di dao
        if not rst.eof then list1.additem rst("IDOrdine")
    loop
    riempi una listbox con i valori trovati.
    ad occhio dovrebbe andare.. boh..


    ciao!!

  6. #6

    grazie

    Grazie mille delle spiegazioni e dell'esempio, sono chiare, ora le metto in pratica e poi ti farò sapere.

    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.