![]() |
Daten in Access reinschreiben...
Ich habe das bisher noch nicht gemacht, ich würde aber gerne ;-)
Und zwar ziehe ich mir eine Menge Daten von einem DB2 Server und möchte diese dann in eine Access Datenbank schieben. Bei unseren alten BDE Anwendungen ging das noch klasse mit dem BatchMove (BatCopy). Ich hatte es jetzt mal mit den ADO Komponenten von Delphi 7 versucht. Da finde ich allerdings nicht solch eine Möglichkeit. Das sollte doch eingentlich funzen, oder??? Vielleicht hat jemand ja die Lösung. Egal, ob Delphi 5, Delphi7 oder gar Delphi 8. Ich wäre um Beispiele sehr froh ;-) Danke |
Re: Daten in Access reinschreiben...
Dazu wirst Du vermutlich ein kleines Programm schreiben müssen, das es zwar von M$ Programm gibt um aus einer anderen Datenbank die Daten in die eigen DB zu bringen, aber diese eigentlich als Ziel-DB nur den MS-SQl-Server haben.
Vom Prinzip geht es folgendermaßen:
Delphi-Quellcode:
Vermutlich mußt Du noch einige Anpassungen vornehmen um z.B. mit BLOB-Feldern arbeiten zu können.
DB2Query.SQL := 'SELECT * FROM Ursprungstabelle';
DB2Query.Open; sql1 := 'INSERT INTO Zieltabelle(' for i := 1 to ZielQuery.Fields.Count do begin if i > 1 then sql1 := sql1 + ','; sql1 := sql1 + ZielQuery.Fields[i].FieldName; end; sql1 := sql1 + ') VALUES(' while not DB2Query.EOF do begin ZielQuery.SQL := sql1 for i := 1 to ZielQuery.Fields.Count do begin if i > 1 then ZielQuery.SQL := ZielQuery.SQL + ','; ZielQuery.SQL := ZielQuery.SQL + '''' + ZielQuery.Fields[i].Value ''''; end; ZielQuery.SQL := ZielQuery.SQL + ')'; ZielQuery.ExecSQL; end; |
Re: Daten in Access reinschreiben...
:shock: :shock: :shock:
Ach du meine Güte... :shock: :shock: :shock: Meine SQL sieht ca so aus:
SQL-Code:
Wo ist denn da der Vortschritt von Paradoxtabellen auf eine Access Datenbank? :gruebel:
SELECT KOND_LFSP, INLAND_AUSLAND, STORNO, KONTO, COUNT(*) AS ANZAHL
, SUM(BETRAG_INCL_UST), SUM(UST), SUM(BETRAG_INCL_UST + UST) FROM ( SELECT CASE WHEN GS_KONTONUMMER = 9648309907 AND GS_SERVICEFUNKTION = 'LFSP' THEN 'XTRA FEE' WHEN GS_KONTONUMMER = 9648409904 AND GS_SERVICEFUNKTION = 'LFSP' THEN 'SNO GEB' WHEN GS_AUSLOESER = 'UMTA' THEN ' UMTAUSCH' ELSE GS_KONDITION_KUERZ END AS KOND_LFSP , CASE WHEN GS_KONTONUMMER = 9648309907 AND GS_SERVICEFUNKTION = 'LFSP' THEN GS_BETRAG_EURO / 100 * 116 WHEN GS_KONTONUMMER = 9648409904 AND GS_SERVICEFUNKTION = 'LFSP' THEN GS_BETRAG_EURO ELSE GS_BETRAG_EURO * -1 END AS BETRAG_INCL_UST , GS_KONTONUMMER AS KONTO , CASE WHEN (GS_KONTONUMMER = 9648309907 AND GS_SERVICEFUNKTION = 'LFSP') THEN GS_BETRAG_EURO / 100 * 16 WHEN (GS_KONTONUMMER = 9648409904 AND GS_SERVICEFUNKTION = 'LFSP') THEN GS_BETRAG_EURO / 116 * 16 WHEN GS_KONDITION_KUERZ = 'CLEARGEB' OR GS_KONDITION_KUERZ = 'CLEARGS' OR GS_KONDITION_KUERZ = 'CLEARNAM' OR GS_KONDITION_KUERZ = 'CCPFEE' THEN GS_BETRAG_EURO / 116 * 16 * -1 ELSE 0 END AS UST , CASE WHEN GS_KONDITION_KUERZ = 'CLEARGEB' OR GS_KONDITION_KUERZ = 'CLEARGS' OR GS_KONDITION_KUERZ = 'CLEARZV' OR GS_KONDITION_KUERZ = 'LOCO' THEN ' ' WHEN GS_KONTONUMMER = 9648309907 AND GS_SERVICEFUNKTION = 'LFSP' THEN ' ' WHEN GS_KONTONUMMER = 9648409904 AND GS_SERVICEFUNKTION = 'LFSP' THEN ' ' WHEN GS_AUSLOESER = 'UMTA' AND SUBSTR(GS_FI_BENUTZERSCHL,1,2) = 'DE' THEN 'INLAND' WHEN GS_AUSLOESER = 'UMTA' AND SUBSTR(GS_FI_BENUTZERSCHL,1,2) ^= 'DE' THEN 'AUSLAND' ELSE ' ' END AS INLAND_AUSLAND , CASE WHEN GS_GELDBUCHUNGSTYP = 'STBU' THEN ' STORNO' ELSE ' ' END AS STORNO FROM PD02.XGKKD01T WHERE (( GS_AUSLOESER = 'HAND' AND GS_GABRV_FI_GRUPPE ^= 'FOND' AND ((GS_SERVICEFUNKTION = 'LFSP' AND GS_KONTONUMMER IN (9648309907, 9648409904)) OR (GS_SERVICEFUNKTION ^= 'LFSP') AND GS_KONDITION_KUERZ IN ('LOCO','CLEARGEB','CCPFEE', 'CLEARGS','CLEARNAM','CLEARZV')) ) OR ( GS_AUSLOESER = 'UMTA') ) -- AND GS_DEPOTNUMMER = 7961515003 AND GS_DEPOTNUMMER BETWEEN 7961515000 AND 7961515999 AND ( (MONTH(GS_ABRECH_DATUM) = MONTH(CURRENT TIMESTAMP) - 1) OR (MONTH(CURRENT TIMESTAMP) = 1 AND MONTH(GS_ABRECH_DATUM) = 12) ) AND GS_ABRECH_DATUM > '12.06.2003' AND ((GS_GELDBUCHUNGSTYP = 'ECHT' AND GS_BETRAG_EURO > 0) OR (GS_GELDBUCHUNGSTYP = 'STBU' AND GS_BETRAG_EURO < 0) OR (GS_SERVICEFUNKTION = 'LFSP') OR (GS_AUSLOESER = 'UMTA') ) ) AS TAB1 GROUP BY KOND_LFSP, INLAND_AUSLAND, STORNO, KONTO Gibt es vielleicht eine einfache Möglichkeit von Paradox nach Access zu schaufen??? |
Re: Daten in Access reinschreiben...
Wieso denn überhaupt Access?
Ich sehe nur den Fortschritt das man nicht mehr die veraltete BDE benötigt (wenn Du auch deinen DB2-Zugriff auf eine native-Schnittstelle umgestellt hast). Und weil man in Access weitere Auswertungen fahren kann ohne Programmieren zu müssen. Du kannst Paradox-Tabllen direkt in Access importieren. |
Re: Daten in Access reinschreiben...
Was Bernhard sagte, kann ich beides nur bestätigen, warum Access und wenn schon - dann mit dem Delphi-Zubehör-Prg. Datapump.
Meiner Meinung nach ist aber die Umstellung auf Access nicht unbedingt eine Verbesserung :-) Gruß, Jochen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz