Livecode-Server auf MS Datenbank

Startseite Foren Deutsches LiveCode-Forum Livecode-Server auf MS Datenbank

Ansicht von 21 Antwort-Themen
  • Autor
    Beiträge
    • #20614
      Manu765
      Teilnehmer

      Hallo allerseits,

      sofern es ein ähnliches Anliegen schonmal gab, verzeiht mir. Ich hab leider nichts passendes gefunden.

      Die Situation ist folgende. Wir haben im Netzwerk auf einem MS Server 2012 eine Datenbank liegen. Wir möchten mit einer über Livecode erstellte App Daten austauschen. Als Webserver ist ein Apache auf Linux vorhanden. Hier soll der LiveCode-Server für den Austausch zwischen Datenbank und App integriert werden.

      Leider kann ich immer nur sehr oberflächliche Tutorials für diese Thematik finden. Auch Script-Beispiele finde ich fast nur für:
      HTML->LC-Server->Datenbank
      oder
      App->PHP-Webservice->Datenbank
      aber nicht für
      App->LC-Server->Datenbank

      Kann mir jemand Quellen für Infomaterial oder konkrete Script-Beispiele nennen?

      Als mögliches Szenario stelle ich mir vor, dass man über die App einen Wert per GET oder POST an den Service übergibt. Dieser filtert dann die Datenbank mit diesem Wert und einer entsprechenden Abfrage und die App holt sich dann das Ergebnis.

      Ich finde die gefundene Dokumentation für den LC-Server sehr dürftig oder hab ich da was übersehen?

      Vielen Dank vorab für die Hilfe.
      Manuel

    • #20616
      Klaus Major
      Verwalter
    • #20618
      Manu765
      Teilnehmer

      Hallo Klaus und vielen Dank für das schnelle Feedback.

      Ja, die Seiten kenn ich alle. Ich finde, die gehen immer etwas an dem vorbei, was ich suche.

      Also ich hab kein Problem systemintern in der LC-IDE auf die Datenbank zu kommen und eine beliebige Abfrage zu starten und das Ergebnis ausgeben zu lassen. Aber mit dem LC-Server dazwischen läufts ja etwas anders, ich muss ja mit der App das entsprechende Serverscript ansprechen und das wiederum die Datenbank.
      Und da steh ich grad etwas auf dem Schlauch und find auch nicht wirklich viel dokumentiert.

    • #20619
      Klaus Major
      Verwalter

      Hi Manuel,

      ach so, OK.

      Aber die Skripte zum Datenbankzugriff auf dem Server sind genau so wie in der IDE!
      Nur PUTtest Du die Daten nicht in ein Feld sondern einfach so:

      ...
      put revdatafromquery(...) into tData
      put tData
      ...

      Und es gibt keine genauen Spezifikationen, wie Du mit der App mit dem Server kommunizieren sollst,
      also erfinde irgendwas dafür, Du musst ja nur mit Dir/Deiner App kompatibel sein.

      Gruß

      Klaus

    • #20621
      Manu765
      Teilnehmer

      OK, danke.
      Dann versuch ich das mal.

    • #20635
      Manu765
      Teilnehmer

      Hallo, leider ich nochmal.

      Hab mal folgendes Script geschrieben:

      <?lc
      put revOpenDatabase(„ODBC“,“DRIVER=SQL Server;SERVER=192.168.0.5;DATABASE=Gutachten_up;UID=’Webuser‘;PWD=XXXXXXXXXX;Trusted_Connection=Yes“,,,) into tDatabaseID

      put „SELECT [PK-Nr], Auftragsart FROM Schaden WHERE [PK-Nr]=319123“ into tQuery

      if tDatabaseID is a number then
      put revDataFromQuery(tab, return, tDatabaseID, tQuery) into tData
      put tData
      end if

      revCloseDatabase tDatabaseID
      ?>

      Offensichtlich kann keine Verbindung mit der Datenbank hergestellt werden. Bei einer Test-App die tData anzeigen soll bleibt die Anzeige leer.

      Bei Aufruf über den Browser kommt:
      row 11, col 1: External handler: exception (revdberr)
      row 11, col 1: Handler: can’t find handler (revCloseDatabase)

      Werden irgendwo Log-Files erstellt, so dass man der Sache auf den Grund gehen kann?

      Hat vielleicht jemand eine Idee?

      Gruß, Manuel

    • #20636
      Klaus Major
      Verwalter

      Lass Dir mal tDatabaseID anzeigen, vielleicht gibt das einen Hinweis, was falsch läuft:

      <?lc
        put revOpenDatabase("ODBC","DRIVER=SQL Server;SERVER=192.168.0.5;DATABASE=Gutachten_up;UID='Webuser';PWD=XXXXXXXXXX;Trusted_Connection=Yes",,,) into tDatabaseID
        put tDatabaseID
      ?>

      Ich habe noch nie mit HTML5 Export gearbeitet, die gibt es nur in der Community oder als kostenpflichiges Extra, vielleicht musst Du da auch die „Inclusions“ manuell hinzufügen?
      Also die Datenbak Library?
      Dieser Automatismus „Search for inclusions“ klappt schon auf dem Desktop nicht 100%ig.

    • #20644
      Manu765
      Teilnehmer

      Danke vielmals für die schnelle Antwort.

      Also bei folgendem Script:
      <?lc
      put revOpenDatabase(„ODBC“,“DRIVER=SQL Server;SERVER=192.168.0.5;DATABASE=Gutachten_up;UID=’Webuser‘;PWD=XXXXXXXXXXX;Trusted_Connection=Yes“,,,) into tDatabaseID
      put tDatabaseID
      ?>

      kommt in der APP nichts an und der Browser zeigt:
      [iODBC][Driver Manager]Data source name not found and no default driver specified. Driver could not be loaded

      Wie includiere ich nochmal die Datenbank-Library? Habs zwar schonmal gelesen, kanns aber grad nicht finden.

    • #20645
      Klaus Major
      Verwalter

      Aha, also fehlen die Treiber…

      In den „Standalone Application Settings“ „Select inclusions for the standalone application“ anklicken und bei „Inclusions“ alle benötigten Dinge anklicken.

    • #20647
      Manu765
      Teilnehmer

      Betrifft das nicht nur die App?

      Das Problem scheint ja im LC-Server (Script) zu liegen. Gibts da nicht auch einen Befehl „include …“ für Datenbank, oder täusch ich mich da?

    • #20650
      Klaus Major
      Verwalter

      Auch die HTML Version benötigt diverse Treiber etc.
      Aber mit „include“ bekommst Du sie noch darein, das geht nur über „Inclusions“.

      Das Serverskript ist ja in Ordnung, es fehlen halt die Treiber, wie die Fehlermeldung klar besagt.

    • #20652
      Axwald
      Teilnehmer

      Hallo,

      soweit ich das beurteilen kann:
      Um mit dem LC-Server (der läuft auf Linux, richtig?) ODBC benutzen zu können, müssen die ODBC-Treiber für SQL Server auf dem System (Linux dann) installiert sein. Sonst geht nix.

      Viel Spaß!

    • #20654
      Klaus Major
      Verwalter

      Aha, das auch noch…
      Tja, dann mal viel Glück, Manuel!

    • #20656
      Manu765
      Teilnehmer

      Danke an Klaus, ich glaub, das hab ich missverständlich ausgedrückt. Es geht nicht um eine html5-Verion der App sondern es ist lediglich der Browseraufruf des Scripts.

      Ebenfalls danke an Axwald, in die Richtung hab ich auch grad schon recherchiert. Auch wenn die Datenbank nicht auf dem Linuxsystem läuft sondern nur der Apache müssen die Treiber installiert sein? Versteh ich das richtig?
      Muss ich dann mal klären, ob das schon gemacht ist…es läuft auf dem Apache bereits ein PHP-Webservice, der auf andere Bereiche der Datenbank zugreift.

    • #20657
      Klaus Major
      Verwalter

      Danke an Klaus, ich glaub, das hab ich missverständlich ausgedrückt. Es geht nicht um eine html5-Verion der App sondern es ist lediglich der Browseraufruf des Scripts.

      Das SKript und der Browseraufruf sind OK, aber die darunterliegende Engine, hier ein riesiger Sack mit JavaScript etc., benötigt diese Treiber wie eine „normale“ Desktop Runtime auch.
      Die Fehlermeldungen des Servers sind allerdings vielleicht nicht besonders aussagekräftig und irreführend.

    • #20659
      Axwald
      Teilnehmer

      Hallo,
      wenn Du mit einem LC Client (das ist in dem Fall der LC Server) ODBC benutzen willst, muss auf dem System der ODBC-Treiber installiert sein.

      Vereinfacht: LC ruft ODBC auf & sagt welche Verbindung es will, ODBC erstellt diese dann & gibt LC eine „ConnectionID“.

      Wo die Datenbank läuft ist in dem Zusammenhang (für LC) egal, das wird in den ODBC-Parametern festgelegt.

      Viel Spaß!

    • #20672
      Manu765
      Teilnehmer

      Ok, danke dir. Wird bestimmt spaßig. Habs mal delegiert… 😉

      Ich hätte noch eine Frage zur Kommunikation zwischen LC-Server und APP.

      Ich hab jetzt mal als Beispiel ein ganz einfaches Serverscript:

      <?lc
      put „Text“ into tData
      put tData
      ?>

      laut Livecode Academy (zumindest versteh ich das so) brauch ich in der App folgendes (Button)-Script um mir das zu holen:

      on mouseUp
      put url „https://…/test.lc&#8220; into tData
      answer tData
      end mouseUp

      Das Answer-Fenster bleibt jedoch leer. Wenn ich die Seite über den Browser aufrufe wird „Text“ angezeigt. Selbst im Browser-Widget wird „Text“ angezeigt, wenn ich das damit teste.

      Wo liegt der (Denk)-Fehler?

      Danke schonmal.
      Viele Grüße, Manuel

    • #20680
      Klaus Major
      Verwalter

      Probiere es mal mit ein paar HTML-Tags:

      <html>
      <body>
      <?lc
        put "<p>El Testo!</p>"
      ?>
      </body>
      </html>
    • #20681
      Klaus Major
      Verwalter

      Probiere es mal mit ein paar HTML-Tags:

      <html>
      <body>
      <?lc
        put "<p>El Testo!</p>"
      ?>
      </body>
      </html>
    • #20684
      Manu765
      Teilnehmer

      Brachte leider keinen Erfolg.

      Kann es sein, dass Livecode mit https nicht klarkommt und http braucht?

    • #20685
      Manu765
      Teilnehmer

      Ich geb mal selber die Antwort 😉

      In der App muss die Abfrage lauten:

      on mouseUp
      libURLSetSSLVerification false
      put url „https://…/test.lc&#8220; into tData
      answer tData
      end mouseUp

      Danke für die Mühe.

    • #20686
      Klaus Major
      Verwalter

      Hey, gut beobachtet, wäre ich ja im Leben nicht drauf gekommen! 🙂

      Bzw. ich hatte verdrängt, daß die Community Version nicht mit dem External tsNet daherkommt, sondern auf die Scriptlibrary „libUrl“ aufbaut, die diese erfoderliche Verifizierung der Seite nicht unterstützt. Das External hingegen macht das schon.
      Und genau da ist diese Zeile bei httpS Seiten erforderlich!

Ansicht von 21 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.