Problema durante il looping dei dati tabel<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho una tabella di dati basata su una query sql. Voglio passare in rassegna la tabella di dati e creare ed eseguire nuove istruzioni SQL basate sui valori nella tabella di dati originale.
Per qualche motivo sembra che l'istruzione sql venga creata due volte prima con i nomi delle variabili e successivamente con i valori di variabilità effettivi. Di seguito ho il codice e il risultato del log quando viene eseguito il codice. Ogni suggerimento / spiegazione riguardo al problema è molto apprezzato.
br
Hans
CODICE da qui:
dtMonitor = DatabaseOpslag ("SELEZIONA distinto trial_no, trial_unit_reference FROM table");
For (i = 1, i <= nrows (dtMonitor), i ++,
spettacolo (: trial_no );
spettacolo (: trial_unit_reference );
Mostra ("Istruzione SELECT in cui IMPACT_ALL_ISSUES.ISSUE_CATEGORY_CODE piace" PD% "e IMPACT_ALL_ISSUES.trial_no =" || Char (EVAL (: trial_no )) || "e IMPACT_ALL_ISSUES.trial_unit_reference come" || Char (EVAL (: trial_unit_reference )) || "");
);
/ *:
LOG da qui:
: TRIAL_NO = 3748;
: TRIAL_UNIT_REFERENCE = "822";
"SELECT PRIMARY_INVESTIGATOR, COUNTRY_NAME, IMPACT_ALL_ISSUES.TRIAL_UNIT_REFERENCE, PATIENT_ENTRY_NO, ISSUE_CATEGORY_DESC, ISSUE_TITLE, ISSUE_DESC, ISSUE_ACTION, GCP_ISSUE, ISSUE_CREATED_BY_FORENAME, ISSUE_CREATED_BY_SURNAME, CREATED_DATE, CLOSED_DATE, ISSUE_RESOLVED DA IMPACT_ALL_ISSUES INNER JOIN IMPACT_UNIT_LEVEL ON (IMPACT_ALL_ISSUES.UNIT_KEY = IMPACT_UNIT_LEVEL.UNIT_KEY) e (IMPACT_ALL_ISSUES. TRIAL_NO = IMPACT_UNIT_LEVEL.TRIAL_NO) dove IMPACT_ALL_ISSUES.ISSUE_CATEGORY_CODE piace "PD%" e IMPACT_ALL_ISSUES.trial_no = "|| Char (Eval (: TRIAL_NO )) || "e IMPACT_ALL_ISSUES.trial_unit_reference come" || Char (Eval (: TRIAL_UNIT_REFERENCE )) || "" = "SELECT PRIMARY_INVESTIGATOR, COUNTRY_NAME, IMPACT_ALL_ISSUES.TRIAL_UNIT_REFERENCE, PATIENT_ENTRY_NO, ISSUE_CATEGORY_DESC, ISSUE_TITLE, ISSUE_DESC, ISSUE_ACTION, GCP_ISSUE, ISSUE_CREATED_BY_FORENAME, ISSUE_CREATED_BY_SURNAME, CREATED_DATE, CLOSED_DATE, ISSUE_RESOLVED DA IMPACT_ALL_ISSUES INNER JOIN IMPACT_UNIT_LEVEL ON (IMPACT_ALL_ISSUES.UNIT_KEY = IMPACT_UNIT_LEVEL.UNIT_KEY) E (IMPACT_ALL_ISSUES.TRIAL_NO = IMPACT_UNIT_LEVEL.TRIAL_NO) dove IMPACT_ALL_ISSUES.ISSUE_CATEGORY_CODE come "PD%" e IMPACT_ALL_ISSUES.trial_no = 3748 e IMPACT_ALL_ISSUES.trial_unit_reference come 822 ";
Ri: Problema durante il looping dei dati tabelLa tabella dati corrente di JMP cambierà quando viene creata una nuova tabella e quando si fa clic su una tabella diversa. È consigliabile utilizzare il riferimento esplicito alla tabella anziché dipendere dalla tabella di dati corrente.
Craige
Ri: Problema durante il looping dei dati tabelgrazie per lo sforzo di aiutarmi usare la tabella come prefisso ha fatto la differenza.
Ri: Problema durante il looping dei dati tabelQuesto ha fatto il trucco - grazie
quindi solo per la mia comprensione / apprendimento: jmp si confonde su quale tabella dati mi riferisco quando cerco di fare riferimento alle variabili? ma con la tabella come prefisso che è risolto?
Ri: Problema durante il looping dei dati tabelHo appena pubblicato un'utilità di intercettazione degli errori che utilizzo per Oracle ODBC SQL, allo scambio di file. Clic Qui per vederlo. È specifico per Oracle, ma potrebbe essere adattato per altri database.
Ri: Problema durante il looping dei dati tabel C Hales è corretta. Tuttavia la tua variabile di tabella è dtmonitor , non dt. Si desidera quanto segue nella propria istruzione sql nel ciclo:
dtmonitor : trial_no [ io ]
e
dtmonitor : TRIAL_UNIT_REFERENCE [ io ]
Ri: Problema durante il looping dei dati tabeli messaggi di errore in JMP richiedono un po 'di spiegazioni la prima volta che ne vedi uno:
Nome non risolto: trial_no in accesso o valutazione di 'trial_no',: trial_no / * ### * /
questo è ciò che è andato storto, ma dove? la prossima linea ti dice come verrà segnalato l'errore:
Nel seguente script, errore contrassegnato da / * ### * /
D1 = Dialog ("prompt", Monitor = edittext ("Monitor iniziali"));
... salta un gruppo di script e trova ...
|| Char (: trial_no / * ### * / ) ||
Penso che la tabella di dati che JMP sta cercando non abbia una colonna "trial_no". Se è presente più di una tabella di dati, è possibile utilizzare dt: trial_no per essere espliciti sulla tabella in cui trovare la variabile.
Ri: Problema durante il looping dei dati tabelstupido errore da parte mia dispiaciuto 
Ho corretto l'ortografia e quando eseguo lo script e diplays solo l'istruzione sql sembra che le istruzioni siano generate come previsto. ma quando provo a passare l'istruzione sql a una funzione che rende la query db e metti il risultato in una tabella, la funzione viene eseguita solo una volta e poi genera un errore. Ho creato un log in cui visualizzo solo l'istruzione sql (logshow.jsl) e quella in cui cerco di eseguire (logexecute.jsl).
Sono nuovo allo script jmp quindi non sono sicuro di cosa fare?
Ri: Problema durante il looping dei dati tabelTi manca il primo e in sql_statement.
Cambia questo:
mostrare ( sql_statment ) ;
a questo:
mostrare ( sql_statement ) ;
Ri: Problema durante il looping dei dati tabelGrazie per la ricerca in questo, ma ancora non riesco a rendere la dichiarazione SQL che provo a vedere il codice dal registro sottostante:
Modulo CODICE qui:
dtMonitor = DabaseOpslag ( "SELEZIONA distinto trial_no, trial_unit_reference FROM IMPACT_MONITOR_WORKLOAD dove nome utente come" "|| Monitor ||" "e site_closed_date è null" ) ;
Per ( i = 1, i <= nrows ( dtMonitor ) , I ++,
sql_statement = "SELECT PRIMARY_INVESTIGATOR, COUNTRY_NAME, IMPACT_ALL_ISSUES.TRIAL_UNIT_REFERENCE, PATIENT_ENTRY_NO, ISSUE_CATEGORY_DESC, ISSUE_TITLE, ISSUE_DESC, ISSUE_ACTION, GCP_ISSUE, ISSUE_CREATED_BY_FORENAME, ISSUE_CREATED_BY_SURNAME, CREATED_DATE, CLOSED_DATE, ISSUE_RESOLVED DA IMPACT_ALL_ISSUES INNER JOIN IMPACT_UNIT_LEVEL ON (IMPACT_ALL_ISSUES.UNIT_KEY = IMPACT_UNIT_LEVEL.UNIT_KEY) AND ( IMPACT_ALL_ISSUES.TRIAL_NO = IMPACT_UNIT_LEVEL.TRIAL_NO) dove IMPACT_ALL_ISSUES.ISSUE_CATEGORY_CODE piace "PD%" e IMPACT_ALL_ISSUES.trial_no = "|| Char ( : trial_no [ io ]) || "e IMPACT_ALL_ISSUES.trial_unit_reference come" || Char ( : trial_unit_reference [ io ]) || "";
Mostrare ( sql_statment ) ;
) ;
/ *:
LOG risposta:
Nome non risolto: sql_statment in accesso o valutazione di 'sql_statment', sql_statment / * ### * /
Ri: Problema durante il looping dei dati tabelSì, show () funziona meglio con nomi di variabili semplici. Le espressioni complicate producono risposte confuse.
Ri: Problema durante il looping dei dati tabelÈ possibile rimuovere gli EVAL. Imposta l'istruzione SQL uguale a una variabile e quindi mostra la variabile:
Per ( io = 1 , io <= nrows ( dtMonitor ) , io ++,
mostrare ( : trial_no [ io ]) ;
mostrare ( : trial_unit_reference [ io ]) ;
sql_statement =
"Istruzione SELECT
dove IMPACT_ALL_ISSUES.ISSUE_CATEGORY_CODE piace "PD%"
e IMPACT_ALL_ISSUES.trial_no = " || carbonizzare ( : trial_no [ io ]) || "
e IMPACT_ALL_ISSUES.trial_unit_reference come " || carbonizzare ( : trial_unit_reference [ io ]) ;
mostrare ( sql_statement ) ;
) ;