Questione : Forme di Oracle: Come popolare dinamicamente le scatole di controllo dalla base di dati

Ciao, la necessità del

I di popolare le scatole di controllo in Oracle si forma dalla base di dati. Ho struttura della tabella di base di dati come segue:
insert del

PEOPLE (sottolineatura " >PEOPLEID
, FNAME, LNAME del class= E) (11111, “ANDY„, “ADAMS ");
insert nella GENTE (PEOPLEID, FNAME, VALORI di LNAME) (22222, “BRIAN„, “BANCA ");
insert nella GENTE (PEOPLEID, FNAME, VALORI di LNAME) (33333, “CANTO NATALIZIO„, “ACCAMPAMENTI ");

insert del

PEOPLE_INTERESTS (del class= INTERESTID del >PEOPLEID
, ") nei VALORI di PEOPLE_INTERESTS (PEOPLEID, INTERESTID) (11111, “AAA ");
insert nei VALORI di PEOPLE_INTERESTS (PEOPLEID, INTERESTID) (11111, “ccc ");
insert nei VALORI di PEOPLE_INTERESTS (PEOPLEID, INTERESTID) (33333, “ccc ");
insert nei VALORI di PEOPLE_INTERESTS (PEOPLEID, INTERESTID) (33333, “BBB ");

" sottolineatura " >INTERESTID, INTERESTSTYPE)
insert di INTERESTS_TYPE (class= di INTERESTS_TYPE (INTERESTID, INTERESTS) (“AAA„, “nell'AGRICOLTURA ");
insert nei VALORI del di INTERESTS_TYPE (INTERESTID, INTERESTS) (“BBB„, “nei LIBRI ");
insert nei VALORI del di INTERESTS_TYPE (INTERESTID, INTERESTS) (“ccc„, “nel CALCOLATORE ");
insert nei VALORI del di INTERESTS_TYPE (INTERESTID, INTERESTS) (“DDD„, “FINANZE "); il

I vorrebbe mostrare queste 4 scatole di controllo sulla forma. Nella forma, quando la ricerca di utente “ANDY ADAMS„, su di quattro scatole di controllo, '' di AGRICOLTURA '' e le scatole di controllo “del CALCOLATORE„ dovrebbero essere controllate. L'utente dovrebbe essere concede pubblicare queste scatole di controllo. Nel generare i nuovi record, queste 4 scatole di controllo dovrebbero essere disponibili a user.

I realmente apprezzeranno se se qualcuno potesse darmi alcune idee su come realizzare questo. Sono nuovo alle forme, la mia conoscenza delle forme sono molto limited.

Thanks,

class= del

Risposta : Forme di Oracle: Come popolare dinamicamente le scatole di controllo dalla base di dati

Per questa specie di comportamento con un numero cambiante limitato ma possibile delle possibilità che sceglierei il seguente metodo, quello richiede appena alcuni cambiamenti da comportamento di difetto delle forme di oracolo.
Generare una tabella provvisoria
generare il cartesian_check globale della tabella provvisoria
((PEOPLEID (lo stesso tipo di altro),
interest_id (lo stesso tipo di altro),
INTERESSI (lo stesso tipo di altro),
varchar2 controllati (1))
SU COMMETTERE LE FILE DELLA CONSERVA;

definire il blocchetto del bambino sulla tabella provvisoria e contrassegnarlo come soltanto updateble;
soltanto gli interessi delle colonne e controllato devono visibile e controllato soltanto è updateble
nell'innesco pre-quiry del blocchetto del bambino
    cancellazione da cartesian_check;
    inserto in cartesian_check
      prescelto: masterblock.people_id, interest_id, INTERESSI,
      (prescelto decodificare (conteggio (*), 0, “N„, “Y ")
     dal pi più people_interest
     dove people_id di pi =: master.people_id
     e PI.interest_id = it.inertestid) controllato
     da interests_type ESSO;

nell'innesco del on_update
    se controllato = “N„ allora
        cancellazione dal pi più people_interest
        dove people_id di pi =: people_id
       e PI.interest_id =: interest_id;
   concluder se;
    se controllato = “Y„ allora
      inserto in interests_type ESSO
      prescelto: people_id: interest_id
      da doppio
      -- evitare il cambiamento Y - la N - del Y dall'inserimento della seconda annotazione
      DOVE NON ESISTE (SELEZIONARE 1
                                         DAL pi più people_interest
                                         dove people_id di pi =: people_id
                                         e PI.interest_id =: interest_id)
    concluder se;
Altre soluzioni  
 
programming4us programming4us