AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TMemo Komponente, Zeilen in Firbird DB schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

TMemo Komponente, Zeilen in Firbird DB schreiben

Ein Thema von Eppos · begonnen am 16. Okt 2007 · letzter Beitrag vom 16. Okt 2007
Antwort Antwort
Seite 1 von 3  1 23      
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#1

TMemo Komponente, Zeilen in Firbird DB schreiben

  Alt 16. Okt 2007, 10:19
Datenbank: Firbird • Version: 1.5 • Zugriff über: BDE
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.

QuMem.Sql.Text := 'Update Tabelle1 set Mem = ("' + MeMemo.Lines.Text + '"); '; Weiss jemand wo der Fehler ist?

Vielen Dank.

Eppos
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: TMemo Komponente, Zeilen in Firbird DB schreiben

  Alt 16. Okt 2007, 10:35
Zeig doch mal, wie Du das TMemo aus der Datenbank füllst.
Und gib und mehr Infos zur DB.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: TMemo Komponente, Zeilen in Firbird DB schreiben

  Alt 16. Okt 2007, 10:38
Datenbank: Firbird
Version: 1.5
Verbindung: BDE
Tabelle: Tabelle1
Feld: Mem (Blob Memo)
MeMemo.Lines.Text := QuMem.FieldByName( 'Mem' ).AsString;
  Mit Zitat antworten Zitat
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#4

Re: TMemo Komponente, Zeilen in Firbird DB schreiben

  Alt 16. Okt 2007, 10:47
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:
QuMem.Sql.Text := 'Update Tabelle1 set Mem = :Mem';
QuMem.ParamByName('Mem').AsString := MeMemo.Lines.Text;
Durch die Verwendung von .AsString, .AsDateTime usw. bei der Parameterzuweisung hat man
auch keine Probleme mit den Parametertypen.

alex
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: TMemo Komponente, Zeilen in Firbird DB schreiben

  Alt 16. Okt 2007, 10:51
Oder man verwendet QuotedStr:
QuMem.Sql.Text := 'Update Tabelle1 set Mem = ' + QuotedStr(MeMemo.Lines.Text); Das QuotedStr setzt die Anführungszeichen " oder ' so wie sie benütigt werden.

Schöner ist allerdings die Variante mit den Parametern.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: TMemo Komponente, Zeilen in Firbird DB schreiben

  Alt 16. Okt 2007, 10:58
Ich werde beide Varianten heute Abend mal ausprobieren.

Vielen Dank im Vorraus!

Eppos
  Mit Zitat antworten Zitat
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: TMemo Komponente, Zeilen in Firbird DB schreiben

  Alt 16. Okt 2007, 12:05
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.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: TMemo Komponente, Zeilen in Firbird DB schreiben

  Alt 16. Okt 2007, 12:10
Zeig mal den Code, damit wir sehen, was Du gemacht hast.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: TMemo Komponente, Zeilen in Firbird DB schreiben

  Alt 16. Okt 2007, 12:33
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;
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: TMemo Komponente, Zeilen in Firbird DB schreiben

  Alt 16. Okt 2007, 12:44
Zitat von Delphi 7 Hilfe:
Text (Eigenschaft von TStrings)
Mit der Eigenschaft Text lassen sich alle Strings eines TStrings-Objekts als ein ganzer String ansprechen, dessen Elemente durch das Code-Paar für Wagenrücklauf (Carriage Return, CR) und Zeilenvorschub (Line Feed, LF) voneinander getrennt sind.

Bei einem Lesezugriff auf die Eigenschaft Text werden Strings zurückgegeben, die durch Wagenrücklauf- und (in Windows) Zeilenvorschubzeichen getrennt sind
Da sich die Property Text des TMemo auf TStrings bezieht, kommt der Fehler vermutlich von den CR/LF.

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.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 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