Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Dataset via TCP/IP (https://www.delphipraxis.net/41241-dataset-via-tcp-ip.html)

Bitworm 28. Feb 2005 13:52

Datenbank: MS Jet • Version: 4.0 • Zugriff über: ADO

Dataset via TCP/IP
 
Hallo zusammen,

folgendes Problem: auf Rechner A läuft ein Programm mit einer lokalen Datenbank,
also ohne DB-Server, Zugriff auf die lokale mdb via ADO.
An einem 2. Rechner B (innerhalb des LAN) sollen nun bestimmte Tabelleninhalte
übertragen werden (read-only). Ein Connect über TCP/IP zwischen den beiden
Programmen wäre möglich. Gibt es nun schon irgendwelche fertige Komponenten in
dieser Richtung (am Besten wären Datasets oder Queries, über die ich SQL-Statements
richtung Rechner A (Server-Anwendung) senden könnte und die Ergebnismenge empfangen
könnte). Hat jemand von Euch mit so etwas Erfahrung ?
Kann man diese Thematik Middleware zuordnen oder ist der Suchbegriff falsch ?
Ich habe eine kommerzielle Comp gefunden (ASTA),
aber vielleicht gibts ja was besseres, anderes, billigeres mit dem hier schon jemand
Erfahrung hat.

joachimd 28. Feb 2005 15:33

Re: Dataset via TCP/IP
 
Ich hatte mal so etwas ähnliches implementiert. Dabei bin ich für den Datenaustausch auf XML ausgewichen.
HTH

Bitworm 28. Feb 2005 15:39

Re: Dataset via TCP/IP
 
Zitat:

Zitat von joachimd
Ich hatte mal so etwas ähnliches implementiert. Dabei bin ich für den Datenaustausch auf XML ausgewichen.
HTH

Auch eine gute Idee. Vielleicht komme ich damit weiter. Wenn jemand aber noch andere Ideen
hat, bitte schreibt was dazu.

shmia 28. Feb 2005 16:39

Re: Dataset via TCP/IP
 
Mit ADO kann man Datenmengen als XML oder Advanced Data TableGram (ADTG) Format in einer Datei speichern.
Delphi-Quellcode:
ADOQuery1.SaveToFile('C:\text.adtg', pfADTG);
Auf der Clientseite kann man die Daten mit einem abgekoppelten ADODataset wieder laden und anzeigen.
Delphi-Quellcode:
ADODDataset1.LoadFromFile('C:\text.adtg');
Wenn du diese Datei vom Server zum Client überträgst, besitzt der Client die gleiche Datenmenge.

Mit etwas Mühe kann man sich das Zwischenspeichern in einer Datei ersparen und mit Streams arbeiten.

Bitworm 28. Feb 2005 16:50

Re: Dataset via TCP/IP
 
Zitat:

Zitat von shmia
Mit ADO kann man Datenmengen als XML oder Advanced Data TableGram (ADTG) Format in einer Datei speichern.
Delphi-Quellcode:
ADOQuery1.SaveToFile('C:\text.adtg', pfADTG);
Auf der Clientseite kann man die Daten mit einem abgekoppelten ADODataset wieder laden und anzeigen.
Delphi-Quellcode:
ADODDataset1.LoadFromFile('C:\text.adtg');
Wenn du diese Datei vom Server zum Client überträgst, besitzt der Client die gleiche Datenmenge.

Mit etwas Mühe kann man sich das Zwischenspeichern in einer Datei ersparen und mit Streams arbeiten.

Das hört sich interessant an ! Ich werde das Ganze mal als Stream versuchen ! Danke für den Tipp !

Marcel Gascoyne 28. Feb 2005 19:16

Re: Dataset via TCP/IP
 
Eigentlich ist dies ja der klassische Fall für Midas bzw. DataSnap. Das gibt es allerdings erst ab der Enterprise Edition...

Ich würde folgendes vorschlagen: Nehme ein lokales TClientDataSet für Deine Daten. Dieses DataSet kannst Du dann in einen Memory Stream schreiben und dieser lässt sich dann mit den Indy Komponenten übertragen. Auf der anderen Seite liest Du diesen Stream einfach wieder in ein anderes TClientDataSet ein.


Oder Du schaust mal bei François Piette unter Products / MidWare vorbei. Das ist ein Freeware Framework mit dem Du per TCP/IP auf ein DataSet auf einem anderen Rechner zugreifen kannst. Ist zwar nicht so mächtig wie Midas / DataSnap aber vielleicht reicht das ja für Dich.

Gruß,
Marcel


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:30 Uhr.

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