Moin,
mit unserer ibeblock Script Sprache (nur verfügbar in der Vollversion bzw Trial) geht der Import recht hurtig, hier ein Beispielscript:
Code:
EXECUTE ibeblock
AS
BEGIN
cbb = 'execute ibeblock (RecNo integer)
as
begin
if (ibec_mod(RecNo, 100) = 0) then
ibec_Progress(RecNo || '' records copied into'||:tabname||'...'');
end';
OdbcCon = ibec_CreateConnection(__ctODBC, 'Driver={Microsoft
Paradox Driver (*.db )};DriverID=538;Fil=
Paradox 5.X;DefaultDir=C:\
paradox\DATEN\;Dbq=C:\
paradox\DATEN\;CollatingSequence=
ASCII;');
DB = ibec_CreateConnection(__ctFirebird,
'DBName="
localhost:C:\firebird\daten.fdb";
ClientLib=fbclient.dll;
user=SYSDBA; password=masterke; names=ISO8859_1; sqldialect=3');
try
use
DB;
for
select tabname from imp_tab into :tabname
do
begin
RecCount = ibec_CopyData(OdbcCon,
DB, 'IMP$'||:tabname,
'SELECT * FROM '||:tabname,
'CommitAfter=1000; EmptyTable; CreateTable; DontQuoteIdents',
cbb);
end
finally
ibec_CloseConnection(
DB);
ibec_CloseConnection(OdbcCon);
END;
END
Damit hast du die Datentabelle 1 zu 1 in der Firebird
DB, danach würde ich dann eine Prozedur
schreiben, mit der die Daten dann von den
Paradox Tabellen auf Basis neuer IDs, die man ja schon in den
Firebird Tabellen speichern kann, verteilt werden.
Wenn das einmal fertig ist kannst du den Import jederzeit wieder anschmeissen und das dauert bei 9000
records sicherlich weit weniger als dein Zeitfenster erlaubt.
Das Script stammt aus einem Kundenprojekt, bei dem wir ca. tausende
Paradox Tabellen importieren mussten,
und zwar in hunderten Kundeninstallationen unbeaufsichtigt.
Wichtig ist das der
Paradox ODBC Treiber installiert sein muss, der ist beim MS Office Paket aber mit
dabei. Wenn das schon mal lief, dann beim 2. Durchlauf das CreateTable Flag rausnehmen, weil
sonst die Tabellen erneut angelegt werden udn Fehler kommen.