AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Merken von Daten

Ein Thema von K-Asche · begonnen am 3. Feb 2006 · letzter Beitrag vom 3. Feb 2006
Antwort Antwort
K-Asche

Registriert seit: 16. Nov 2005
Ort: Greven
71 Beiträge
 
#1

Merken von Daten

  Alt 3. Feb 2006, 14:18
Hi @ all,

habe ein kleines Problem. Ich ändere in einer Datenbank eine Identnummer in eine andere.
Nun möchte ich mir merken, von welcher Nummer ich in welche Nummer umgewandelt habe.
Das heißt ich brauche eine Art Liste, der ich die Nummer vor und die Nach der Änderung mitgeben kann, die ich dann
anhand der Werte von NummerVor oder NummerNach oder nach beidem abprüfen kann ob diese Nummer bereits umgewandelt wurde und/oder in welche Nummer gewandelt wurde.
Jemand eine idee?

Gruß

CrazyPlaya
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Merken von Daten

  Alt 3. Feb 2006, 14:33
Hi,

du kannst deine Basis-Tabelle einfach um das Feld OLD_ID erweitern und dir in diesem Feld die alte ID merken.

Grüße vom marabu
  Mit Zitat antworten Zitat
K-Asche

Registriert seit: 16. Nov 2005
Ort: Greven
71 Beiträge
 
#3

Re: Merken von Daten

  Alt 3. Feb 2006, 14:34
Leider nicht ganz so einfach, die Tabelle ist eine BTrieve Datei leider kein SQL
  Mit Zitat antworten Zitat
K-Asche

Registriert seit: 16. Nov 2005
Ort: Greven
71 Beiträge
 
#4

Re: Merken von Daten

  Alt 3. Feb 2006, 14:52
Ich habe jetzt mal versucht mir ein Array von einem Record, welcher die benötigten Werte enthält zu erstellen und dann das Array abzufragen. Dazu übergebe ich das Array an eine Funktion, die dieses Element für Element durchprüfen soll. Funktioniert aber auch nicht, da ich ja das Array bereits mit SetLength auf einen bestimmten Max - Wert gestezt habe. Sobald ich nun auf das Element 1 zugreife bekomme ich eine Exception.

Hier mal der Code:
Delphi-Quellcode:
// Aufruf der Function
IndexOf(Value, IntToNr(Test);
Delphi-Quellcode:
function TfrmFortschritt.IndexOf(Ar : TCop; Value : String) : Integer;
Var I : Integer;
    S : String;
begin
  S := Value;
  Result := -1;
  For I := 0 to length(Ar) do Begin
    If CompareStr(S, Ar[I].BetAlt) = 0 then Begin
      Result := 1;
      break;
    End;
  End;
end;
Was mach ich falsch?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Merken von Daten

  Alt 3. Feb 2006, 15:09
Der alte Off-By-One Fehler - der Index muss bis Pred(Length(Ar)) laufen. Aber warum verwendest du nicht einfach einen Assoziativspeicher:

Delphi-Quellcode:
var
  Map: TStringList;
  NewId, OldId: String;
begin
  Map := TStringList.Create;
  NewId := 'A1';
  OldId := '1A';
  Map.Values[NewID] := OldID;
end;
marabu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz