Visualizzazione dei risultati da 1 a 8 su 8

Discussione: c# e access 2000

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    c# e access 2000

    vorrei fare una query tra due tabelle relazionate ,con un parametro e un campo, se immetto nel campo "*" deve prendermi anche tutti i null del campo ,altrimenti no.
    VOrei usare un comando sql o una query di access da invocare.
    Grazie.

    ps.uso access 2000 come db e c#.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    passo a spiegare meglio il problema:
    Ho una tabella master e 2 detail io vorrei fare una query in modo da ricercare nelle 2 tabelle detail un dato valore del campo e ,se è verificato andare a settare un flag nel record correlato della tabella master.
    la tabella master è relazionata con dei join esterni sulle tabelle correlate , in modo che se non ho il campo nella tabella correlata ho un campo correlato alla tabella padre con null.
    sbaglio tutto?
    CIao.

  3. #3
    Tu intendi che in nella tabella esistono due chiavi esterne, dove una punta alla tabella dettagli 1 e l'altra alla tabella dettagli 2?

    In tal caso possono anche essere null, basta che non metti vari vincoli di integrità referenziale e not null.

    L'importante è che in futuro nelle query dovrai tener conto della possibilità di assenza di un record correlato e usare delle left join (o right, dipende da come le piazzi) anziché inner join.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Ho gia utilizzato i left join , ma non riesco a creare una query in access che mi setta un flag sulla tabella master quando c'è corrispondenza di criteri sulle tabelle figlio.

    In pratica ho 2 tipi di funzionamento :
    1)se imposto il parametro a * sulla tabella figlio deve settare tutti i flag corrispondenti(da relazione)nella tabella master,compresi i null
    2)se il parametro è un dato devo settare il record corrispondente nella tabella padre senza i null
    è una ricerca
    ciao.

  5. #5
    Purtroppo non riesco a capire cosa dovrebbe fare il database

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    in pratica la query è un filtro che si deve comportare in due modi:
    vado a filtrare sulle tabelle detail.

    1)quando inserisco un carattere * (parametro prog) nella query ho un campo testo con un criterio like [prog] su una delle tabelle figlio ,quindi diviene like * e di conseguenza mi deve settare il flag nei campi relativi sulla tabella master , ma , un campo nelle tabelle figlio puo' essere anche null , dato che ho fatto dei join esterni , nel qual caso devo andare a settare quando [prog] è * anche tutti i record che sono a null e a flaggare i record padre.

    2)la stessa query , quando inserisco un valore ad es "pippo" deve andare a flaggare il record padre del record che contiene "pippo"(record figlio)

  7. #7
    Non capisco molto bene ma cerco di darti una mano lo stesso

    Allora, se non ho capito male con CAMPO LIKE * vorresti dirgli "qualsiasi valore abbia CAMPO"?

    In Access si usa * ma fai attenzione che se usato all'esterno (ad esempio da C#) devi usare % se non sbaglio.

    Inoltre (non so se access lo supporta) esiste la funzione ISNULL.

    Se devi prendere in esame CAMPO che potrebbe essere null in virtù delle left join potresti scrivere ISNULL(CAMPO,VALORE)

    Se funziona Nel caso trovi un campo null lo converte automaticamente in VALORE, che potrebbe essere un numero o una stringa, questo poi lo decidi tu.

    Non ho idea se quello che ti ho scritto c'entri qualcosa con quello che ti serve ma spero di si

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    grazie ho risolto è come dici tu

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.