Betreff: Welchen Weg soll ich bei der Datenbankabfrage einschlagen?Ich bevorzuge die dritte Option. Der Grund dafür ist (meiner Meinung nach) der klarste und lässt mich steuern, wann ich meine Datenbankverbindung schließe (es ist auch der erste, den ich gelernt habe). Der einzige Fall, in dem ich die neue SQL-Abfrage verwende, ist, wenn ich die Abfrage im Hintergrund ausführen möchte. Wenn es einen Grund dafür gibt, könnte ich darüber nachdenken, auf „Neue SQL-Abfrage“ umzusteigen (nur „empfohlen“ zu werden reicht mir definitiv nicht aus, um darauf umzusteigen).
Betreff: Welchen Weg soll ich bei der Datenbankabfrage einschlagen?Danke @jthi für deine Antwort,
Ich würde hier gerne eine Stellungnahme der Entwickler von JMP hören, da ich in der Dokumentation nichts finden konnte.
@martindemel oder @briancorcoran ?
Vielleicht könnten der Dokumentation ein paar Worte zu den verschiedenen Möglichkeiten zur Datenbank hinzugefügt werden?
Betreff: Welchen Weg soll ich bei der Datenbankabfrage einschlagen?Eine zusätzliche Dokumentation und geeignete Arbeitsbeispiele wären auf jeden Fall nützlich (vielleicht die .sqlite-Datenbank verwenden und sie zu $SAMPLE_IMPORT_DATA hinzufügen?).
Es scheint zwar eine Dokumentation zu geben, diese ist jedoch in der Hilfeschaltfläche für den Skriptindex nicht richtig verlinkt https://www.jmp.com/support/help/en/17.0/#page/jmp/sql-messages.shtml# und dann haben wir das hier https://www.jmp.com/support/help/en/17.0/#page/jmp/sql-functions.shtml#ww5089351 .
Wenn dies wirklich die bevorzugte Methode ist (wurde die Leistung zwischen verschiedenen Methoden getestet?), könnte ich höchstwahrscheinlich damit beginnen, meine Skripte so zu ändern, dass sie die Lösung „<< Run Foreground“ verwenden.
Betreff: Welchen Weg soll ich bei der Datenbankabfrage einschlagen?Ich habe einige Tests mit New SQL Query durchgeführt und habe das Gefühl, dass es einige nette Funktionen hat, die so implementiert sind, dass ich sie nicht wirklich verwenden würde, wie z. B. Funktionen, die mit OnRunComplete/OnRunCanceled/OnError verwendet werden, müssen sich im globalen Namespace befinden . Vielleicht könnte ich einige sehr allgemeine Funktionen schreiben, die damit verwendet werden könnten, aber trotzdem ... es ist ein globaler Namespace.
Es scheint auch langsamer zu sein als Open Database oder Execute SQL (insbesondere vor dem Start der Abfrage), was ein Problem sein könnte, wenn Sie mehrere kleine Abfragen ausführen. Vielleicht müsste ich meine DNS-Zeichenfolge irgendwie ändern, wenn ich eine neue SQL-Abfrage verwende (außerhalb des Hinzufügens von ODBC
?


Höchstwahrscheinlich bleibe ich bei „älteren“ Abfragemethoden, es sei denn, ich muss meine Abfragen im Hintergrund ausführen können.
Betreff: Welchen Weg soll ich bei der Datenbankabfrage einschlagen?Hallo Georg, Jarmo,
Die neue SQL-Abfrage ist die Methode, die in Zukunft die Verbesserungen erhalten wird, während das Erstellen einer Datenbankverbindung und das Ausführen von SQL weitgehend im Wartungsmodus (Fehlerbehebung) erfolgen werden. Neue JMP 18+-Initiativen betreffen die Schaffung weiterer Zugriffsmethoden auf Datenbanken und die Beibehaltung dieser Verbindungsinformationen, da JSL-basierte Datenkonnektoren neue SQL-Abfragen verwenden werden. Ich werde der Dokumentation mitteilen, dass die Informationen klarer sein könnten.
Ich hoffe das hilft,
Brian Corcoran
JMP-Entwicklung
Betreff: Welchen Weg soll ich bei der Datenbankabfrage einschlagen?Hallo jthi,
In meinem Fall ist Geschwindigkeit nicht das Wichtigste, ich mag „neue SQL-Abfrage“ wegen der Funktionalität und weil es sicherer in Bezug auf Verbindungszeichenfolge und Passwort ist.
Wenn die Einstellung „ODBC-Verbindungszeichenfolgen ausblenden“ nicht festgelegt ist, fügen beide anderen Methoden das Passwort buchstäblich in das Quellskript der neuen Tabelle ein. „Neue SQL-Abfrage“ behält die Verbindungszeichenfolge bei, ändert aber das Passwort in „%PWD%“.
Wenn die Einstellung „ODBC-Verbindungszeichenfolgen ausblenden“ festgelegt ist, werden die Skripte {„Quelle“, „Abfrage ändern“, „Aus Datenbank aktualisieren“} entfernt, und das gefällt mir nicht, weil es cool ist, dass JMP die Tabelle mit verbindet die Art und Weise, wie die Daten generiert wurden und die Möglichkeit, Daten zu aktualisieren, eine Option, die ich sehr oft nutze.
In einer Unternehmenslandschaft mit unterschiedlichen Scriptern ist es schwierig, mit unterschiedlichen Methoden (und damit unterschiedlichen Präferenzeinstellungen je nach Methode) umzugehen. Es macht alles kompliziert. Deshalb liebe ich es, einen klaren Favoriten zu haben.
In welche Richtung soll die Datenbank abgefragt werden?Verehrte Gäste,
Ich verwende häufig Datenbankabfragen in Kombination mit benutzerdefiniertem SQL. Ich weiß, es gibt drei Methoden wie unten gezeigt.
Mir gefällt die „neue SQL-Abfrage“ am besten, weil sie leistungsstärker und sicherer ist (siehe Passwort ...).
Leider hat sich das Verhalten beim Ausblenden von ODBC-Verbindungszeichenfolgen in JMP17 geändert, es wird jedoch korrigiert:
JMP17-Verhalten bei Einstellung „ODBC-Verbindungszeichenfolgen ausblenden“ eingestellt: Verbindungsstr... - JMP-Benutzergemeinschaft
Die Entwickler sagten mir beim Discovery Summit Europe in Sitges, dass die Methode „Neue SQL-Abfragen“ die empfohlene und stabiler sei und die beiden anderen veraltet seien. Aber ich habe auch gehört, dass es ein Geschwindigkeitsproblem gibt. Von dieser Empfehlung habe ich weder hier noch in der Dokumentation etwas gelesen.
Ich möchte Folgendes besprechen:
Welche Methode verwenden Sie und warum?
Und welche Erfahrungen habt ihr gemacht?
Danke und viele Grüße,
Georg
Namen standardmäßig hier( 1 ); // 3 verschiedene Möglichkeiten für den Datenbankzugriff // Konstanten // Dies funktioniert auf allen Oracle-DBs sql_str = "select * from Dual"; // muss an Ihre Datenbank angepasst werden cnx_str ="DSN=MYDSN_NAME;UID=USERNAME;PWD=PASSWORD"; // Neue SQL-Abfrage benötigt Verbindungszeichenfolge, die mit „ODBC:“ beginnt // Es gibt keine gute Dokumentation im Handbuch (Skripthandbuch und JMP-Hilfe) qry_obj = Neue SQL-Abfrage( Abfragename(„Neue SQL-Abfrage“), Verbindung( „ ODBC:"||cnx_str ), benutzerdefiniertes SQL( sql_str ) ); dt_sqlquery = qry_obj << run foreground(); // Open Database ist ein Oneliner // Wenn „ODBC-Verbindungszeichenfolge ausblenden“ nicht festgelegt ist, wird das einfache Kennwort in der Tabelle gespeichert. scripts dt_open = open Database(cnx_str, sql_str, „Open Database“); // expecute sql erfordert, dass die Datenbank vor dem Senden von Anweisungen geöffnet wird. // Wenn „ODBC-Verbindungszeichenfolge ausblenden“ nicht festgelegt ist, wird das einfache Kennwort in der Tabelle gespeichert. scripts dbc=create Database Connection(cnx_str); dt_execute = sql ausführen(dbc, sql_str, "SQL ausführen"); Datenbankverbindung schließen (dbc); // EOSAutomatisierung und Skripterstellung