Ich habe kürzlich ein paar Fragen von Kunden zur Durchführung von Datenbankoperationen mit JMP erhalten. Eine Frage ist, ob Sie JMP verwenden können, um eine Verbindung zu Datenbanken herzustellen. Mit JMP Ja, Sie können eine Verbindung zu einer ODBC-kompatiblen Datenbank mithilfe von JMP Scripting Language oder der Dialogoberfläche "Datenbank öffnen" herstellen. Wenn Sie den entsprechenden ODBC-Treiber installiert haben (und der Datenquellenname oder der DSN definiert wurde), wird mit dem Befehl Datei -> Datenbank -> Datenbank öffnen eine Verbindung zur Datenbank hergestellt und die angegebene Tabelle in JMP geöffnet. Dieses vide o zeigt, wie Sie einen ODBC-DSN mithilfe einer Microsoft Access-Datenbankdatei konfigurieren.
In dem Beispiel für diesen Beitrag habe ich eine Verbindung zu einer Microsoft Access-Datenbank unter Verwendung eines Maschinendatenquellennamens hergestellt und die Datenbanktabelle tblVehicle ausgewählt. Ich hätte auch eine Verbindung zu ORACLE DBMS, MySQL-Datenbanken oder sogar zu einer SQL Server-Datenbank herstellen können.

Wenn Sie die Menüoption nicht verwenden möchten, können Sie dies auch mit JSL tun. In diesem Beispielskript, das zu Demonstrationszwecken bereitgestellt wurde, habe ich eine Verbindung mit der Microsoft Access-Datenbank hergestellt und alle Datensätze in der Tabelle mit dem Titel "tblVehicle" (siehe oben) zurückgegeben.
// Verbindung zur Datenbank herstellen und Tabelle auswählen
Datenbank öffnen (
"DSN = MS Access Database; DBQ = C: \ Benutzer \ stkopr \ Documents \ MovinOn.accdb; DriverId = 25; FIL = MS Access; MaxBufferSize = 2048; PageTimeout = 5; UID = admin;",
"SELECT * FROM tblVehicle",
"tblVehicle"
) ;

Eine andere Frage ist, dass ich kürzlich von Kunden gefragt wurde, ob Sie JMP verwenden können, um Datensätze in eine Datenbank einzufügen. Die Antwort lautet ja, du kannst. Sie können einige Analysen mit JMP durchführen und dann eine Analyseergebnistabelle oder sogar einen einzelnen Datensatz in die Datenbank einfügen.
Das Demonstrationsskript zum Einfügen eines einzelnen Datensatzes in eine Datenbanktabelle ist unten dargestellt.
// Verbindung zur Datenbank herstellen und neuen Datensatz einfügen
Datenbank öffnen ( "DSN = MS Access Database; DBQ = C: \ Benutzer \ stkopr \ Documents \ MovinOn.accdb; DriverId = 25; FIL = MS Access; MaxBufferSize = 2048; PageTimeout = 5; UID = admin;",
"INSERT INS TblVehicle
(FahrzeugID, LicensePlateNum, Achse, Farbe)
WERTE ('TRK-199', 'JMP 429', 4, 'Blau'); " ) ;
Mit derselben zuvor eingereichten JSL kann ich die Tabelle in JMP anzeigen, wobei der neu eingefügte Datensatz ausgewählt ist.

Sie können die Datensätze auch anordnen, die Daten mit einer where-Klausel unterordnen, eine verschachtelte Unterabfrage senden oder einen einzelnen Datensatz löschen - und das alles ganz bequem in JMP.
Vergessen Sie nicht, die Datenbankverbindung zu schließen, nachdem Sie alle Datenbankaktionen abgeschlossen haben. Dies kann auch über die Schaltfläche Trennen im Dialogfeld "Datenbank öffnen" oder mithilfe von JSL erfolgen.
Weitere Informationen zur Verwendung der JMP-ODBC-Schnittstelle finden Sie in der Hilfedokumentation unter „Importieren von Daten aus einer Datenbank“.
Teilen Sie mir mit, ob Sie diese Funktion zum Einfügen eines Datensatzes verwendet haben. Oder schreiben Sie normalerweise die gesamte Tabelle in die Datenbank zurück?
Guillaume schrieb:
Hallo,
Und vielen Dank für diese Tipps. Die Log Capture-Funktion ist die, nach der ich gesucht habe.
Besrt grüsse
Guillaume
Stan Koprowski schrieb:
Hallo Guillaume,
Vielen Dank für Ihre Anmerkungen. Ich bin froh, dass JSL Ihnen bei der Durchführung von Neuberechnungen helfen konnte.
Als Antwort auf Ihre Frage können Sie die von einer Datenbank zurückgegebene Fehlernachricht in einer JSL-Variablen als Zeichenfolge erfassen.
Eine Möglichkeit, dies zu tun, ist die Log Capture-Funktion. Um den JSL-Code zu testen, habe ich zwei verschiedene Arten von Fehlern simuliert:
Ein Fehler ist aufgetreten, weil vor dem Auswählen der Spalten aus der angegebenen Tabelle keine Verbindung zur Access-Datenbank hergestellt wurde.
Ein Fehler ist aufgetreten, wenn kein geeigneter ODBC-Treiber installiert ist.
Ich habe ein Beispiel dafür gegeben, wie Sie in dem folgenden JSL-Code und den daraus resultierenden Fehlermeldungen etwas erreichen könnten, was Sie erreichen möchten:
Namensvorgabe bis hier (1);
AccessError01 = "Zugriffsfehler:" || Log Capture (Datenbank öffnen (
"DSN = MS Access Database; DBQ = C: UsersstkoprDocumentsMovinOn.accdb; DriverId = 25; FIL = MS Access; MaxBufferSize = 2048; PageTimeout = 5; UID = admin;",
"SELECT * FROM tblVehicle",
"tblVehicle"
));
Folgendes wird in das Protokoll geschrieben, und die Fehlerzeichenfolge wird in der Variablen AccessError01 für Szenario Test 1 gespeichert.
"Zugriffsfehler:
[Microsoft] [ODBC Microsoft Access-Treiber] Datei '(unbekannt)' konnte nicht gefunden werden.
"
Folgendes wird in das Protokoll geschrieben, und die Zeichenfolge wird in der Variablen AccessError01 für Szenario Test 2 gespeichert:
"Zugriffsfehler:
[iODBC] [Treibermanager] Der Name der Datenquelle wurde nicht gefunden und es wurde kein Standardtreiber angegeben. Treiber konnte nicht geladen werden
"
Nochmals vielen Dank für Ihre Kommentare.
Stan
Guillaume schrieb:
Hi Stan,
Ich verwende diese INSERT-Anweisung, wie in Ihrem Beitrag für einige jsl-Anwendungen beschrieben, um statistische Indikatoren nach Zeitraum zu speichern.
Auf diese Weise kann ich diese Indikatoren später anfordern (dies vermeidet die Neuberechnungen).
Aber ich habe eine Frage. Wissen Sie, ob JMP Datenbankfehler abfangen und den Datenbankfehler in einer JSL-Variablen speichern kann? Wenn ja, wie kann ich das machen?
Ich beschreibe das Problem hier ausführlicher: https://communities.sas.com/message/167531#167531
Vielen Dank
Guillaume