seltermann
Goto Top

Inkomp. Datentyp - TBlobType

TTable mit inkompatiblen Datentyp - TBlobType - fmtMemo bzw. ftMemo erwartet aber String erhalten --- Fehler

Hi Leute,

vielleicht hat jemand Ahnung von diesen schwierigen Problem und kann helfen

ich soll eine Datenbankumstellung realisieren für eine Delphi-Anwendung, von Interbase nach Sybase. Die Datenbank an sich ist kein Problem es waren nur geringfügige Änderungen notwendig, Hochkommas und sowas. Die wesentlichen Änderungen waren die Blob-Felder diese habe ich in varchar-Felder umgeschrieben.

Jetzt gibt es aber Probleme mit dem Delphi-Programm. In der FieldList von TTable steht bei diesen Feldern, unter Verschiedenes, Blobtype = fmtMemo bzw. Blobtype = ftMemo. Damit das Programm überhaupt das ausführen kann habe ich das betreffende Feld gelöscht und neu hinzugefügt. Jetzt klappt es aber die vorigen Einstellungen vom Feld gehen verloren, zumal es auch ein ganz anderer Feldtyp ist.

Original Abgeändert
a12c0a09dcc5a0040bb126ae84b71a78-eigenschaften_tablelistekd
952bb1f2ea5acee47d253ecaf01e2b60-eigenschaften_tablelistekd_geaendert

Das Feld Bemerkung ist in der Datenbank ##EF7600|InterBase## ##ff9933|Bemerkung = BLOB## und in ##EF7600|Sybase## ##ff9954|Bemerkung = varchar (80)##

Führt man die Anwendung ohne die Abänderung aus kommt so eine Meldung:

20cdedffbf47131b35b22db61889778a-edatabaseerror


Angenommen dieses Problem würde jetzt gelöst werden durch diese oder eine andere Variante im Delphi-Programm in den dfm-Dateien, wie kann man dann auf einen Schlag alle über 130 Vorkommen auf einen Schlag ändern?

Ich hab hier schon einen Beitrag für eine Batch-Suche geöffnet. (An der Stelle nochmals vielen Dank an bastla)
Das große Problem ist der Aufbau der dfm-Dateien der ein einfaches ersetzen ausschließt.
Im Hexeditor sieht das auch ziemlich prächtig aus. face-smile


Sybase unterstützt keine Blob-Felder und letzt endlich ist fmtMemo nichts anderes als formatierter Text.
Also welche Änderung(en) wäre(n) notwendig?

Content-ID: 65815

Url: https://administrator.de/contentid/65815

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

Seltermann
Seltermann 09.08.2007 um 17:41:11 Uhr
Goto Top
Der Fehler lag in der Datenbank.

varchar(80) musste durch TEXT ersetzt werden

Jetzt funktioniert alles.
Es gibt bei BLOB zwei Dinge zu beachten, wie ich herausgefunden habe.
Zum einen kann es Binär und zum anderen ein Text sein.