Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Einträge Importieren (https://www.delphipraxis.net/3790-eintraege-importieren.html)

The Re@l 30. Mär 2003 14:12


Einträge Importieren
 
Hi

Ich hab mal wieder was!

Ich würde gerne aus einer Fremden Datenbank die aber von der struktur gleich ist, dén Inhalt der Felder in meine vom Program her zugewiesene datenbank einfügen. Ich benutze eine Paradox7. Ich hab aber leider keinen Plan wie ich vorgehen soll, in der suche hab ich noch nix der gleichen gefunden es sei denn das ich nach dem Falschen gesucht habe.

Bis dann
The R€@l

The Re@l 31. Mär 2003 12:21

Hi Nochmal

anders gefragt.

Ich hatte vor die *.db zu sichern, wenn mann mal windows neumacht das nich alle einträge wech sind, Nach der neuinstalltion hab ich dann die *.db, wieder überschrieben und wollt das Proggie starten, dann kam die fehlermeldung "Index nicht mehr gültig".

wer kann mir einen Rat geben.

Bis dann

The Re@l

X-Dragon 31. Mär 2003 14:27

Zitat:

Zitat von The Re@l
Hi Nochmal

anders gefragt.

Ich hatte vor die *.db zu sichern, wenn mann mal windows neumacht das nich alle einträge wech sind, Nach der neuinstalltion hab ich dann die *.db, wieder überschrieben und wollt das Proggie starten, dann kam die fehlermeldung "Index nicht mehr gültig".

wer kann mir einen Rat geben.

Bis dann

The Re@l

Du hast anscheind die dazugehörigen Index-Dateien (*.px) vergessen mitzukopieren. Also am besten die Datenbanken einzeln aufrufen mit dem Database-Desktop (oder wie der auch in der deutschen Version heißt) uns setzt manuell den Index jeweils für entsprechenden Spalte neu (normal eigentlich immer erste Spalte).

Oder du machst es dir einfacher und läds dir z.B. hier ein sehr nützliches Tool runter, welches unteranderem den Index auch einfach reparieren/widerherstellen kann:
http://www.ncn-germany.de/download/intern/Pdxrbld.exe

Specialwork 31. Mär 2003 14:43

Datapump.exe
 
Hallo Re@l,

Am aller einfachsten ist es jedoch mit dem mit Delphi mitgelieferten Tool "DATAPUMP". Dieses Tool findest Du in der Regel in folgenden Verzeichniss.

Delphi-Quellcode:
C:\Programme\Gemeinsame Dateien\Borland Shared\BDE\datapump.exe
Gruß, Tom

The Re@l 31. Mär 2003 22:30

Cool Danke euch jetzt klappts :P

Bis dann

The Re@l

The Re@l 1. Apr 2003 08:37

Mal ne andere Frage

Code:
procedure TForm1.Button4Click(Sender: TObject);
var
i: Integer;
begin
If OpenDialog1.Execute then Begin
Table2.Active := false;
Table2.TableName := OpenDialog1.FileName ;
Table2.Active := True;
for i := 0 to Table2.FieldCount - 1 do begin
 Table1.Append;
 Table1.Fields.Fields[i].AsString := Table2.Fields.Fields[i].AsString;
 Table1.Post;
  end;
  end;
  end;
Was is den Hier Falsch :?: Der gibt "IndexFehler" beim ausführen zurück.

[Message=Sakura]Kein Problem - Doppelposting entfernt[/Message]

X-Dragon 1. Apr 2003 10:52

Auf jeden Fall muss du die Syntax in der For-Schleife mit begin ... end kapseln, sonst wird nur die erste Zeile nach dem For-Befehl x-mal ausgeführt.

Gast 1. Apr 2003 11:47

Alles ist OK 8) ... bis vielleicht auf das:
(...)
IF NOT Table2.Fields.Fields[i].IsNull THEN
Table1.Fields.Fields[i].AsString := Table2.Fields.Fields[i].AsString;
(...)


Gruß

Paul Jr.

Gast 1. Apr 2003 11:51

Ach so... eins habe ich noch vergessen:

Du musst den Ihnahlt Deiner Ziel-Tabelle vor dem kopieren löschen... sonnst kriegst Du womöglich Primärschlüssel-Konflikt...

Gruß

Paul Jr.

The Re@l 1. Apr 2003 12:39

so

Also den Primär KEY Konfilkt hab ich :cry:

Dann hab ich die Ziel-Tabelle Gelöscht aber der fehler bleibt der gleiche

Wenn Ich allerdings aus
Code:
for i := 0 to Table2.FieldCount -0 do begin
Table1.append;
Code:
for i := 0 to Table2.FieldCount -0 do begin
Table1.edit;
mache dann schreibt er mir ohne zu meckern zumindenst den 1. datensatz

Gast 1. Apr 2003 12:47

Wie heiß dieses Feld (Primärschlüssel) (ist es Selbstzählend?) ...

Gruß

Paul Jr.

The Re@l 1. Apr 2003 12:50

Hi

Das Feld heisst name und ist vom Typ Alpha.

Gast 1. Apr 2003 12:53

Ich hoffe, dass Du die GANZE Tabelle Table2 (INHALT) gelöscht hast..

Warte 5 Minuten... gleich hab's ich...

The Re@l 1. Apr 2003 13:00

mmh Tabelle Table1 hab ich ganz gelöscht

Gast 1. Apr 2003 13:04

Code:
   Table1.Open;
   Table2.Open;
   WITH Table2 DO
      BEGIN
         First;
         WHILE NOT EOF DO
            BEGIN
               Table1.Append;
               TRY
                  for i := 0 to FieldCount - 1 do
                     begin
                        IF NOT Fields.Fields[i].IsNull THEN
                           Table1.Fields.Fields[i].AsString := Fields.Fields[i].AsString;
                     end;
                  IF NOT Table1.FieldByName('NAME').IsNull THEN
                     Table1.Post
                  ELSE
                     Table1.Cancel;
               EXCEPT
                  Table1.Cancel;
               END;
               Next; // Nächster Datensatz!!!
            END;
   END
Gruß

Paul Jr.

The Re@l 1. Apr 2003 13:09

Cool es Funzt :D

Danke Dir du hast was gut bei mir :bounce1:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 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