Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
Delphi XE2 Enterprise
|
FibPlus SQL-Befels Reinfolge / abarbeitung
28. Dez 2006, 16:27
Datenbank: Fiebird • Version: 1.5 • Zugriff über: Fibplus
Hallo zusammen
zuerst nachträglich schöne Weihnachten und einen guten rutsch ins
neue Jahr.
Seit einiger Zeit versuche ich einen Im - Export in meiner Anwendung
zu realisieren.
Die Anwendung besteht aus mehreren Sparten.
Das Problem ist das der Im-Export bei einigen geht ( Sparten ) bei anderen nicht
obwohl er überall gleich realisiert wurde....
Wenn untenstehender Code ausgeführt wird und ich nebenbei einen SQL-Monitor
mitlaufen lasse sehe ich das z.t Befehle übersprungen werden.
Mir ist das völlig unlogisch. Könnt Ihr da witerhelfen?
Delphi-Quellcode:
procedure TDM_school.import_data(Sender: TObject);
begin
DM.DB_Gideons.Connected := True;
DM.Camps.Open;
School.Open;
School_D.Open;
School_DD.Open;
School_C.Open;
School_S.Open;
//
// Extract the Zipfile
//
DM.ZipMaster.ExtrBaseDir := app_dir + ' exchange';
DM.ZipMaster.ZipFileName := app_dir + ' exchange\school.zip';
DM.ZipMaster.Extract;
//
// Erase of all Data in the Tables
with Q_School_import do
begin
Close;
SQL.Clear;
SQL.Add ( ' DELETE FROM SCHOOL_DD');
ExecQuery;
Close;
SQL.Clear;
SQL.Add ( ' DELETE FROM SCHOOL_D');
ExecQuery;
Close;
SQL.Clear;
SQL.Add ( ' DELETE FROM SCHOOL_C');
ExecQuery;
Close;
SQL.Clear;
SQL.Add ( ' DELETE FROM SCHOOL_S');
ExecQuery;
Close;
SQL.Clear;
SQL.Add ( ' DELETE FROM SCHOOL');
ExecQuery;
Close;
//
// School.Close;
// School_D.Close;
// School_DD.Close;
// School_C.Close;
// School_S.Close;
// //
// School.Open;
// School_D.Open;
// School_DD.Open;
// School_C.Open;
// School_S.Open;
// Import of all Data in exchange/ *.fibplus
//
Close;
SQL.Clear;
SQL.Add ( ' insert into SCHOOL ( ID, C_NR, U_NR, NAME, KIND, TITLE, STR, PLZ, CITY, TEL, FAX, EMAIL, HOMEPAGE, SCHOOLJ, NUMBER, WORKER, ACCEPTANCE, STATUS, NOTE, NC, CS, L_UPDATE, STAT_UPDATE, STAT_DEL, OPT )' +
' values ( :ID, :C_NR, :U_NR, :NAME, :KIND, :TITLE, :STR, :PLZ, :CITY, :TEL, :FAX, :EMAIL, :HOMEPAGE, :SCHOOLJ, :NUMBER, :WORKER, :ACCEPTANCE, :STATUS, :NOTE, :NC, :CS, :L_UPDATE, :STAT_UPDATE, :STAT_DEL, :OPT )');
BatchInputRawFile(app_dir + ' exchange/school.fibplus');
Close;
SQL.Clear;
SQL.Add ( ' INSERT INTO SCHOOL_D (ID, C_NR, U_NR, ID_AREA, D_DATE, D_C_PERSON, D_C_THRU, D_NOTE, L_UPDATE, STAT_UPDATE, STAT_DEL)' +
' values ( :ID, :C_NR, :U_NR, :ID_AREA, :D_DATE, :D_C_PERSON, :D_C_THRU, :D_NOTE, :L_UPDATE, :STAT_UPDATE, :STAT_DEL)');
BatchInputRawFile(app_dir + ' exchange/school_d.fibplus');
Close;
SQL.Clear;
SQL.Add ( ' INSERT INTO SCHOOL_DD (ID, C_NR, U_NR, ID_D, BIBEL_TYPE, AMOUNT, L_UPDATE, STAT_UPDATE, STAT_DEL)' +
' values ( :ID, :C_NR, :U_NR, :ID_D, :BIBEL_TYPE, :AMOUNT, :L_UPDATE, :STAT_UPDATE, :STAT_DEL)');
BatchInputRawFile(app_dir + ' exchange/school_dd.fibplus');
Close;
SQL.Clear;
SQL.Add ( ' INSERT INTO SCHOOL_C (ID, C_NR, U_NR, ID_AREA, C_TITLE, C_NAME, C_FIRSTNAME, C_POSITION, C_TEL_1, C_TEL_2, C_EMAIL, C_NOTE, L_UPDATE, STAT_UPDATE, STAT_DEL)' +
' values ( :ID, :C_NR, :U_NR, :ID_AREA, :C_TITLE, :C_NAME, :C_FIRSTNAME, :C_POSITION, :C_TEL_1, :C_TEL_2, :C_EMAIL, :C_NOTE, :L_UPDATE, :STAT_UPDATE, :STAT_DEL)');
BatchInputRawFile(app_dir + ' exchange/school_c.fibplus');
Close;
SQL.Clear;
SQL.Add ( ' insert into SCHOOL_S ( ID, C_NR, U_NR, TY, Q, YT, QT, L_UPDATE, STAT_UPDATE, STAT_DEL )' +
' values ( :ID, :C_NR, :U_NR, :TY, :Q, :YT, :QT, :L_UPDATE, :STAT_UPDATE, :STAT_DEL )');
BatchInputRawFile(app_dir + ' exchange/school_s.fibplus');
end;
// Delete the .fibplus after Import
DeleteFile (' exchange\school.fibplus');
DeleteFile (' exchange\school_d.fibplus');
DeleteFile (' exchange\school_dd.fibplus');
DeleteFile (' exchange\school_c.fibplus');
DeleteFile (' exchange\school_s.fibplus');
end;
Das Problem tritt hauptsächlich beim löschen auf ( das was übersprungen wird ).
Anschliesend entstehen dann natürlich Probleme beim Import.
Bin für jede Hilfe dankbar.
Shalom
Manfred
|