Einzelnen Beitrag anzeigen

manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#7

Re: Import aus Access plus ID > GUID

  Alt 6. Mär 2006, 09:09
Zitat von marabu:
Hallo Manfred,

Ich denke, für so eine einmalige Aufgabe muss nicht unbedingt ein Programm erstellt werden. Ein paar ALTER TABLE und UPDATE Statements tun da auch ihren Zweck.

Grüße vom marabu
Hallo marabu

bei einer einzelnen DB hast Du natürlich recht. Da ich aber vor ca. 1/2 Jahr schon eine DB
frtiggestellt habe die nun von einigen Leutet ( weiss nicht wie viel, da das Programm "frei" ist ) eingesetzt
wird. Muss ich eine Importfunktion in meiner neuen DB haben.

Wie Du dem Code sichrlich entnehmen kannst binn ich mir nicht ganz sicher auf welchem Wege ich das bewerkstelligen kann / soll.

Die Theorie ist mir eigentlich klar, nur die umsetzung hapert noch.
Womöglich kannst Du mir einen Tippp geben ob ich was vergesse oder falsch mache?

1. mit dem stelle ich die Verbindung zur Datenbank her:
Delphi-Quellcode:
DM.pFIBDB_Gideons.Connected := True;
     DM.pFIBDS_NursingH.Open;
// DM.pFIBDS_NursingH_D.Open;
// DM.pFIBDS_NursingH_DD.Open;
     if not DM.pFIBDS_Camps.Active then DM.pFIBDS_Camps.Open;
2. hier soll eine "schleife" gestartet werden und die Variablen old_id / new_id
Delphi-Quellcode:
try
        DM.ADOT_nursh_imp.First;
        for i := 0 to DM.ADOT_nursh_imp.RecordCount -1 do begin
          old_id:= Dm.pFIBDS_NursingH.FieldByName('ID').AsInteger;
          new_id:= CreateClassID;
          //new_id:= StringReplace(old_id,(''+(CreateClassID)) [rfReplaceAll, rfIgnoreCase]);
          // SELECT NURSING_H_D.ID_AREA FROM NURSING_H_D WHERE ID_AREA = 25
3. hier soll dem Feld ID in NursingH eine GUID zugeteilt werden und die gleiche in ( das momentan auskommentierte Feld ) NursingH_D ID_AREA:
Delphi-Quellcode:
DM.pFIBDS_NursingH.Edit;
          DM.pFIBDS_NursingH.FieldByName('ID').AsString := new_id;
          DM.pFIBDS_NursingH.Post;

          //DM.pFIBDS_NursingH_D.FieldByFieldNo(old_id);
          //DM.pFIBDS_NursingH_D.Insert;
          //DM.pFIBDS_NursingH_D.FieldByName('ID_AREA').AsString:= new_id;
          //DM.pFIBDS_NursingH_D.Post;

          DM.ADOT_nursh_imp.Next;
Nach meiner Meinung liegt im 3. das Problem.
Kanst Du mir sagen ob meine Überlegung richtig ist?
Wenn ich mit new_id:= CreateClassID; eine Variable erstelle und diese dann 2x Verwende nimmt er dann die
gleiche GUID?
Bei der ausführung des obigen Codes erhalte ich immer die Meldung:
" is not a Valid integer value

Kannst Du mir hier weiterhelfen?
Manfred
  Mit Zitat antworten Zitat