Registriert seit: 9. Jan 2004
Ort: Hamburg
52 Beiträge
|
Re: Datenabgleich: QuellFeld hat mehr Zeichen als Zielfeld?
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
|
|
Zitat
|