Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   CreateBlobStream bei Delphi XE3 liefert Fehler "Kein BLOB-Feld" (https://www.delphipraxis.net/171698-createblobstream-bei-delphi-xe3-liefert-fehler-kein-blob-feld.html)

HighBaer 20. Nov 2012 16:29

Datenbank: Paradox • Version: 7 • Zugriff über: BDE

CreateBlobStream bei Delphi XE3 liefert Fehler "Kein BLOB-Feld"
 
Hallo Leute!

Ich habe folgendes Problem: Es soll eine Anwendung die über die BDE auf eine Paradox-DB zugreift und unter Delph 7 erstellt wurde auf Delphi XE3 umgestellt werden. Von XE3 habe ich zunächst nur die Test-Version (Architekt ohne Sourcen) um zu sehen ob es überhaupt klappt. Nun erhalte ich beim Aufruf von CreateBlobStream die Fehlermedlung "Kein BLOB-Feld". Unter Delphi 7 läuft es mit der gleichen Tabelle korrekt. Das entsprechende Feld hat als "DataTye" auch "ftBlob", selbst die Umwandung zu TBlobField klappt. Ich habe es auch mit anderen Tabellen, die BLOB-Felder haben, ausprobiert: Immer das gleiche Ergebnis = Fehlermeldung.

Ist das eventuell ein Fehler in XE3? Wie gesagt, bei der Test-Version sind keine Sourcen dabei, die man zur Fehleranalyse nutzen könnte.

Noch ein paar Infos: Das Feld ist auf jeden Fall ein BLOB und NICHT leer! Die Tabelle ist offen, andere Felder können gelesen werden. (Ansonsten sollte auch eine andere Fehlermeldung kommen.)

Bitte nun kein Hinweis, dass die BDE veraltete ist und man besser eine andere DB nehmen sollte. Das weiß ich, aber hilft mir hier nicht konkret weiter, da zunächst mal mit der BDE weitergeaebeitet werden soll.

Für einen Tipp wäre ich dankbar.

Bernhard Geyer 20. Nov 2012 16:40

AW: CreateBlobStream bei Delphi XE3 liefert Fehler "Kein BLOB-Feld"
 
Also im Delphi-Forum hat jemand das gleich Problem gelöst indem er statt BDE ADOExpress/dbGo verwendet hat.

Evtl ist das ein bisher nicht gefixter Fehler in XE3 mit BDE.

RWarnecke 20. Nov 2012 18:04

AW: CreateBlobStream bei Delphi XE3 liefert Fehler "Kein BLOB-Feld"
 
Man sollte auch noch dabei bedenken, dass die BDE nicht mehr weiterentwickelt wird.

Edit : Ich empfehle hier auf eine andere Datenbank umzubauen.

Bernhard Geyer 20. Nov 2012 19:24

AW: CreateBlobStream bei Delphi XE3 liefert Fehler "Kein BLOB-Feld"
 
Zitat:

Zitat von RWarnecke (Beitrag 1192114)
Man sollte auch noch dabei bedenken, dass die BDE nicht mehr weiterentwickelt wird.

Er hat "nicht mehr weiterentwickelt" und "andere Datenbank" gesagt. Steinigt Ihn! :-)

hoika 21. Nov 2012 05:30

AW: CreateBlobStream bei Delphi XE3 liefert Fehler "Kein BLOB-Feld"
 
Hallo,

zeig mal ein bisschen Code.


Heiko

HighBaer 21. Nov 2012 10:08

AW: CreateBlobStream bei Delphi XE3 liefert Fehler "Kein BLOB-Feld"
 
Hallo Leute,

zunächstmal Danke für die Antworten, die aber leider nicht weiterhelfen. Ich hatte ja geschrieben, dass ich weiß, dass die BDE nicht mehr weiterentwickelt wird. Mittelfristig werde ich da auch auf eine Alternative umschwenken, aber das ist im Moment (u.a. auch aus Zeitgründen nicht möglich). Ich bin aber davon ausgegangen, dass, wenn in XE3 die BDE noch unter stützt wird, das auch vollständing und korrekt der Fall ist. Die Methode wird auch in der Hilfe beschrieben, also sollte man doch davon ausgehen, dass das auch funktioniert...

An der BDE oder der Tabelle kann es nicht liegen, denn wie gesagt klappt da der Zugriff korrekt. Ich habe mittlerweile festgestellt, dass die gleiche Fehlermedlung auch bei einem Memo-Feld kommt.

Ich weiss zwar nicht was da der Code weiterhelfen soll, aber wenn's hilft:
Delphi-Quellcode:
procedure LeseBitmap(Table: TTable);
var
  Stream : TStream;
begin
  with Table do begin
    Stream := CreateBlobStream(FieldByName('Bitmap'),bmRead); // Die Excception kommt an dieser Stelle!
    try
      FBitmap.LoadFromStream(Stream); // FBitmap : TBitmap
    finally
      Stream.Free;
    end; {try .. finally}
  end; {with}
end; {LeseBitmap}

Bernhard Geyer 21. Nov 2012 10:57

AW: CreateBlobStream bei Delphi XE3 liefert Fehler "Kein BLOB-Feld"
 
Zitat:

Zitat von HighBaer (Beitrag 1192184)
Ich bin aber davon ausgegangen, dass, wenn in XE3 die BDE noch unter stützt wird, das auch vollständing und korrekt der Fall ist. Die Methode wird auch in der Hilfe beschrieben, also sollte man doch davon ausgehen, dass das auch funktioniert...

Die Beschreibung der Methode ist vermutlich seit 10 Jahren nicht mehr angelangt worden. Das letzte mal als es ins neue Hilfesystem überführt wurde. Und ich glaube das mittlerweile bei Emba der Test gegen die BDE nur noch aus "It Compiles! Ship it" besteht.

Zitat:

Zitat von HighBaer (Beitrag 1192184)
Ich habe mittlerweile festgestellt, dass die gleiche Fehlermedlung auch bei einem Memo-Feld kommt.

Hättest du den link richtig gelesen hättest du dir das sparen können.

Also wenn du unbedingt (noch mittelfristig) noch BDE haben willst bleib erst mal bei D7 und "entsorge" die BDE bevor du auf XE3 oder neuer umsteigst.

Gollum 21. Nov 2012 12:10

AW: CreateBlobStream bei Delphi XE3 liefert Fehler "Kein BLOB-Feld"
 
Hallo,

was passiert, wenn Du TStream durch TBlobStream ersetzt?

p80286 21. Nov 2012 13:15

AW: CreateBlobStream bei Delphi XE3 liefert Fehler "Kein BLOB-Feld"
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1192104)
.... indem er statt BDE ADOExpress/dbGo verwendet hat.

:thumb::thumb:

Könnte es sein daß die BDE sich am Char-Format verschluckt?
Es hat da ja schon die seltsamsten Nebeneffekte gegeben.

Gruß
K-H

Bernhard Geyer 21. Nov 2012 13:38

AW: CreateBlobStream bei Delphi XE3 liefert Fehler "Kein BLOB-Feld"
 
Zitat:

Zitat von p80286 (Beitrag 1192216)
Könnte es sein daß die BDE sich am Char-Format verschluckt?

Müsste sich ja dann eigentlich schon bei D2009 verschluckt haben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:10 Uhr.
Seite 1 von 2  1 2      

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