Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.

Ähnliche Präsentationen


Präsentation zum Thema: "By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor."—  Präsentation transkript:

1 by Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor

2 by Thorsten Zisler 2 Installieren und einstellen von MySql

3 by Thorsten Zisler 3 Installieren und einstellen von MySql

4 by Thorsten Zisler 4 Datenbank und Schnittstelle erstellen

5 by Thorsten Zisler 5 Einstellung am Supervisor Die Einstellung erfolgt analog zu einer Access Datenbank, nur wählt man hier die dsn Datei aus, die man vorher erstellt hat. Auswahl der Datenquelle Auswahl der dsn Datei. Sie sollte im Ordner C:\Programme\Gemeinsame Dateien\ODBC\Data Sources\ stehen. Bei der Erstellung der Datei kann man diesen Ordner angeben. Nach diesen Einstellungen kann man sich zur Datenbank verbinden (SQL Server muß laufen).

6 by Thorsten Zisler 6 Lesen und navigieren in der Datenbank BefehlBeschreibung DBOpen( „DB Name" )ohne Einschränkung DBClose( „DB Name" )ohne Einschränkung DBProperty->BOFwird nicht true wenn die Datenbank am Anfang steht DBProperty->EOFohne Einschränkung DBProperty->Current Recordzeigt immer einen Satz weiter an als der mit Read angezeigte DBProperty->Record countohne Einschränkung DBProperty->Current pagegibt die Nummer des tatsächlich angezeigten Eintrags wieder DBProperty->Page countwie Record count DBProperty->Page size? DBProperty->Field countzeigt immer 0 obwohl die Datenbank 13 Felder hat DBStatus->Openohne Einschränkung DBStatus->Closeist immer true auch wenn die Datenbank offen ist DBMove->Firstohne Einschränkung DBMove->Lastohne Einschränkung DBMove->Nextspringt immer 2 Sätze weiter Rückgabewert funktioniert richtig DBMove->NextPageRückgabewert ist 0 obwohl die Funktion richtig ausgeführt wurde DBMove->Priviouskeine Reaktion DBMove->PriviousPagespringt auch zum nächsten Satz wie Next Rückgabe auch immer 0 DBMove->Positionspringt auch zum nächsten Satz wie Next Rückgabe auch immer 0 DBRead ohne Einschränkung

