Unregelmäßiges Verhalten bei INSERT in MS-Access Memo-Feld



  • Hallo,

    In meiner Anwendung lese ich Email-Daten (Netscape 7.1) ein, um sie in einer Datenbank (MS Access 97) zu archivieren.

    Nach dem Start der Anwendung kann ich eine beliebige Datei in den Vector gvTEmail einlesen, analysieren (Apostrophkorrektur, Leerzeilen entfernen etc.) und problemlos in eine Tabelle u.a. mit einem Memofeld schreiben. Auch kann ich die im Vector gvTEmail gespeicherten Daten mehrmals hintereinander problemlos in die Tabelle schreiben.

    AnsiString asTable = "tbl_EMail_temp";
    for(int i=0; i<Form2->gvEMail.size(); i++){
    
            TDateTime dtDatumZeit1, dtDatumZeit2;
            AnsiString asBeschreibung, asErstelltVon;
            int iKontakt, iErledigt;
    
            // (...)
            // Analyse der in Vector gvEMail zwischengespeicherten Daten
            // und Übergabe an dtDatumZeit1, dtDatumZeit2,
            //                 asBeschreibung, asErstelltVon,
            //                 iKontakt, iErledigt
    
            Tqry->Close();
            Tqry->SQL->Clear();
            Tqry->SQL->Add("INSERT INTO " + asTable + " (Anfangsdatum, Anfangszeit, Beschreibung, Kontakt, ErstelltVon, Erledigt) ");
            Tqry->SQL->Add("VALUES (:Anfangsdatum, :Anfangszeit, :Beschreibung, :Kontakt, :ErstelltVon, :Erledigt) ");
    
            Tqry->Params->Items[0]->AsDateTime = dtDatumZeit1;
            Tqry->Params->Items[1]->AsDateTime = dtDatumZeit2;
            Tqry->Params->Items[2]->AsMemo = asBeschreibung;
            Tqry->Params->Items[3]->AsInteger = iKontakt;
            Tqry->Params->Items[4]->AsString = asErstelltVon;
            Tqry->Params->Items[5]->AsInteger = iErledigt;
    
            Tqry->ExecSQL()
        }
    

    Wenn ich jedoch nach Anwendungsstart zwei Dateien nacheinander einlese, erscheint beim Versuch die Daten der zweiten Datei in die Datenbank zu schreiben der Fehler: Die Zeichenfolgedaten wurden rechts abgeschnitten

    Woran kann das liegen?
    An welchen 'Schaltern' muss ich drehen, um nach dem Schreiben in die Datenbank die Anwendung bzw. die Datenbankverbindung in einen 'frischen' Zustand zu bringen?

    Gruß
    Leo


Anmelden zum Antworten