Einzelnen Beitrag anzeigen

Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

IBExpert + IBEBlock

  Alt 28. Apr 2013, 19:24
Datenbank: Firebird • Version: 2,5 • Zugriff über: IBExpert
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
Tanja
  Mit Zitat antworten Zitat