Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   IBExpert + IBEBlock (https://www.delphipraxis.net/174547-ibexpert-ibeblock.html)

Dumpfbacke 28. Apr 2013 18:24

Datenbank: Firebird • Version: 2,5 • Zugriff über: IBExpert

IBExpert + IBEBlock
 
Hallo Leute,
ich möchte gerne einen Ableich zwischen zwei Tabelle in zwei Datenbanken machen. Hierzu benutze ich diesen Script.
Nun sind jedoch nocht zwei Fragen offen und ich hoffe es kann mir jemand hier helfen.

1.) Kann man das Script so anpassen das es funktioniert ohne das Script in einer Datei zwischenzuspeichern ?
2.) Gibt es eine Möglichkeit so ein Script zu erstellen wenn in der zweiten Tabelle der zweiten Datenbank nicht alle Felder vorhanden sind ?


Delphi-Quellcode:

execute ibeblock
returns (
   TotalTime double precision = 0 comment 'Time spent (seconds)')
 as
begin
   StartTime = ibec_gettickcount();
   create connection MasterDB dbname 'localhost:D:\Database\Master.GDB'
   password 'masterkey' user 'SYSDBA'
   clientlib 'C:\FBDLL\fbclient.dll';

   create connection SubscriberDB dbname '192.168.11.109:Slave'  password 'masterkey' user 'SYSDBA'
   sql_dialect 3
   clientlib 'C:\FBDLL\fbclient.dll';

   cbb = 'execute ibeblock (
       RecsProcessed variant)
     as
     begin
       if (ibec_mod(RecsProcessed, 100) = 0) then
       ibec_progress(Records compared: || RecsProcessed);
     end';

 ibec_CompareTables(MasterDB, SubscriberDB, 'ATNR', 'ATNR',

 'C:\CompRes.sql','OmitUpdates', cbb);
 ibec_CompareTables(MasterDB, SubscriberDB, 'ATNR', 'ATNR',

 'C:\CompRes.sql','AppendMode; OmitDeletes; OmitInserts; UpdateAllColumns', cbb);

 ibec_ExecSQLScript(SzbscriblerDB, 'C:\CompRes.sql', 'ServerVersion=FB25', null);

   close connection MasterDB;
   close connection SubscriberDB;

   EndTime = ibec_gettickcount();
   TotalTime = (EndTime - StartTime) / 1000;
   suspend;
end

IBExpert 28. Apr 2013 20:18

AW: IBExpert + IBEBlock
 
Die Frage ist vielelicht besser auf unserem Forum http://www.firebirdexperts.com aufgehoben
aber hier kurz die Antworten dazu:

1. ibec_CompareTables unterstützt aktuell nur die Ausgabe in eine Datei, daher nein
2. Auch das ist bisher nicht vorgesehen, warum nicht einfach die Felder in beiden Tabellen synchron halten?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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