Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Min- / Max- / Sum- / Avg- Wert aus einer DB
#6
Hallo, 

kein Problem, wir helfen ja gerne weiter ;-)
Der Ansatz ist soweit schon richtig, es fehlt nur noch das VOK.DB_Load(), damit die Abfrage, die Sie im Select-String festgelegt haben auch ausgeführt wird.
Wenn Sie die DB-Verbindung nur für das AVG() verwenden wollen, können Sie den Select-String übrigens auch direkt in der DB-Konfiguration setzen (da wo sonst der default "SELECT * FROM..." steht) und sich somit den Aufruf von VOK.DB_SetSelectString() sparen.

Weiterhin ist noch zu beachten, dass das Laden der Daten per VOK.DB_Load() in einem eigenem Thread ausgeführt wird, da dies je nach Datenmenge einige Zeit in Anspruch nehmen kann und gewährleistet sein muss, dass die Laufzeit währenddessen nicht blockiert wird.
D.h.: Sie können nicht unmittelbar nach dem Aufruf von VOK.DB_Load() auf die Werte zugreifen.

Die korrekte, elegante Vorgehensweise ist in etwa wie folgt (der Übersicht halber habe ich Variablendeklarationen etc. ausgelassen und nur die wesentlichen Code-Zeilen aufgeführt):


Ein VB-Programm setzt (bei Bedarf) den Select-String, stößt den Ladevorgang an und setzt anschliessend ein Bit, das ein weiters VB-Programm auslöst:

Code:
VOK.DB_SetSelectString(dbConnection, selectStringAVG)
VOK.DB_Load(dbConnection)

VDF.WriteBitB 0,0,1,1,1 'Zweites Skript auslösen


Ein zweites VB-Programm überprüft dann, ob die Daten bereits geladen sind:
Code:
status = VOK.DB_IsActive(dbConnection)

Select Case status
   Case 0
       'Ladevorgang abgeschlossen
        VDF.WriteBitB 0,0,1,1,0
        avgWert = VOK.DB_GetValue(dbConnection, 0, 0)
   Case 1
        'DB-Verbindung noch aktiv, weiter warten, Bit nicht zurücksetzen
   Case -1
         'Fehler beim Laden, Bit zurücksetzen, evtl. Fehlerbehandlung
         VDF.WriteBitB 0,0,1,1,0
End Select



Mit freundlichen Grüßen
Daniel Orleth
Softwareentwicklung
Tel: +49 (0)2631 941288-0
Antworten


Nachrichten in diesem Thema
RE: Min- / Max- / Sum- / Avg- Wert aus einer DB - von D.Orleth - 29.11.2013, 17:29

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste