Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Merkwürdiges ADO-Problem (https://www.delphipraxis.net/77411-merkwuerdiges-ado-problem.html)

Ulrich Berger 19. Sep 2006 10:39

Datenbank: MS SQL-Server • Version: 7 • Zugriff über: ADO

Merkwürdiges ADO-Problem
 
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

Catbytes 19. Sep 2006 10:47

Re: Merkwürdiges ADO-Problem
 
Hallo,

ich hatte mal ein ähnliches Problem (auf einem Rechner wurde ein Text-Feld immer als Memo angesprochen).

Aus neugier habe ich dann mal auf diesem Rechner Delphi installiert und das Programm vor-Ort kompiliert - dann lief es.

Ist zwar nur an den Krankheiten rumdoktoren anstatt die Ursache zu finden, aber es läuft seitdem und das war mir damals wichtig, weil es schnell gehen mußte.

mkinzler 19. Sep 2006 10:49

Re: Merkwürdiges ADO-Problem
 
Überprüfe doch vorher ob das Quellfeld nicht leer ist.

Ulrich Berger 19. Sep 2006 11:08

Re: Merkwürdiges ADO-Problem
 
Hallo mkinzler,

natürlich kann man das machen und vorher überprüfen ob dieses Feld leer ist.

Aber wie gesagt, das Ding ist ja mittlerweile bei mehreren hundert Kunden in Betrieb und dort gibt es keine Probleme... da wüßte man schon ganz gern, wieso es bei diesem Einen nun gerade nicht klappt...

Ein paar zusätzliche Infos, die ich bei meinem ersten Post vergessen hab zu erwähnen:

Wir haben den Kundenrechner momentan hier in der Firma (ist ein Laptop), auch hier in unserem Firmennetz gibt es die beschriebenen Probleme. Kopiert man die Access-Datenbank auf einen anderen Rechner im Netz und versucht das Versenden der Daten von dort (natürlich mit der gleichen Programmfunktion), klappt's ohne Probleme.

Grüße Uli

Bernhard Geyer 19. Sep 2006 11:10

Re: Merkwürdiges ADO-Problem
 
100%ig gleiche MDAC-Version (Evtl. nochmal drüber installieren)?
Gleiche JET-Version (ist ja nicht mehr bei MDAC dabei)?

Christian Seehase 19. Sep 2006 13:02

Re: Merkwürdiges ADO-Problem
 
Moin Uli,

für solche Prüfungen (MDAC) gab es von MS mal den Component Checker (CC).
Vielleicht kann der weiterhelfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:18 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