7 by Thorsten Zisler 7 BefehlBeschreibung DBDelete( „DB Name" )es wird der Datensatz gelöscht der mit Current Record angezeigt wird. Beispiel angezeigt wird Satz 2 und gelöscht wird aber Satz 3 DBWritehat dasselbe Problem es wird der nächste Satz geändert, nicht der angezeigte DBAddNewohne Einschränkung DBUpdatenur nach einem Datensatz anhängen DBExecute->Requeryohne Einschränkung DBExcute->SQLes können SQL Kommandos an die Datenbank geschickt werden, für das ändern von Datensätzen sehr sinnvoll. Siehe nächste Folie Datensätze bearbeiten in der Datenbank

8 by Thorsten Zisler 8 Datensätze bearbeiten mit SQL Kommandos Supervisor Script: comandSQL = "UPDATE tabelle1 SET Zähler_1 = " Wert = ValueToText(Count_1_SQL) comandSQL = comandSQL + Wert comandSQL = comandSQL + " WHERE Position = 0" bResult = DBExecute( "Verbindung_SQL_dsn", "SQL", comandSQL ) IF !bResult THEN Status_SQL = DBGetLastError( "Verbindung_SQL_dsn", TRUE ) ENDIF SQL Befehl um in der Tabelle1 in der Spalte Zähler den Wert zu verändern. SET Einen Supervisor int Punkt in Text wandeln und dem Kommando hinzufügen. SQL Befehl um den Wert in jeden Datensatz indem die Spalte Position auf 0 ist einzutragen. SQL Befehl mit der Methode Execute an die Datenbank schicken. Ist der Rückgabewert = 0 dann letzten Fehler abfragen.

9 by Thorsten Zisler 9 Datenaustausch zwischen 2 Supervisor Applikationen mit der SQL Datenbank Struktur der SQL Datenbank Spalte Anlage gibt an aus welcher Anlage die Daten kommen. Ein Datensatz ist immer einer Anlage zugeordnet. Spalte aktiv gibt an ob die Anlage Daten übermittelt ( eventuell ob sie vorhanden ist) und damit die Daten aktuell sind

10 by Thorsten Zisler 10 Benötigte Punkte PunktTypE/A TypArraygröße Anlage_aktivBooleanSpeicher10Aus / Ein [FALSE]Freigabe in die DB schreiben cmdSQLTextSpeicher1SQL Komando Daten_Anlage1IntegerSpeicher90 to 99999999 [0]Beschreibung Daten_Anlage2IntegerSpeicher90 to 99999999 [0]Beschreibung Daten_Anlage3IntegerSpeicher90 to 99999999 [0]Beschreibung Daten_Anlage4IntegerSpeicher90 to 99999999 [0]Beschreibung DB_AnlageIntegerSpeicher10 to 99999999 [0]Beschreibung DB_Anlage_aktivBooleanSpeicher1Aus / Ein [FALSE]Beschreibung DB_Anlage_aktiv1BooleanSpeicher1Aus / Ein [FALSE]Beschreibung DB_Anlage_aktiv2BooleanSpeicher1Aus / Ein [FALSE]Beschreibung DB_Anlage_aktiv3BooleanSpeicher1Aus / Ein [FALSE]Beschreibung DB_Anlage_aktiv4BooleanSpeicher1Aus / Ein [FALSE]Beschreibung DB_Daten_Anlage1IntegerSpeicher90 to 99999999 [0]Beschreibung DB_Daten_Anlage2IntegerSpeicher90 to 99999999 [0]Beschreibung DB_Daten_Anlage3IntegerSpeicher90 to 99999999 [0]Beschreibung DB_Daten_Anlage4IntegerSpeicher90 to 99999999 [0]Beschreibung DB_Daten1IntegerSpeicher1-99999999 to 99999999 [0]Beschreibung DB_Daten2IntegerSpeicher1-99999999 to 99999999 [0]Beschreibung DB_Daten3IntegerSpeicher1-99999999 to 99999999 [0]Beschreibung DB_Daten4IntegerSpeicher1-99999999 to 99999999 [0]Beschreibung DB_Daten5IntegerSpeicher1-99999999 to 99999999 [0]Beschreibung DB_Daten6IntegerSpeicher1-99999999 to 99999999 [0]Beschreibung DB_Daten7IntegerSpeicher1-99999999 to 99999999 [0]Beschreibung loop1IntegerSpeicher10 to 99999999 [0]Schleifenzähler PunktezeigerTextSpeicher1Beschreibung sError_DBTextSpeicher1Fehlermeldung sWertTextSpeicher1Daten der Wandlung ValueToText

11 by Thorsten Zisler 11 Schreiben der Daten in die SQL Datenbank ELSE REM Anlage 1 als nicht aktiv melden cmdSQL = "UPDATE tabelle1 SET aktiv= 0 WHERE Anlage = 1" bResult = DBExecute( "DAS_DB_Anlagen", "SQL", cmdSQL ) IF !bResult THEN sError_DB = DBGetLastError( "DAS_DB_Anlagen", TRUE ) ENDIF REM Anlage 1 IF Anlage_aktiv[0]==TRUE THEN REM Anlage 1 als aktiv melden cmdSQL = "UPDATE tabelle1 SET aktiv= 1 WHERE Anlage = 1" bResult = DBExecute( "DAS_DB_Anlagen", "SQL", cmdSQL ) IF !bResult THEN sError_DB = DBGetLastError( "DAS_DB_Anlagen", TRUE ) ENDIF REM Schleife um die Daten zu übertragen FOR loop1= 1 TO 7 cmdSQL = "UPDATE tabelle1 SET " sWert = ValueToText(loop1) cmdSQL = cmdSQL + "Daten" + sWert + "= " sWert = ValueToText(Daten_Anlage1[loop1]) cmdSQL = cmdSQL + sWert +" WHERE Anlage = 1" bResult = DBExecute( "DAS_DB_Anlagen", "SQL", cmdSQL ) IF !bResult THEN sError_DB = DBGetLastError( "DAS_DB_Anlagen", TRUE ) ENDIF NEXT

12 by Thorsten Zisler 12 Lesen der Daten aus der SQL Datenbank REM Daten Anlage 1 DBMove( "DAS_DB_Anlagen.Tabelle1", "FirstPage" ) bResult = DBRead( "DAS_DB_Anlagen.Tabelle1" ) IF !bResult THEN Status_SQL = DBGetLastError( "DAS_DB_Anlagen", TRUE ) ENDIF DB_Anlage_aktiv1 = DB_Anlage_aktiv IF DB_Anlage_aktiv1 THEN FOR loop1 =0 TO 6 intTest = loop1 +1 sWert = ValueToText(intTest) Punktezeiger = "DB_Daten" + sWert DB_Daten_Anlage1[loop1] = ^Punktezeiger NEXT ENDIF

13 by Thorsten Zisler 13 Lesen eines Querys aus der SQL Datenbank Punkt als Array anlegen und das SQL Query dem Punkt zuweisen. Er muß nicht mit dem Index zugewiesen werden (SQL_Daten1[0]). In der Registerkarte Datenbank eine Tabelle mit SQL Text anlegen und alle gewünschten Punkte hinzufügen.

14 by Thorsten Zisler 14 Lesen eines Querys aus der SQL Datenbank comandSQL = "SELECT * FROM tabelle1 WHERE " comandSQL = comandSQL + Query_Spalte + " = " textTest = ValueToText(Query_Wert) comandSQL = comandSQL + textTest bResult = DBExecute( "DAS_DB_Anlagen.SQL_Text", "Source", comandSQL ) IF !bResult THEN Status_SQL = DBGetLastError( "DAS_DB_Anlagen", TRUE ) ENDIF DBExecute( "DAS_DB_Anlagen.SQL_Text", "Requery" ) DBRead( "DAS_DB_Anlagen.SQL_Text" ) Hier werden die Punkte angelegten Array Punkte (z.B. SQL_Daten1) aus der Abfrage dargestellt. Hier erfolgt der Zugriff über den Index.


Herunterladen ppt "By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor."

Ähnliche Präsentationen


Google-Anzeigen