Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DB-Anfrage via HTTP / XML (https://www.delphipraxis.net/94062-db-anfrage-via-http-xml.html)

Kalli 15. Jun 2007 12:58

Datenbank: DB2 • Version: 7.1 • Zugriff über: SQL-Direct

DB-Anfrage via HTTP / XML
 
Hallo,
auf unserem Server läuft eine DB-Anwendung, die Anfragen via HTTP erlaubt. Das Ergebnis wird in XML-Format zurückgegeben.

z.B. http://localhost:9191/sucheVertrag?name=Ma%25

gibt man dies im Inetexplorer ein, bekommt man ein XML-Statement mit dem Ergebnis.

Mit welcher VCL kann man das realisieren? Ich finde nichts passendes.

Kalli

shmia 15. Jun 2007 13:39

Re: DB-Anfrage via HTTP / XML
 
Du kannst es dir im ersten Schritt mal ganz einfach machen und die XML-Datei downloaden:
Delphi-Quellcode:
uses ...., UrlMon;

function DownLoadInternetFile(const Source, Dest : String): Boolean;
begin
   Result := URLDownloadToFile(nil,PChar(Source),PChar(Dest),0,nil) = 0
end;


URL := 'http://localhost:9191/sucheVertrag?name=Ma%25';
if DownLoadInternetFile(URL, 'testdaten.xml') then
begin
   // XML-Datei auswerten
end
else
   raise Exception.CreateFmt('Kann %s nicht downloaden!', [URL]);
Später kannst du z.B. die Indy-Komponenten verwenden, um die Daten ohne Umweg über eine Datei herunterzuladen.

Kalli 19. Jun 2007 08:10

Re: DB-Anfrage via HTTP / XML
 
Besten Dank,
das hat soweit geklappt. Aber welche Indy-Komponenten nimmt man da?

Kalli

Die Muhkuh 19. Jun 2007 08:16

Re: DB-Anfrage via HTTP / XML
 
Du könntest z.B. die IdHTTP nehmen und dort die Daten über .Get anfordern.

shmia 19. Jun 2007 16:48

Re: DB-Anfrage via HTTP / XML
 
Dann gäbe es noch die Möglichkeit über WinInet die Daten downzuloaden.
http://www.delphipraxis.net/internal...ct.php?p=43515
Die sehr umfangreichen Indy-Komponenten würde man dann verwenden, wenn man mehr braucht, als nur Daten über HTTP herunterzuladen oder wenn man unabhängig von Microsoft bleiben möchte.

Kalli 25. Jun 2007 08:08

Re: DB-Anfrage via HTTP / XML
 
Hi,
besten Dank für die Hilfen.

Der Umweg über die Datei hat schon mal gut funktioniert. Bei IDHTTP bekomme ich eine Fehlermeldung, die ich mit meiner Unkenntnis begründe. Da stimmt wol ein Parameter nicht.

// Im Projekt PROJECT1.exe ist eine Exception der Klasse
// EIdHTTPProtocolException mit der Meldung
// '<?xml version="1.0" encoding="ISO-8859-1" ?>'
// aufgetreten.

Da ich aber nur die XML-Datei auswerten muss und in der MS-Umgebung bleibe, funktioniert das mit WinInet.

Gruß

Kalli

shmia 25. Jun 2007 09:55

Re: DB-Anfrage via HTTP / XML
 
Es geht sogar noch einfacher (nur 4 Zeilen):
http://www.delphipraxis.net/internal...t.php?t=112681


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz