Autor Beitrag
mrmiagi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31


Delphi 7 pro
BeitragVerfasst: Mi 06.08.03 08:02 
Mein Problem sieht folgendermaßen aus:
Ich habe ein Programm das viele Information des Rechners(CPU, Office Version...) ausliest und auf den Rechnern installiert ist. Es speichert alle
ausgelesenen Informationen in einer .txt file.
Ein Datenbankprogramm das auf einem Server liegt soll dann auf Knopfdruck die Daten aus dem .txt file einlesen. Wie bekomme die Daten von den Clients in meine Datenbank die auf dem Server liegt?
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Mi 06.08.03 09:13 
ohne weiteres nicht.
Aber, du kannst die Daten bei den Clients auf eine Freigabe kopieren und sie von dort abholen und in die DB schreiben. Wäre der einfachste Weg.
Der kompliziertere wäre, eine Clientanwendung schreiben, die die entsprechenden Daten in die DB schreiben.
grez
msch
mrmiagi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31


Delphi 7 pro
BeitragVerfasst: Mi 06.08.03 09:17 
Und wie hole ich die Daten von den Clients?
Da ich absoluter Newbie bin habe ich keine Ahnung! Vielleicht Quelltext?
Ich muss noch dazusagen das das Programm au den Clients eine CLX-Anwendung ist!
Hier der Quelltext des Datenbankprogramms.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
procedure TForm1.Button1Click(Sender: TObject);
var datei : textfile;
    dateioef : String;
    satz  : String;

  begin
    dateioef :=  'e:\pcausw\pcstumst.txt';    // Hier muss ich irgendwie sagen das er in
    assignfile(datei,dateioef);               // einer Schleife oder so alle Clients durch-
    try                                       // geht und die *.txt Datei einliest, aber wie?
      reset(datei);
    except
      on E: Exception do showmessage(E.Message);
    end;
      repeat
      readln(datei,satz);
      if length(trim(satz)) > 0 then
      table1.First;
      begin
        query1.ParamByName('para1').AsSmallInt :=strtoint (copy(satz,1,9));
        query1.ParamByName('para2').AsSmallInt :=strtoint(copy(satz,10,9));
        query1.ParamByName('para3').AsString := copy(satz,19,1);
        query1.ParamByName('para4').AsString := copy(satz,20,20);
        query1.ParamByName('para5').AsSmallInt :=strtoint(copy(satz,50,1));
        query1.ParamByName('para6').AsInteger :=strtoint(copy(satz,51,9));
        query1.ExecSQL;
       table1.Next;

      end;
    until(eof(datei));
    closefile(datei);
  end;
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Mi 06.08.03 18:27 
erste Möglichkeit:
Die Anwendung bei den Clients (egal ob Win oder Unix) kopieren Ihre Daten auf den Server (also dort wo die DB läuft) auf ein freigegebenes Verzeichnis.
Für die DB-Anw. liegen dann die Daten lokal vor und du kannst sie bequem einlesen.

Die zweite ist etwas komplizierter:
die schreibst ein Prog welches Anforderungen übers Netzwerk beantwortet. Nähere Infos findest du hier (schau mal unter Indy-Komponenten). Dieses Prog installierst du bei allen Anwendern. Eine Serveranwendung fragt die Clients ab und trägt dann die Infos in die DB rein.

Dritte Möglichkeit (elegant):
installiere eine DB die Netzwerke bereits unterstützt. Also MySQL, MS-SQL, SAP-DB (auch freeware) and so on.
Die Clients kriegen eine Anwendung, wo sie direkt in die DB via Netzwerk zugriff haben und ihre Daten reinschreiben.
Infos darüber auch hier unter ADO, MYSQL u.s.w.

grez
msch