exli2
Mitglied
 
Dabei seit: 02.12.2009
Beiträge: 37
Einsatzart von VDF: gewerblich Anwenderstatus: Newbie Herkunft: Berliner Gegend Betriebssystem: XP
 |
|
| Konvertierungsfehler beim MSSQL.Save |
 |
Hallo Leute, wieder mal ein schwieriger Fall. Mein DB- Ableich von einer lokalen DB zu einer struktuerell identischen MSSQL- Tabelle läuft so, dass der entsprechende Datensatz gefunden und durch die Inhalte des DB- Satzes (die in einem VariantArray stehen) ersetzt wird. Dieser Prozess läuft in einer For loop Schleife, bis alle Felder gefüllt sind und dann wird gespeichert. Was nicht (oder mit Meldung eines Konvertierungsfehlers) übertragen wird, sind Datumswerte! Werden sie dagegen nach Ende der Loop- Schleife gesetzt, funktioniert alles normal. Folgendes Procedere läuft problemlos:
Clear hTable
Set_Field_Value hTable 1 to vDBDataflexArtikel[1]
Vfind hTable 1 EQ
If (Found) Begin
For iFeldNr from 1 to iFelderGesamt
If (iType[iFeldNr] = DF_ASCII) Set_Field_Value hTable iFeldNr to (trim(vDBDataflexArtikel[iFeldNr]))
If (iType[iFeldNr] = DF_BCD) Set_Field_Value hTable iFeldNr to vDBDataflexArtikel[iFeldNr]
Loop
Set_Field_Value hTable 26 to vDBDataflexArtikel[26]
SaveRecord hTable
Unlock
Sobald aber in der Loop- Schleife die Zeile für die DatumsKonvertierung des ArrayWertes drin ist, und dann das Set_field_value nach dem loop natürlich raus ist,
If (iType[iFeldNr] = DF_DATE) Set_Field_Value hTable iFeldNr to (convert(vDBDataflexArtikel[iFeldNr],Date))
wird entweder der Wert nicht übertragen oder der MSSQL.Save ergibt den Konvertierungsfehler. Es ist egal, ob hier ein Date oder ein Datetime und die entsprechende Konvertierung verwendet wird. DateTime ergibt immer diesen Fehler, obwohl SQL DateTime- Felder besitzt.
Da komme ich nicht mehr weiter. Zumal vor einiger Zeit das noch zu funktionieren schien, denn die Werte der beiden Tabellen stimmten damals.
Hoffe, es kann da jemand helfen.
Gruß
Andreas
__________________ Programme sind nur so gut, wie das Zusammenspiel der Synapsen des Entwicklers.
|
|