![]() |
Backup mdb
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
bekomme bald eine Kriese.Möchte von einer Access.mdb ein Backup erstellen. Das geht so weit alles.Aber in der einen Tabelle kommt immer die dussliche Fehlermeldung:'Auch keine' ist kein gültiger Fließkommawert für Feld'pa_Kosten'. Ja ich bin der Blödi,dass weiss ich...:oops: Hab das Beispiel mit drangehangen.Die 2 Datenbanken sind auch mit enthalten.(Sourcecode)+Abb1 |
AW: Backup mdb
Warum kopierst du die Felder als Strings?
Delphi-Quellcode:
Besser
tblInsert.Fields[tblInsertRecord-1].AsString:=QryFrom.Fields[tblInsertRecord-1].AsString;
Delphi-Quellcode:
tblInsert.Fields[tblInsertRecord-1].Value:=QryFrom.Fields[tblInsertRecord-1].Value;
|
AW: Backup mdb
Danke.Hab das so weit abgeändert.
Jetzt kommt die nächste Meldung:ungültiger Wert für'pa_Kosten' Aber bin doch noch am lernen:-D |
AW: Backup mdb
Zitat:
Zitat:
1. Du versuchst, einen mittels Autowert erzeugten Wert (Feld pa_ausgangsnr) zu überschreiben. 2. Statt
Delphi-Quellcode:
wäre besser:
for tblInsertRecord:= 1 to tblInsert.Fields.Count do
begin tblInsert.Fields[tblInsertRecord-1].AsString:=QryFrom.Fields[tblInsertRecord-1].AsString; end;
Delphi-Quellcode:
3. Statt
for tblInsertRecord:= 0 to tblInsert.Fields.Count -1 do
begin tblInsert.Fields[tblInsertRecord].AsString:=QryFrom.Fields[tblInsertRecord].AsString; end;
Delphi-Quellcode:
wäre hier besser:
for QryFromRecord:=1 to QryFrom.RecordCount do
Delphi-Quellcode:
weil du ja sowieso mit QryFrom.Next zum nächsten Datensatz weiterschaltest. Ist der letzte Datensatz erreicht, wird die Schleife noch einmal ausgeführt. Beim nächsten NEXT erreicht der Datensatzzeiger das EOF und die WHILE-Bedingung wird TRUE.
WHILE NOT QryFrom.EOF DO
Übersichtlicher Code hilft beim Debuggen ungemein! Wenn du eine Sicherheitskopie der gesamten Access-Datei anlegen möchtest, bietet sich die Alternative an, die gesamte Datei einfach unter einem anderen Namen zu kopieren. Ich mache das bei etlichen meiner frühen Kundendatenbanken und biete sogar dem Anwender die Möglichkeit, beim Beginn bzw. beim Beenden der Anwendung eine Sicherung anzulegen. Auch zwischendurch soll der Anwender die Möglichkeit haben, schnell mal ein Backup erzeugen zu können. Nicht vergessen, vor dem Kopieren alle Connections zu schließen und danach wieder zu öffnen. |
AW: Backup mdb
ich schließe mich Perlsau an, bei der Gelegenheit böte sich ein Kompress/Repair mit an
Delphi-Quellcode:
mit Typbibliothek Microsoft Jet and Replication Objects 2.x
procedure CompressRepairMDB(DBFile : TFileName; APassword : String);
const tmpDBName = 'compress.mdb'; var JROJetEngine : TJetEngine; srcConn, destConn : String; begin JROJetEngine := TJetEngine.Create(nil); try srcConn := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DBFile; destConn := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + sPath + tmpDBName; if APassWord <> '' then begin srcConn := srcConn + ';Jet OLEDB:Database Password="' + APassWord+ '"'; destConn := destConn + ';Jet OLEDB:Database Password="' + APassWord+ '"'; end; // Datenbank reparieren & komprimieren JROJetEngine.CompactDatabase(srcConn, destConn); if FileExists(sPath + tmpDBName) then begin // Ausgangsdatenbank löschen oder auch nicht (gegf. umbenennen) DeleteFile(PChar(DBFile)); // Komprimierte DB anstelle der AusgangsDB kopieren CopyFile(PChar(sPath + tmpDBName), PChar(DBFile), false); // Komprimierte DB löschen oder als Backup aufbewaren DeleteFile(PChar(sPath + tmpDBName)); end; finally JROJetEngine.Disconnect; JROJetEngine.Free; end; end; |
AW: Backup mdb
Erstmal Dankeschön!!!
Hab es einfacher gelöst.
Delphi-Quellcode:
Und es erfüllt den selben Zweck:-D
procedure TfrmMain.Button1Click(Sender: TObject);
var fileSource, fileDest: string; begin fileSource := 'postbuch.mdb'; fileDest := 'Backup\backup_postbuch.mdb'; CopyFile(PChar(fileSource), PChar(fileDest), False); end; //Geht perfekt Volker |
AW: Backup mdb
Zitat:
Was an deiner Procedure noch fehlt, sind Disconnect vor dem Kopieren und anschließender Connect. Oder ist deine Anwendung nicht ständig mit deiner Access-Datenbank verbunden? |
AW: Backup mdb
Nur das du etwaige Fehler einfach mitkopierst.
|
AW: Backup mdb
Nee,ich habe mehre Formen.Beim schließen des Programm's wird
noch eine angezeigt und dort habe ich alles reingepackt(DB schließen usw.). |
AW: Backup mdb
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 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 by Thomas Breitkreuz