Startseite › Foren › Deutsches LiveCode-Forum › Livecode-Server auf MS Datenbank
Schlagwörter: Datenbank LC-Server Livecode-Server
- Dieses Thema hat 21 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 5 Monaten von Klaus Major.
-
AutorBeiträge
-
-
Mai 6, 2020 um 12:38 Uhr #20614
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->DatenbankKann 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 -
Mai 6, 2020 um 13:03 Uhr #20616
Hi Manuel,
hast Du schon hier nachgesehen?
http://lessons.livecode.com/m/4070Hier noch ein paar Links:
https://livecode.com/resources/guides/server/
https://livecode.fandom.com/wiki/Microsoft_SQL_serverGruß
Klaus
-
Mai 6, 2020 um 13:14 Uhr #20618
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. -
Mai 6, 2020 um 13:56 Uhr #20619
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
-
Mai 6, 2020 um 14:07 Uhr #20621
OK, danke.
Dann versuch ich das mal. -
Mai 7, 2020 um 12:23 Uhr #20635
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 tDatabaseIDput “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 ifrevCloseDatabase 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
-
Mai 7, 2020 um 12:40 Uhr #20636
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. -
Mai 7, 2020 um 13:13 Uhr #20644
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 loadedWie includiere ich nochmal die Datenbank-Library? Habs zwar schonmal gelesen, kanns aber grad nicht finden.
-
Mai 7, 2020 um 13:20 Uhr #20645
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.
-
Mai 7, 2020 um 13:27 Uhr #20647
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?
-
Mai 7, 2020 um 14:28 Uhr #20650
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.
-
Mai 7, 2020 um 14:49 Uhr #20652
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ß!
-
Mai 7, 2020 um 14:51 Uhr #20654
Aha, das auch noch…
Tja, dann mal viel Glück, Manuel! -
Mai 7, 2020 um 14:57 Uhr #20656
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. -
Mai 7, 2020 um 15:28 Uhr #20657
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. -
Mai 7, 2020 um 15:56 Uhr #20659
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ß!
-
Mai 8, 2020 um 08:37 Uhr #20672
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” into tData
answer tData
end mouseUpDas 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 -
Mai 8, 2020 um 11:04 Uhr #20680
Probiere es mal mit ein paar HTML-Tags:
<html> <body> <?lc put "<p>El Testo!</p>" ?> </body> </html>
-
Mai 8, 2020 um 11:04 Uhr #20681
Probiere es mal mit ein paar HTML-Tags:
<html> <body> <?lc put "<p>El Testo!</p>" ?> </body> </html>
-
Mai 8, 2020 um 11:11 Uhr #20684
Brachte leider keinen Erfolg.
Kann es sein, dass Livecode mit https nicht klarkommt und http braucht?
-
Mai 8, 2020 um 11:21 Uhr #20685
Ich geb mal selber die Antwort 😉
In der App muss die Abfrage lauten:
on mouseUp
libURLSetSSLVerification false
put url “https://…/test.lc” into tData
answer tData
end mouseUpDanke für die Mühe.
-
Mai 8, 2020 um 11:44 Uhr #20686
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!
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.