Ri: In che modo interrogare il database?Preferisco usare la terza opzione. Reason being è il più chiaro (secondo me) e mi consente di controllare quando chiudo la connessione al database (è anche il primo che ho imparato). L'unico caso in cui utilizzo New SQL Query è quando voglio eseguire una query in background. Potrei prendere in considerazione il passaggio a New SQL Query se c'è qualche motivo per farlo (solo essere "consigliato" non è sicuramente sufficiente per me per passare ad esso).
Ri: In che modo interrogare il database?Grazie @jthi per la tua risposta,
Mi piacerebbe sentire una dichiarazione degli sviluppatori di JMP qui, perché non sono riuscito a trovare nulla all'interno della documentazione,
@martindemel O @briancorcoran ?
Forse si potrebbe aggiungere qualche parola alla documentazione sulle diverse modalità di database?
Ri: In che modo interrogare il database?Qualche documentazione aggiuntiva ed esempi di lavoro appropriati sarebbero sicuramente utili (forse usare il database .sqlite e aggiungerlo a $SAMPLE_IMPORT_DATA?).
Questo sembra avere della documentazione ma non è correttamente collegato al pulsante della guida di Scripting Index https://www.jmp.com/support/help/en/17.0/#page/jmp/sql-messages.shtml# e poi abbiamo questo https://www.jmp.com/support/help/en/17.0/#page/jmp/sql-functions.shtml#ww5089351 .
Se questo è davvero il metodo preferito (le prestazioni tra metodi diversi sono state testate?) Molto probabilmente potrei iniziare a modificare i miei script per utilizzare la soluzione << Esegui in primo piano.
Ri: In che modo interrogare il database?Ho fatto alcuni test con New SQL Query e mi sembra che abbia alcune caratteristiche interessanti che sono implementate in modo tale che non le userei davvero, come le funzioni usate con OnRunComplete/OnRunCanceled/OnError devono essere nello spazio dei nomi globale . Forse potrei scrivere alcune funzioni molto generali che potrebbero essere utilizzate con queste, ma comunque ... è uno spazio dei nomi globale.
Sembra anche essere più lento di Apri database o Esegui SQL (soprattutto prima dell'avvio della query), il che potrebbe essere un problema se dovessi eseguire più query di piccole dimensioni. Forse dovrei modificare la mia stringa dns in qualche modo quando utilizzo New SQL Query (al di fuori dell'aggiunta di ODBC
?


Molto probabilmente mi atterrò ai metodi di query "più vecchi" a meno che non debba essere in grado di eseguire le mie query in background.
Ri: In che modo interrogare il database?Ciao Giorgio, Jarmo,
La nuova query SQL è il metodo che otterrà i miglioramenti in futuro, mentre la creazione della connessione al database e l'esecuzione di sql saranno in gran parte in modalità di manutenzione (correzione di bug). Nuove iniziative JMP 18+ che abbiamo intorno alla creazione di più metodi di accesso ai database e alla persistenza delle informazioni di connessione poiché i connettori dati basati su JSL utilizzeranno New SQL Query. Farò sapere alla documentazione che le informazioni potrebbero essere più chiare.
Spero che aiuti,
Brian Corcoran
Sviluppo JMP
Ri: In che modo interrogare il database?ciao jti,
nel mio caso la velocità non è la cosa più importante, mi piace "nuova query sql" per la funzionalità e perché è più sicura per quanto riguarda la stringa di connessione e la password.
Se la preferenza "Nascondi stringhe di connessione ODBC" non è impostata, entrambi gli altri metodi inseriranno letteralmente la password nello script sorgente della nuova tabella. "new sql query" mantiene la stringa di connessione ma cambia la password in "%PWD%".
Se la preferenza "Nascondi stringhe di connessione ODBC" è impostata, rimuoverà gli script {"source", "modifica query", "update from database"} e non mi piace, perché è bello che jmp colleghi la tabella con il modo in cui i dati sono stati generati e la possibilità di aggiornare i dati, un'opzione che utilizzo molto spesso.
In un panorama aziendale con diversi scripter è difficile gestire metodi diversi (e quindi impostazioni di preferenze diverse a seconda dei metodi). Rende tutto complicato. Ecco perché mi piace avere un chiaro preferito.
In che modo andare a interrogare il database?Carissimi,
Uso molto le query di database, in combinazione con sql personalizzato. Lo so, ci sono 3 metodi come mostrato di seguito.
Mi piace di più la "nuova query sql", perché è la più potente e più sicura (vedi password ...).
Sfortunatamente il suo comportamento relativo a Nascondi stringhe di connessione ODBC è cambiato in JMP17, ma verrà corretto:
Comportamento JMP17 sulla preferenza "Nascondi stringhe di connessione ODBC" impostata: stringa di connessione... - Comunità di utenti JMP
Mi è stato detto dagli sviluppatori al Discovery Summit Europe di Sitges che il metodo nuove query sql è quello consigliato, più stabile, e gli altri due sono obsoleti. Ma ho anche sentito che c'è un problema di velocità. Qui non ho mai letto di questa raccomandazione, né nella documentazione.
vorrei discutere:
Che metodo usi e perché?
E che esperienze hai fatto?
Grazie e distinti saluti,
Giorgio
Nomi Predefinito A Qui( 1 ); // 3 modi diversi per l'accesso al database // costanti // funziona su tutti i database Oracle sql_str = "select * from Dual"; // deve essere adattato al tuo database cnx_str ="DSN=MYDSN_NAME;UID=USERNAME;PWD=PASSWORD"; // la nuova query sql necessita di una stringa di connessione che inizia con "ODBC:" // non c'è una buona documentazione nel manuale (guida agli script e Guida di JMP) qry_obj = New SQL Query( nome query("New SQL Query"), connection( " ODBC:"||cnx_str ), personalizzato sql( sql_str ) ); dt_sqlquery = qry_obj << esegui foreground(); // open database è un oneliner // con "Nascondi stringa di connessione ODBC" non impostato, salva la semplice password negli script della tabella dt_open = open database(cnx_str, sql_str, "Open Database"); // expecute sql richiede che il database sia aperto prima di inviare istruzioni // con "Nascondi stringa di connessione ODBC" non impostato, salva la semplice password nella tabella scripts dbc=create database connection(cnx_str); dt_execute = esegui sql(dbc, sql_str, "Esegui SQL"); chiudere la connessione al database (dbc); // EOSAutomazione e scripting