![]() |
Datenbank: Firbird • Version: 1.5 • Zugriff über: BDE
TMemo Komponente, Zeilen in Firbird DB schreiben
Hallo zusammen,
ich habe folgendes Problem. Ich benutze die TMemo Komponente um ein Blob-Feld aus der Datenbank anzuzeigen. Das funktioniert auch. Wenn ich nun meinen Update-Befehl absätze bekomme ich einen Fehler. Conversion Error from String "Blob". Mein Update Befehl.
Delphi-Quellcode:
Weiss jemand wo der Fehler ist?
QuMem.Sql.Text := 'Update Tabelle1 set Mem = ("' + MeMemo.Lines.Text + '"); ';
Vielen Dank. Eppos |
Re: TMemo Komponente, Zeilen in Firbird DB schreiben
Zeig doch mal, wie Du das TMemo aus der Datenbank füllst.
Und gib und mehr Infos zur DB. |
Re: TMemo Komponente, Zeilen in Firbird DB schreiben
Datenbank: Firbird
Version: 1.5 Verbindung: BDE Tabelle: Tabelle1 Feld: Mem (Blob Memo)
Delphi-Quellcode:
MeMemo.Lines.Text := QuMem.FieldByName( 'Mem' ).AsString;
|
Re: TMemo Komponente, Zeilen in Firbird DB schreiben
Hi Eppos,
Firebird interpretiert Angaben in doppelten Anführungsstrichen als Feld- bzw. Tabellen-Namen. Den Inhalt eines Strings mußt du in einfache Anführungsstrichen setzen. Um solche Probleme zu vermeiden, gilt auch für Datums- und Zeitangaben, sollte man immer mit Parametern arbeiten.
Delphi-Quellcode:
Durch die Verwendung von .AsString, .AsDateTime usw. bei der Parameterzuweisung hat man
QuMem.Sql.Text := 'Update Tabelle1 set Mem = :Mem';
QuMem.ParamByName('Mem').AsString := MeMemo.Lines.Text; auch keine Probleme mit den Parametertypen. alex |
Re: TMemo Komponente, Zeilen in Firbird DB schreiben
Oder man verwendet QuotedStr:
Delphi-Quellcode:
Das QuotedStr setzt die Anführungszeichen " oder ' so wie sie benütigt werden.
QuMem.Sql.Text := 'Update Tabelle1 set Mem = ' + QuotedStr(MeMemo.Lines.Text);
Schöner ist allerdings die Variante mit den Parametern. |
Re: TMemo Komponente, Zeilen in Firbird DB schreiben
Ich werde beide Varianten heute Abend mal ausprobieren.
Vielen Dank im Vorraus! Eppos |
Re: TMemo Komponente, Zeilen in Firbird DB schreiben
Bei der ersten Möglichkeit kommt diese Fehlermeldung:
Allgemeiner SQL-Fehler feature is not supported BLOB and array dataq types are not supported for move operation Bei der zweiten Möglichkeit diese: Conversion Error from String. |
Re: TMemo Komponente, Zeilen in Firbird DB schreiben
Zeig mal den Code, damit wir sehen, was Du gemacht hast.
|
Re: TMemo Komponente, Zeilen in Firbird DB schreiben
Delphi-Quellcode:
// erste
QuData.Sql.Text := 'Update Data set Data = ' + QuotedStr(MeMem.Text); QuData.Execsql; QuData.Free; // zweite QuData.Sql.Text := 'Update Data set Data = :Data'; QuData.ParamByName('Data').AsString := MeData.Text; QuData.Execsql; QuData.Free; |
Re: TMemo Komponente, Zeilen in Firbird DB schreiben
Zitat:
Nebenbei erwähnt: Es ist eh keine gute Idee, in einer Datenbank BLOBs zu verwenden. Jedes DBMS bietet Text-Felder in variabler Grösse an. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz