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

    [delphi] ibdataset OnFilterRecord

    Ciao a tutti,

    in un db ho 10 tabelle ognuna delle quali

    codice:
    CREATE TABLE TABELLA01(
        ID                 INTEGER NOT NULL PRIMARY KEY,
        ITEM               VARCHAR(100));
    nel mio programma delphi, per ogni tabella inserisco:
    IBdataset + datasource...che utilizzo per inserire e modificare i dati della tabella.

    IBquery + datasource..che utilizzo per visualizare nei camp di lookup

    sono diversi anni che utilizzo questa tecnica e funziona....

    vorrei rendere più leggibile il programma e avevo pensato di ridurre il numero delle tabelle creandone una unica :


    codice:
    CREATE TABLE TABELLA01(
        ID                 INTEGER NOT NULL PRIMARY KEY,
        tipotabella      INTEGER,
        ITEM               VARCHAR(100));
    sfruttando l'evento OnFilterRecord del componente ibdataset.

    ma in questo modo avrei problemi con i campi di lookup quando quando in una schermata devo selezionare record di riferimento alla tabella1 e alla tabella2.....

    Voi che tecnica utilizzate per memorizzare queste tabelle? usate n tabelle o una unica tabella?

    grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Usare l'evento OnFilterRecord non è ottimale, perché il filtro avviene sul client e non sul server, quindi di fatto scarichi anche i dati delle altre "tabelle" (virtuali) per selezionare solo nel client i dati che ti interessano.

    A parte questo, il lookup si può sempre fare basandolo su più campi, e non solamente uno.

    Nel tuo caso specifico, se ho capito bene cosa vuoi ottenere, filtra direttamente la tabella in base al campo "tipotabella" nella query SQL che utilizzi nel componente IBDataSet.

    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
    Ciao,

    il mio obiettivo è quello di inserire un unic ibdataset+ datasource per tutte le tabelle del programma.

    Quote Originariamente inviata da alka Visualizza il messaggio
    A parte questo, il lookup si può sempre fare basandolo su più campi, e non solamente uno.
    dove si definiscono?


    Quote Originariamente inviata da alka Visualizza il messaggio
    Nel tuo caso specifico, se ho capito bene cosa vuoi ottenere, filtra direttamente la tabella in base al campo "tipotabella" nella query SQL che utilizzi nel componente IBDataSet.

    su una form inserisco 5 campi lookup tutti che attingono dati dallo stessa ibdataset+datasource.
    il lookup lo effetuo tramite la chiave ID che è univoca e visualizzo bene i dati.

    il problema è quando si apre la tendina per la selezione del record voluto.
    dovrei fare in modo che per il

    campo1 visualizzo solo i record con tipotabella=1
    campo2 visualizzo solo i record con tipotabella=2
    campo3 visualizzo solo i record con tipotabella=3
    ....

    se modifico la query SQL 'select * from tabella where tipotabella=3 ' succede che campo1 e campo2 perdono (a video) la referenza del record

    forse non h ben capito come suggerisci?

    grazie

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.