ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
3773
3773
EMPFEHLEN
-
Hallo:
Situation: Habe Access DB mit verschiedenen Tabellen.
Borland C++ Builder, zugriff auf DB geschieht über TQuery.
An und für sich funktioniert die Sache, jedoch macht mir irgendwie ein Memo Feld Probleme. Ich schildere kurz die Situation anhand des Source Codes:
/*
//Auf diesen Quelltextabschnitt beziehe ich mich später.
// COMMENTED_SOURCE
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("insert into Test");
Query1->SQL->Add("values (:Param0)");
Query1->ParamByName("Param0")->AsMemo = AnsiString("DAJKLDUUJALKDJBBBBBBKLAJDLKJADLKJ");
Query1->ExecSQL();
Query1->Close();
*/
//Hier der Problemcode...
AnsiString Bericht = m_pRecordValues->GetPruefbericht();
Query1->SQL->Clear();
Query1->SQL->Add("insert into T02_PRUEFUNG");
Query1->SQL->Add("values (:Param0, :Param1, :Param2, :Param3, :Param4, :Param5, :Param6, :Param7, :Param8)");
Query1->ParamByName("Param0")->AsInteger = maxID;
Query1->ParamByName("Param1")->AsDateTime = DatumZeit->CurrentDate();
Query1->ParamByName("Param2")->AsDateTime = DatumZeit->CurrentTime();
Query1->ParamByName("Param3")->AsBoolean = m_pRecordValues->GetPruefungBestanden();
//Es wird zwischen String und Memo unterschieden, da Memo Datenmüll in die DB schreibt, wenn der Bericht == "";
if(m_pRecordValues->GetPruefbericht().Length()<20)
Query1->ParamByName("Param4")->AsString = Bericht;
else
Query1->ParamByName("Param4")->AsMemo = Bericht;
... RESTLICHE PARAMS WERDEN ÜBERGEBEN...
Query1->ExecSQL();
Query1->Close();
Das Problem:
Im Projekt Projektname.exe ist eine Exception der Klasse EDBEngine aufgetreten.
Meldung: 'Allgemeiner SQL-Fehler
[Microsoft ][ODBC Microsoft Access Driver] Die Zeichenfolgedaten wurden rechts abgeschnitten. (null)'.
Prozeß wurde angehalten. Mit einzelne Anweisung oder Start fortsetzen.
Im Debugger ist jedoch zu sehen, dass Bericht sehr wohl daten enthält, und auch richtig formatiert ist. Der Fehler kommt auch, wenn einfach ein AnsiString("Hallo Welt"); übergeben wird.
Was ist bekannt?
Nach dem ich die Datenbank neu gestartet habe, kann ich einen Datensatz in die DB schreiben. nachdem ich nochmals einen Datensatz in die Tabelle schreiben möchte kommt obiger Fehler.
Früher hat das Ding tadellos funktioniert. Es muss mit einer Änderung zusammenhängen, die ich anderweiteig gemacht habe.
Komisch ist:
Wenn ich den COMMENTED_SOURCE einkommentiere (Er schreibt in eine andere Tabelle in der gleichen DB sinnlos Zeichen rein, aber ebenfalls als Memo) funktioniert das untere Insert Satement beliebig oft.
Ich habe das Gefühl, als sei in dem Query noch irgendwelcher Müll drin, aber ich rufe ja Query1->SQL->Clear(); auf.
Gibt es noch andere Befehle, die das Query wieder in einen "reinen" Zustand versetzen.
Kann mir jemand obiges Phänomen erklären?
Muss Query1->Close eigentlich nur nach Select Statements aufgerufen werden, oder überhaupt nicht. Ich sehe gar keine Veränderung, ob ich es nun aufrufe, oder nicht.
Danke,
Gruß, BastiGeändert von Sapperlot (01.08.05 um 10:21 Uhr)
-
15.11.06 13:30 #2
- Registriert seit
- Nov 2006
- Beiträge
- 1
Hi Sapperlot,
ich mühe mich ebenfalls seit geraumer Zeit, um per Borland BDE Daten in ein Memofeld einer Access-Datenbank zu schreiben.
Habe diverse Ansätze probiert. Leider war bisher keiner dabei, der stabil genug lief.
Hast Du Dein Probelm von damals lösen können? Wenn Du Interesse an Erfahrungsaustausch hast, gebe Nachricht.
Gruß
Leo
Ähnliche Themen
-
Zeilenumbrüche im Memo-Feld
Von Alex Duschek im Forum Delphi, Kylix, PascalAntworten: 11Letzter Beitrag: 18.12.09, 09:50 -
[Access] Abfrage aus Memo-Feld liefert kryptische Zeichen
Von fiacyberz im Forum Office-AnwendungenAntworten: 3Letzter Beitrag: 12.01.09, 09:53 -
Insert Statement
Von kloakenratte im Forum Java GrundlagenAntworten: 1Letzter Beitrag: 06.10.08, 15:34 -
Insert - Abfrage mit TQuery - Borland Builder C++
Von Mike_2005 im Forum Borland CBuilder und VCLAntworten: 2Letzter Beitrag: 28.12.04, 11:08 -
Memo-Feld von Access bleibt bei Abfrage leer.
Von pm-design im Forum ASPAntworten: 2Letzter Beitrag: 22.01.04, 09:31





Zitieren
Login





