Einzelnen Beitrag anzeigen

Benutzerbild von DiscMix
DiscMix

Registriert seit: 9. Jan 2004
Ort: Hamburg
52 Beiträge
 
#4

Re: Datenabgleich: QuellFeld hat mehr Zeichen als Zielfeld?

  Alt 15. Feb 2005, 16:53
ist gar nicht so einfach, da ich denn über stringlisten usw. aufbaue:

bsp:
Delphi-Quellcode:
...
ADOCommand1.CommandText := '';
    if (Funktion = 1) or (Funktion = 3) then
    begin //Funktion 1 = Insert
        ADOCommand1.CommandText := 'insert into Kunde ';
        ADOCommand1.CommandText := ADOCommand1.CommandText + vInsertInto51E +' VALUES ('+v;
    end;
    if Funktion = 2 then
    begin
        ADOCommand1.CommandText := 'update Kunde set';
        ADOCommand1.CommandText := ADOCommand1.CommandText + vInsertInto51E +' VALUES ('+v;
    end;
    for i := 0 to vFelder51Erstmalig.Count-1 do
    begin
      //hier wird auf das erste Sonderzeichen geachtet
      // _ = Konstante ; @ = Zordnungstabelle ; + = Abschneiden beim ersten Leerzeichen
      if copy(vFelder51Erstmalig.Strings[i],1,1) = '_then //Hier wird die Konstante zurückgeschrieben.
        ADOCommand1.CommandText := ADOCommand1.CommandText +
        copy(vFelder51Erstmalig.Strings[i],2,length(vFelder51Erstmalig.Strings[i])-1)+v+','+v;
      if copy(vFelder51Erstmalig.Strings[i],1,1) = '+then
        ADOCommand1.CommandText := ADOCommand1.CommandText +
        VorneAB(QueryIntervall.fieldbyname(copy(vFelder51Erstmalig.Strings[i],2,length(vFelder51Erstmalig.Strings[i])-1)).asstring)+v+','+v;

      if (copy(vFelder51Erstmalig.Strings[i],1,1) <> '_') and
        (copy(vFelder51Erstmalig.Strings[i],1,1) <> '+') then
        ADOCommand1.CommandText := ADOCommand1.CommandText +
        QueryIntervall.fieldbyname(vFelder51Erstmalig.Strings[i]).AsString+v+','+v;
    end;
    ADOCommand1.CommandText := ADOCommand1.CommandText +
    IntToStr(vYear)+v+','+v+vFirma+v+','+v+vZeichen+v+','+v+vKunde+v+')';
    try
        ADOCommand1.Execute;
...
Alles klar???
Ich glaube damit kommt ihr nicht weiter...
Gruss
Marco
  Mit Zitat antworten Zitat