{"id":55000798,"date":"2011-10-01T00:00:00","date_gmt":"2020-05-22T21:58:10","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=798"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Webservice_light","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Webservice_light\/","title":{"rendered":"Webservice light"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg09.met.vgwort.de\/na\/5000df08d2f540b9a75f422ea4e16c5d\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Manchmal kann es n&uuml;tzlich sein, Informationen &uuml;ber das Internet bereitzustellen &#8211; und damit ist diesmal nicht der Zugriff auf eine Datenbank auf einem Webserver gemeint. In diesem Fall soll eine Anwendung etwa selbst ermitteln k&ouml;nnen, ob es ein Update f&uuml;r sie gibt, oder sie soll Informationen wie etwa Registrierungsdaten zum Webserver des Benutzers &uuml;bermitteln. Dieser Beitrag stellt eine kleine L&ouml;sung bereit, mit der Sie die notwendigen Daten auf einem Webserver bereitstellen, und zeigt, wie Sie diese Informationen per Access-Datenbank auslesen.<\/b><\/p>\n<p>Dabei soll die Informationsbeschaffung keine Einbahnstra&szlig;e sein: Ziel der L&ouml;sung dieses Beitrags ist es zun&auml;chst, dass Sie von einer Access-Anwendung aus eine Anfrage an einen Webserver schicken k&ouml;nnen.<\/p>\n<p>Diese Anfrage soll aber durchaus auch noch Parameter enthalten k&ouml;nnen, die dann von einem entsprechenden Algorithmus auf dem Webserver ausgewertet und entsprechend beantwortet werden k&ouml;nnen.<\/p>\n<p><b>PHP als Programmiersprache<\/b><\/p>\n<p>Die in diesem Beitrag vorgestellte L&ouml;sung basiert serverseitig auf der Sprache PHP. Auch, wenn Sie sich als Leser dieses Magazins zumindest als Anwender von Microsoft-Produkten zu erkennen geben, scheinen die meisten Webanwendungen auf Unix\/Linux-Servern zu laufen &#8211; dementsprechend ist die Chance, dass Sie die M&ouml;glichkeit zum Ausprobieren dieser L&ouml;sung auf einem Server mit PHP haben, relativ hoch. Die Portierung des hier vorgestellten, einfachen Codes auf eine andere Sprache sollte jedoch nicht allzu kompliziert sein.<\/p>\n<p><b>Webservice light<\/b><\/p>\n<p>Normalerweise verwendet man f&uuml;r solche Anforderungen einen Webservice. Dies ist jedoch nicht ganz trivial, sodass wir eine etwas vereinfachte Variante eines Webservice nutzen m&ouml;chten, die auf einer einzigen <b>.php<\/b>-Seite basiert.<\/p>\n<p>Die <b>.php<\/b>-Seite soll dabei die von der Anwendung abgeschickten Parameter auswerten und eine entsprechende Antwort zur&uuml;cksenden.<\/p>\n<p>Im einfachsten Fall sieht das wie folgt aus: Sie schicken vom Rechner aus eine Anfrage ab, die beispielsweise <b>http:\/\/www.acciu.de\/zeit.php <\/b>lautet. Der Webserver soll dann ein XML-Dokument zur&uuml;cksenden, das etwa so aussieht:<\/p>\n<pre>&lt;xml version=''1.0''&gt;\r\n&lt;zeit&gt;18:37:20&lt;\/zeit&gt;<\/pre>\n<p>Dieses Dokument k&ouml;nnen wir mithilfe der MSXML-Bibliothek anschlie&szlig;end leicht auswerten.<\/p>\n<p>Unser einfacher Webservice soll jedoch auch Parameter verarbeiten k&ouml;nnen. Diese werden beim Aufruf an den Link angeh&auml;ngt &#8211; zum Beispiel so:<\/p>\n<pre>&lt;Webadresse&gt;\/update.phpversion=1.0.0.3<\/pre>\n<p>Die Webseite <b>update.php <\/b>soll nun anhand der &uuml;bermittelten Version pr&uuml;fen, ob es eine neuere Version gibt, und gegebenenfalls einen Link auf die neue Version &uuml;bermitteln (den Ausdruck <b>&lt;Webadresse&gt; <\/b>in diesem und den folgenden Beispielen ersetzen Sie durch die entsprechende Webseite, beispielsweise <b>http:\/\/www.access-im-unternehmen.de\/index.php<\/b>).<\/p>\n<p>Auch solche Anforderungen kann unser im Anschluss vorgestellter Webservice light erledigen &#8211; grunds&auml;tzlich gibt es kaum Grenzen, sofern Sie sich die Programmierung der wenigen notwendigen PHP-Codezeilen zutrauen und auf einen Webserver mit PHP zugreifen k&ouml;nnen.<\/p>\n<p><b>Technik zum Anfragen der XML-Antworten<\/b><\/p>\n<p>Der erste interessante Teil der Implementierung ist die &Uuml;bertragung der Webadresse mit den Parametern zum Webserver und das Auslesen der Antwort auf diese Anfrage.<\/p>\n<p>Diese Technik k&ouml;nnen Sie grunds&auml;tzlich verwenden, um beliebige Webseiteninhalte oder auch Dateien herunterzuladen. Die erste Variante dieser Funktion sieht wie in <span class=\"verweis-ohneumbruch\"><a href=\"#anker-28-anchor\">Listing 1<\/a><\/span> aus und erwartet den Link zur einzulesenden Datei als Parameter. Sie liefert den Quellcode dieser Datei zur&uuml;ck:<\/p>\n<p class=\"listingueberschrift\">Listing 1: Einfache Routine zum Herunterladen von Quelltexten<\/p>\n<pre>Public Function DownloadText(ByVal strDateiadresse As String) As Text\r\n    Dim objXMLHTTP As MSXML2.XMLHTTP\r\n    Set objXMLHTTP = New MSXML2.XMLHTTP\r\n    With objXMLHTTP\r\n        .Open &quot;GET&quot;, strDateiadresse, True\r\n        .send\r\n        Do While Not .ReadyState = 4\r\n            DoEvents\r\n        Loop\r\n        DownloadText = .responseText\r\n    End With\r\nEnd Function<\/pre>\n<p>Dazu verwendet sie das Objekt <b>XMLHTTP <\/b>der Bibliothek <b>Microsoft XML, Version x.0<\/b>, wobei <b>x.0 <\/b>f&uuml;r die neueste verf&uuml;gbare Version steht (aktuell <b>6.0<\/b>).<\/p>\n<p>Dieses Objekt erlaubt es beispielsweise, Anfragen an einen Webserver zu senden und das von diesem gelieferte Resultat weiterzuverarbeiten. In diesem Falle rufen Sie die Anwendung beispielsweise so auf:<\/p>\n<pre>Debug.Print DownloadText(&quot;http:\/\/www.access-im-unternehmen.de&quot;)<\/pre>\n<p>Dies gibt, im Direktfenster eingesetzt, beispielsweise den kompletten Quelltext der angegebenen Internetseite aus.<\/p>\n<p>Wenn Sie nun beispielsweise die aktuelle Version einer Software damit &uuml;ber das Internet verf&uuml;gbar machen m&ouml;chten, w&uuml;rden Sie etwa eine Datei wie die folgende mit der Nummer der aktuellsten Version auf einen Webserver legen:<\/p>\n<pre>&lt;xml version=''1.0''&gt;\r\n&lt;currentVersion&gt;1.0.0.3&lt;\/currentVersion&gt;<\/pre>\n<p><!--30percent--><\/p>\n<p>Dann k&ouml;nnen Sie die Funktion <b>DownloadText <\/b>mit der Routine <b>AktuelleVersionErmitteln <\/b>aufrufen (s. <span class=\"verweis-ohneumbruch\"><a href=\"#anker-anchor\">Listing 2<\/a><\/span>) und aus der gelieferten XML-Datei den Wert des Elements <b>currentVersion <\/b>auslesen.<\/p>\n<p class=\"listingueberschrift\">Listing 2: Herunterladen und Auslesen einer bestimmten XML-Datei vom Webserver<\/p>\n<pre>Public Function AktuelleVersionErmitteln() As String\r\n    Dim objXML As MSXML2.DOMDocument\r\n    Dim strXML As String\r\n    Dim strVersion As String\r\n    Set objXML = New MSXML2.DOMDocument\r\n    strXML = DownloadText(&quot;http:\/\/&lt;Webadresse&gt;\/currentVersion.xml&quot;)\r\n    objXML.loadXML strXML\r\n    strVersion = objXML.selectSingleNode(&quot;currentVersion&quot;).nodeTypedValue\r\n    AktuelleVersionErmitteln = strVersion\r\nEnd Function<\/pre>\n<p>Bis hierhin kommen Sie sogar noch ohne PHP &uuml;ber die Runden &#8211; die Datei k&ouml;nnen Sie als <b>.xml<\/b>&#8211; oder auch als <b>.html<\/b>-Datei auf den Webserver legen. Wichtig ist nur, dass das Verzeichnis dieser Datei &ouml;ffentlich zugreifbar ist.<\/p>\n<p><b>Interaktiv<\/b><\/p>\n<p>Interessanter wird es, wenn der Webserver selbst die Antwort auf die Anfrage erst per PHP-Skript erstellen soll. Im Beitrag <b>Registrierung von Anwendungen<\/b> (<b>www.access-im-unternehmen.de\/797 <\/b>soll an einer Stelle das aktuelle Datum ermittelt werden, um der Manipulation beim Registrieren einer Anwendung vorzubeugen.<\/p>\n<p>Dies setzt voraus, dass das PHP-Skript das Datum mit einer entsprechenden Prozedur ermittelt und erst dann das XML-Dokument mit dem Ergebnis zur&uuml;cksendet.<\/p>\n<p>Das PHP-Skript sieht wie folgt aus:<\/p>\n<pre>&lt;php\r\n    $date = date(&quot;d-m-Y&quot;);\r\n    echo &quot;&lt;xml version=''1.0''&gt;&quot;;\r\n    echo &quot;&lt;currentDate&gt;&quot; . $date . &quot;&lt;\/currentDate&gt;&quot;;\r\n&gt;<\/pre>\n<p>Das Auslesen &uuml;bernimmt diesmal die Funktion aus <span class=\"verweis-ohneumbruch\"><a href=\"#anker-29-anchor\">Listing 3<\/a><\/span>.<\/p>\n<p class=\"listingueberschrift\">Listing 3: Auslesen des aktuellen Datums im Format d.m.Y<\/p>\n<pre>Public Function AktuellesDatumErmitteln() As String\r\n    Dim objXML As MSXML2.DOMDocument\r\n    Dim strXML As String\r\n    Dim strVersion As String\r\n    Set objXML = New MSXML2.DOMDocument\r\n    strXML = DownloadText(&quot;http:\/\/&lt;Webadresse&gt;\/ws.php&quot;)\r\n    objXML.loadXML strXML\r\n    strVersion = objXML.selectSingleNode(&quot;currentDate&quot;).nodeTypedValue\r\n    AktuellesDatumErmitteln = strVersion\r\nEnd Function<\/pre>\n<p><b>Interaktiver<\/b><\/p>\n<p>Im vorherigen Beispiel hat der Webserver einen Wert dynamisch ermittelt und diesen zur&uuml;ckgegeben. Nun gehen wir einen Schritt weiter: Die Anfrage selbst soll Parameter enthalten, die vom PHP-Skript ausgewertet werden und auf die das Skript entsprechend reagiert. In einem einfachen Beispiel &uuml;bergeben wir zwei Zahlen, die das PHP-Skript addieren soll. Der Aufruf soll etwa so lauten:<\/p>\n<pre>&lt;Webadresse&gt;.add.phpzahl1=1&amp;zahl2=2<\/pre>\n<p>Parameter h&auml;ngen Sie an eine Webadresse an, indem Sie zun&auml;chst das Fragezeichen hinzuf&uuml;gen und dahinter eine durch das Kaufmanns-Und separierte Liste von Name-Wert-Paaren hinzuf&uuml;gen.<\/p>\n<p>Die Funktion aus <span class=\"verweis-ohneumbruch\"><a href=\"#anker-30-anchor\">Listing 4<\/a><\/span> stellt einen solchen Ausdruck zusammen und sendet ihn an den Webserver.<\/p>\n<p class=\"listingueberschrift\">Listing 4: Durchf&uuml;hren einer Berechnung durch ein PHP-Skript<\/p>\n<pre>Public Function Summe(intZahl1 As Integer, intZahl2 As Integer) As Integer\r\n    Dim objXML As MSXML2.DOMDocument\r\n    Dim strXML As String\r\n    Dim strParameters As String\r\n    strParameters = &quot;zahl1=&quot; &amp; intZahl1 &amp; &quot;&amp;&quot;\r\n    strParameters = strParameters &amp; &quot;zahl2=&quot; &amp; intZahl2 &amp; &quot;&amp;&quot;\r\n    If Len(strParameters) &gt; 0 Then\r\n        strParameters = Mid(strParameters, 1, Len(strParameters) - 1)\r\n    End If\r\n    Set objXML = New MSXML2.DOMDocument\r\n    objXML.loadXML DownloadText(&quot;http:\/\/www.ribbon-admin.de\/add.php&quot; &amp; strParameters)\r\n    Summe = objXML.selectSingleNode(&quot;add\/result&quot;).nodeTypedValue\r\nEnd Function<\/pre>\n<p>Dort werkelt das folgende PHP-Skript und stellt das Ergebnis zusammen:<\/p>\n<pre>&lt;php\r\n    $zahl1 = $_GET[''zahl1'];\r\n    $zahl2 = $_GET[''zahl2'];\r\n    $result = $zahl1 + $zahl2;\r\n    echo &quot;&lt;xml version=''1.0''&gt;&quot;;\r\n    echo &quot;&lt;add&gt;&quot;;\r\n    echo &quot;&lt;result&gt;&quot; . $result . &quot;&lt;\/result&gt;&quot;;\r\n    echo &quot;&lt;\/add&gt;&quot;;\r\n&gt;<\/pre>\n<p>Der Ausdruck <b>$GET[&#8220;zahl1&#8242;]<\/b> ermittelt den Wert des Parameters <b>zahl1 <\/b>des Aufrufs, <b>$GET[&#8220;zahl1&#8242;]<\/b>, entsprechend den von <b>zahl2<\/b>. Die Summe schreibt die folgende Anweisung in die Variable <b>$result<\/b>. Diese wird wiederum in das mit der <b>echo<\/b>-Anweisung ausgegebene XML-Dokument eingebettet.<\/p>\n<p>Wenn das PHP-Skript seinen Dienst getan hat, wird das Ergebnis an die aufrufende Prozedur geschickt und dort in ein XML-Dokument geladen.<\/p>\n<p>Mit der Funktion <b>selectSingleNode <\/b>ermittelt die Prozedur schlie&szlig;lich den Wert des Elements <b>add\/result<\/b> und gibt diesen an die aufrufende Prozedur zur&uuml;ck.<\/p>\n<p><b>Dateien statt XML-Dokumente<\/b><\/p>\n<p>Die hier vorgestellte Technik erlaubt auch den Download kompletter Dateien. Dies ist besonders dann interessant, wenn Sie von einer bei einem Benutzer installierten Anwendung aus noch Komponenten nachladen oder auch eine neue Version herunterladen m&ouml;chten.<\/p>\n<p>Diese Aufgabe &uuml;bernimmt die Funktion <b>Dateidownload <\/b>aus <span class=\"verweis-ohneumbruch\"><a href=\"#anker-36-anchor\">Listing 5<\/a><\/span>. Die Funktion erwartet zwei Parameter:<\/p>\n<ul>\n<li class=\"aufz-hlung\"><b>strDateiadresse<\/b>: Link zur Datei, die heruntergeladen werden soll<\/li>\n<li class=\"aufz-hlung\"><b>strZieladresse<\/b>: Dateiname inklusive Pfad, unter dem die Datei gespeichert werden soll<\/li>\n<\/ul>\n<p class=\"listingueberschrift\">Listing 5: Herunterladen einer Datei<\/p>\n<pre>Public Function Dateidownload(ByVal strDateiadresse As String, ByVal strZieladresse As String) As Long\r\n    DoCmd.Hourglass True\r\n    Dim objXMLHTTP As MSXML2.XMLHTTP\r\n    Set objXMLHTTP = New MSXML2.XMLHTTP\r\n    Dim Buffer() As Byte\r\n    With objXMLHTTP\r\n        .Open &quot;GET&quot;, strDateiadresse, True\r\n        .send\r\n        Do While Not .ReadyState = 4\r\n            DoEvents\r\n        Loop\r\n        Buffer = .responseBody\r\n    End With\r\n    Open strZieladresse For Binary Access Write As #1\r\n    Put #1, , Buffer\r\n    Close #1\r\n    DoCmd.Hourglass False\r\nEnd Function<\/pre>\n<p>Die Prozedur erstellt wiederum ein Objekt des Typs <b>XMLHTTP<\/b>. Au&szlig;erdem ben&ouml;tigt die Funktion ein Byte-Array, um die Datei im bin&auml;ren Format zwischenzuspeichern.<\/p>\n<p>Genau wie beim Zugriff auf die <b>.xml<\/b>&#8211; und <b>.php<\/b>-Dateien nimmt die <b>Open<\/b>-Methode die &Uuml;bertragungsart (wiederum <b>GET<\/b>) und die Internetadresse entgegen. Nach dem Absenden der Abfrage mit der <b>send<\/b>-Methode kann es je nach Dateigr&ouml;&szlig;e ein wenig dauern, bis diese heruntergeladen wurde. In dieser Zeit durchl&auml;uft die Funktion eine <b>Do While<\/b>-Schleife, und zwar so lange, bis die Eigenschaft <b>ReadyState <\/b>den Wert <b>4 <\/b>zur&uuml;ckliefert.<\/p>\n<p>Die Antwort im bin&auml;ren Format liefert die Eigenschaft <b>responseBody<\/b>.<\/p>\n<p>Der Inhalt wird im Byte-Array zur weiteren Verarbeitung zwischengespeichert.<\/p>\n<p>Dabei wird zun&auml;chst die mit dem Parameter <b>strZieladresse <\/b>angegebene Datei erstellt und f&uuml;r den bin&auml;ren Schreibzugriff vorbereitet. Die <b>Put<\/b>-Anweisung schreibt gleich den kompletten Inhalt des Byte-Arrays in diese Datei, die <b>Close<\/b>-Anweisung schlie&szlig;t diese.<\/p>\n<p>Die <b>DoCmd.Hourglass<\/b>-Aufrufe zu Beginn und am Ende der Funktion sorgen daf&uuml;r, dass w&auml;hrend des Downloads die Sanduhr beziehungsweise ein entsprechendes Symbol angezeigt wird.<\/p>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Die hier vorgestellten M&ouml;glichkeiten lassen sich vielf&auml;ltig einsetzen. Eine Einsatzm&ouml;glichkeit findet sich bei Anwendungen, die Sie an andere Benutzer weitergeben.<\/p>\n<p>Sie k&ouml;nnen so einer Anwendung eine Funktion hinzuf&uuml;gen, die mit Ihrem Server Kontakt aufnimmt und pr&uuml;ft, ob es eine neuere Version der aktuellen Anwendung gibt.<\/p>\n<p>Ist dies der Fall, laden Sie einfach die neue Version herunter und ersetzen die alte Anwendung durch die neue Version. Daf&uuml;r sind freilich noch weitere Ma&szlig;nahmen erforderlich: So kann eine aktuell ge&ouml;ffnete Datenbank zwar ihren Nachfolger herunterladen, aber sie kann sich nicht selbst l&ouml;schen und die neue Version starten.<\/p>\n<p>Dazu ben&ouml;tigen Sie eine Instanz, die vor der eigentlichen Anwendung gestartet wird und die notwendigen Pr&uuml;fungen durchf&uuml;hrt &#8211; zum Beispiel eine VB6- oder .NET-DLL &#8211; oder auch eine weitere Access-Datenbankdatei.<\/p>\n<p>Diese pr&uuml;ft dann zun&auml;chst die Version der aktuellen Anwendung und l&auml;dt gegebenenfalls den Nachfolger herunter. Die bestehende Version sollte dann aber vorsichtshalber gesichert werden!<\/p>\n<p>Auch f&uuml;r die Registrierung einer Anwendung f&uuml;r einen Benutzer kann der Zugriff auf einen Webservice sinnvoll sein. So l&auml;sst sich beispielsweise bei der Registrierung auf dem Server eintragen, wie oft eine Anwendung unter dem gleichen Benutzer registriert wird.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Miniwebservice.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{12FB8E43-E8C6-482D-A876-741AF600D8A7}\/aiu_798.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Manchmal kann es n&uuml;tzlich sein, Informationen &uuml;ber das Internet bereitzustellen &#8211; und damit ist diesmal nicht der Zugriff auf eine Datenbank auf einem Webserver gemeint. In diesem Fall soll eine Anwendung etwa selbst ermitteln k&ouml;nnen, ob es ein Update f&uuml;r sie gibt oder sie soll Informationen wie etwa Registrierungsdaten zum Webserver des Benutzers &uuml;bermitteln. Dieser Beitrag stellt eine kleine L&ouml;sung bereit, mit der Sie die notwendigen Daten auf einem Webserver bereitstellen und zeigt, wie Sie diese Informationen per Access-Datenbank auslesen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662011,66052011,44000027],"tags":[],"class_list":["post-55000798","post","type-post","status-publish","format-standard","hentry","category-662011","category-66052011","category-Loesungen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Webservice light - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Webservice_light\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Webservice light\" \/>\n<meta property=\"og:description\" content=\"Manchmal kann es n&uuml;tzlich sein, Informationen &uuml;ber das Internet bereitzustellen - und damit ist diesmal nicht der Zugriff auf eine Datenbank auf einem Webserver gemeint. In diesem Fall soll eine Anwendung etwa selbst ermitteln k&ouml;nnen, ob es ein Update f&uuml;r sie gibt oder sie soll Informationen wie etwa Registrierungsdaten zum Webserver des Benutzers &uuml;bermitteln. Dieser Beitrag stellt eine kleine L&ouml;sung bereit, mit der Sie die notwendigen Daten auf einem Webserver bereitstellen und zeigt, wie Sie diese Informationen per Access-Datenbank auslesen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Webservice_light\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T21:58:10+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg09.met.vgwort.de\/na\/5000df08d2f540b9a75f422ea4e16c5d\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"10\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Webservice_light\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Webservice_light\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Webservice light\",\"datePublished\":\"2020-05-22T21:58:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Webservice_light\\\/\"},\"wordCount\":1533,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Webservice_light\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/5000df08d2f540b9a75f422ea4e16c5d\",\"articleSection\":[\"2011\",\"5\\\/2011\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Webservice_light\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Webservice_light\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Webservice_light\\\/\",\"name\":\"Webservice light - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Webservice_light\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Webservice_light\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/5000df08d2f540b9a75f422ea4e16c5d\",\"datePublished\":\"2020-05-22T21:58:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Webservice_light\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Webservice_light\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Webservice_light\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/5000df08d2f540b9a75f422ea4e16c5d\",\"contentUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/5000df08d2f540b9a75f422ea4e16c5d\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Webservice_light\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Webservice light\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Webservice light - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Webservice_light\/","og_locale":"de_DE","og_type":"article","og_title":"Webservice light","og_description":"Manchmal kann es n&uuml;tzlich sein, Informationen &uuml;ber das Internet bereitzustellen - und damit ist diesmal nicht der Zugriff auf eine Datenbank auf einem Webserver gemeint. In diesem Fall soll eine Anwendung etwa selbst ermitteln k&ouml;nnen, ob es ein Update f&uuml;r sie gibt oder sie soll Informationen wie etwa Registrierungsdaten zum Webserver des Benutzers &uuml;bermitteln. Dieser Beitrag stellt eine kleine L&ouml;sung bereit, mit der Sie die notwendigen Daten auf einem Webserver bereitstellen und zeigt, wie Sie diese Informationen per Access-Datenbank auslesen.","og_url":"https:\/\/access-im-unternehmen.de\/Webservice_light\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T21:58:10+00:00","og_image":[{"url":"http:\/\/vg09.met.vgwort.de\/na\/5000df08d2f540b9a75f422ea4e16c5d","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"10\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Webservice_light\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Webservice_light\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Webservice light","datePublished":"2020-05-22T21:58:10+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Webservice_light\/"},"wordCount":1533,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Webservice_light\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/5000df08d2f540b9a75f422ea4e16c5d","articleSection":["2011","5\/2011","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Webservice_light\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Webservice_light\/","url":"https:\/\/access-im-unternehmen.de\/Webservice_light\/","name":"Webservice light - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Webservice_light\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Webservice_light\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/5000df08d2f540b9a75f422ea4e16c5d","datePublished":"2020-05-22T21:58:10+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Webservice_light\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Webservice_light\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Webservice_light\/#primaryimage","url":"http:\/\/vg09.met.vgwort.de\/na\/5000df08d2f540b9a75f422ea4e16c5d","contentUrl":"http:\/\/vg09.met.vgwort.de\/na\/5000df08d2f540b9a75f422ea4e16c5d"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Webservice_light\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Webservice light"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000798","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000798"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000798\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000798"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000798"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}