Hallo allerseits,
habe hier ein merkwürdiges Problem:
Bei mehreren hundert Kunden läuft unser Programm einwandfrei, bei einem allerdings kommt es zu einem merkwürdigen Fehler.
Es wird versucht, Daten von einer lokalen
Access-
DB auf unseren MS-
SQL-Server zu schieben. Hier der Ausschnitt aus dem Quellcode dazu:
Delphi-Quellcode:
procedure TDMBewegDaten.PEineLeistungUebertragen
(const EineADOQuery: TADOQuery);
begin
with cmdLeistungAnlegen do begin
with Parameters do begin
ParamByName('auf_id').Value :=
EineADOQuery.FieldByName('AUF_ID').AsString;
ParamByName('verz_id').Value :=
EineADOQuery.FieldByName('VERZ_ID').AsString;
ParamByName('pos_id').Value :=
EineADOQuery.FieldByName('POS_ID').AsString;
ParamByName('menge').Value :=
EineADOQuery.FieldByName('MENGE').AsCurrency;
ParamByName('me').Value :=
EineADOQuery.FieldByName('ME').AsString;
ParamByName('e_preis').Value :=
EineADOQuery.FieldByName('E_PREIS').AsCurrency;
ParamByName('kurztext').Value :=
EineADOQuery.FieldByName('E_KU_BESCHR').AsString;
ParamByName('formel_notiz').Value :=
EineADOQuery.FieldByName('NOT_FORM').AsString;
end;
Execute;
end;
end;
Dreh- und Angelpunkt scheint diese Codezeile zu sein:
Delphi-Quellcode:
ParamByName('formel_notiz').Value :=
EineADOQuery.FieldByName('NOT_FORM').AsString;
Hier wird der Eintrag eines
Access-Memofeldes in ein Datenfeld des
SQL-Servers vom Typ text übertragen. Zu einem Fehler ("Ungültiger Zeichenwert für Konvertierungsangabe") kommt es, wenn dieses Memofeld leer ist. Sobald dort etwas steht, gibt es kein Problem.
Wie gesagt, dieses Phänomen tritt nur bei diesem einen Rechner auf, bei allen anderen nicht.
Noch ein paar Infos:
Entwickelt wurde das Programm mit Delphi 5 incl. aller Updates.
Unser
SQL-Server: MS
Sql-Server 7, läuft unter Win 2000 Server
Kundenrechner: Windows XP Pro mit Servicepack 2, alle Updates,
MDAC 2.8 Serviecepack 1, also meines Erachtens auch absolut aktuell.
Die Verbindung des Kundenrechners zu unserem Server läuft über eine normale TCI/
IP-Verbindung
Uns ist dieses Verhalten momentan ein Rätsel... Kann sich irgendwer einen Reim darauf machen?
Grüße Uli
Edit: Tippfehler korrigiert