Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326

    [DELPHI] IBQuery e modalità UniDirectional/BiDirectional

    Ciao a tutti,

    in un programma scritto in delphi ho avuto un problema di memoria durante l'apertura di una tabella tramite il componente IBQuery

    il comando e' semplice: select miatabella.id,miatabella.nome from miatabella

    la tabella contiene circa 60000 record.

    facendo prove ho visto che impostando alk componente IBQuery il flag Unidirectional:=True si riesce a superare il problema, ma non mi è chiara la differenza tra Unidirectional e Bidirectional.

    qualcuno mi puo aiutare?

    grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quote Originariamente inviata da 123delphi321 Visualizza il messaggio
    facendo prove ho visto che impostando alk componente IBQuery il flag Unidirectional:=True si riesce a superare il problema, ma non mi è chiara la differenza tra Unidirectional e Bidirectional.
    Mi pare strano che si verifichi un problema del genere con un numero abbastanza esiguo di record, tutto sommato... potrebbero esserci altre cose che causano l'esaurimento della memoria, magari non la query in sé ma qualcosa di correlato.

    Ad ogni modo, la proprietà UniDirectional cambia la natura del cursore: quando è impostato a False, significa che si può navigare tra i record, e questo presuppone che essi vengano memorizzati in una cache in memoria con la possibilità di spostarsi in avanti o indietro, al primo o all'ultimo, o di posizionarsi su un record specifico. Questo è utile ad esempio con le griglie, anzi è imprescindibile.

    Se invece occorre generare HTML o produrre un report, è meglio impostare la proprietà a True, così si evita la suddetta cache navigando i record solamente dal primo al successivo, e via via fino all'ultimo, mantenendo in memoria uno e un solo record: quello corrente.

    Altre info eventualmente puoi leggerle dalla documentazione e facendo ricerche.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    Buongiorno, grazie Marco per la risposta.
    Questa query io la utilizzo come tabella di riferimento nei campi lookup.

    Ad ogni modo questo errore ha iniziato a verificarsi tipo dal mese di giugno luglio e non so se possa mai di venire da un aggiornamento di Windows.
    Il programma è scritto in delphi7 e utilizzo db fireBird 2.5....

    Credi che il problema possa essere la versione di Delphi?

    Il programma ha funzionato senza alcun problema già da tre anni.

    Grazie

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Purtroppo non conosco il programma, non so come è strutturato il codice, non conosco il DB, non so nulla di nulla riguardo il progetto e quindi mi risulta difficile fare delle ipotesi su quale potrebbe essere la causa del problema.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.