Danke für die ausführlichen Antworten
Zitat:
Professional ... da ist das nicht mit dabei
Was ist damit gemeint?
edit: Du meintest wahrscheinlich die XE2 Version. Ja ich verwende Professional.
Ich hatte gerade ein Gespräch mit dem Chef.
Wir stellten fest dass es ungünstig ist immer von verschiedenen Quellen abzufragen. Deshalb wird auf dem Server auch eine lokale Datenbank (sqlite) zur Anwendung kommen in der sämtliche Daten der verschiedenen Anlagen eingetragen werden.
Für den Umgang mit sqlite habe ich einen Delphi Wrapper ->
https://github.com/plashenkov/SQLite3-Delphi-FPC
Am server werden die Daten dann so abgefragt:
Delphi-Quellcode:
var Statement : TSQLite3Statement;
begin
Statement := Database.Prepare('SELECT * from table where bla bla bla');
while Statement.Step = SQLITE_ROW do
begin
RecordOderSonstwas.Feld0 := Statement.ColumnText(0);
RecordOderSonstwas.Feld1 := Statement.ColumnText(1);
usw...
end;
end;
Zum Übertragen verwende ich die INDY_10 Komponente TIdTCPServer und TIdTCPClient.
Also stellt sich für mich jetzt die Frage was nehmen für "RecordOderSonstwas" (bzw. warum die Daten nicht einfach im Statement lassen und direkt übertragen) und in welcher Form übertragen?
Wie ich einen Record mit dem TCPServer übertrage hab ich schon herausgefunden:
Delphi-Quellcode:
procedure TFrmStart.TCP_SERVERExecute(AContext: TIdContext);
var Buf : TidBytes;
begin
Buf := RawToBytes(einRecord, Sizeof(einRecord));
AContext.Connection.IOHandler.Write(Buf);
end;
Ich und google werden sich jetzt mal mit
Datasnap und TClientDataSet auseinandersetzen.