Autor Beitrag
cyberax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 247

Win XP Pro
Delphi 5 Enterprise
BeitragVerfasst: Do 13.09.07 18:16 
Hallo,

ich möchte eine Synchronisation zwischen einem Lokalen Server und einem Online Server durchführen(lassen).

Dafür gibt es auch Tools, aber ich wollte das gern selbst gestallten.
So ungefähr sieht mein Code dafür aus:


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
 
...

ZQuery_artserv.sql.Text:='SELECT artikelname, beschreibung, lagerbestand, artbestnr, dyn_kat, barcode, brutto_preis, sangebot, bild2, bild3, bild4, bild5,'+
            'online, neuheit, lieferbar, explo, online_beschreibung, anzahl_bestellungen,lstatus from artikel where nr = :wert';

 repeat
  meldungen.label1.caption:='Noch '+inttostr(x)+' von '+inttostr(ges)+' Datensätzen werden verglichen...';
  Application.ProcessMessages;
  ZQuery_artserv.parambyname('wert').asinteger:= ZQuery_artclient.fieldbyname('nr').asinteger;
  ZQuery_artserv.open;
  if ZQuery_artserv.fieldbyname('artikelname').AsString <> ZQuery_artclient.fieldbyname('artikelname').AsString then
  begin
   if not(ZQuery_artclient.state in [dsedit, dsinsert]) then ZQuery_artclient.edit;
   ZQuery_artclient.fieldbyname('artikelname').AsString:=ZQuery_artserv.fieldbyname('artikelname').AsString;
  end;
...

Ich öffnen also erst mit einem Query die Artikeltabelle auf dem Server und mit dem anderen Query die vom Client. Nun gehe ich Datensatz für Datensatz durch und vergleiche/ändere. Das Vergleichen bzw. Ändern geht schnell, aber das Laden des Client-query dauert immer ewig.

Bestimmt handhabe ich das mit dem Parameter/der Übergabe falsch.

könnt ihr mir bitte mal weiter helfen?

Gruß cyberax
cyberax Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 247

Win XP Pro
Delphi 5 Enterprise
BeitragVerfasst: Do 13.09.07 18:22 
Ach falsch...

ich arbeite mit query.Refresh und das dauert immer ewig. Wenn ich query.open verwendet, dann "öffnet" er nicht den neuen/nächsten Datensatz.. ?!?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
...  

 
ZQuery_artserv.sql.Text:='SELECT artikelname, beschreibung, lagerbestand, artbestnr, dyn_kat, barcode, brutto_preis, sangebot, bild2, bild3, bild4, bild5,'+  
            'online, neuheit, lieferbar, explo, online_beschreibung, anzahl_bestellungen,lstatus from artikel where nr = :wert';  

  ZQuery_artserv.parambyname('wert').asinteger:= ZQuery_artclient.fieldbyname('nr').asinteger;  
  ZQuery_artserv.open;  
repeat  
  meldungen.label1.caption:='Noch '+inttostr(x)+' von '+inttostr(ges)+' Datensätzen werden verglichen...';  
  Application.ProcessMessages;  
  ZQuery_artserv.parambyname('wert').asinteger:= ZQuery_artclient.fieldbyname('nr').asinteger;  
  ZQuery_artserv.refresh;  
  if ZQuery_artserv.fieldbyname('artikelname').AsString <> ZQuery_artclient.fieldbyname('artikelname').AsString then  
  begin  
   if not(ZQuery_artclient.state in [dsedit, dsinsert]) then ZQuery_artclient.edit;  
   ZQuery_artclient.fieldbyname('artikelname').AsString:=ZQuery_artserv.fieldbyname('artikelname').AsString;  
  end;  
...