AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Aus einer SQL- Datenbank ein Binärfeld auslesen

Aus einer SQL- Datenbank ein Binärfeld auslesen

Ein Thema von FranzKogler · begonnen am 16. Okt 2007 · letzter Beitrag vom 20. Okt 2007
Antwort Antwort
FranzKogler

Registriert seit: 31. Aug 2004
Ort: Stuttgart
3 Beiträge
 
#1

Aus einer SQL- Datenbank ein Binärfeld auslesen

  Alt 16. Okt 2007, 20:44
Datenbank: MSDE 2000 • Zugriff über: MSADO
Hallo,

ich versuche, mit Delphi ein Binärfeld aus einem SQL- Server auszulesen.
Leider bekomme ich immer eine Fehler bei der Typumwandlung.

Beim Feld handelt es sich um ein BYTE- Feld mit der Größe 50.

Hat jemand einen Lösungsansatz für mich ?

var Buffer: array of Byte;
Buffer:=rstTable.Fields['ManagerPassword'];

funktioniert leider nicht.

Gruß Franz
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Aus einer SQL- Datenbank ein Binärfeld auslesen

  Alt 16. Okt 2007, 21:09
Such mal nach Beispielen die das gewünschte als BLOB-Feld auslesen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
FranzKogler

Registriert seit: 31. Aug 2004
Ort: Stuttgart
3 Beiträge
 
#3

Re: Aus einer SQL- Datenbank ein Binärfeld auslesen

  Alt 19. Okt 2007, 19:50
kennt jemand einen anderen Ansatz ?
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Aus einer SQL- Datenbank ein Binärfeld auslesen

  Alt 19. Okt 2007, 20:07
TBlobField(MyTable.FieldByName('MyField')).SaveToStream (MyStream) Bei persistenten Feldern (MyTableMyField ist ja bereits ein TBlobField)
MyTableMyField.SaveToStream (MyStream)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Aus einer SQL- Datenbank ein Binärfeld auslesen

  Alt 19. Okt 2007, 20:37
Herzlich willkommen in der Delphi-PRAXiS, Franz.

Dein Versuch mit dem Array of Byte war gar nicht so schlecht:

Delphi-Quellcode:
function GetVarBytes(f: TField; var bda: TByteDynArray): Boolean;
begin
  Result := f.DataType = ftVarBytes;
  if Result then
    DynArrayFromVariant(Pointer(bda), f.Value, TypeInfo(TByteDynArray));
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
var
  bda: TByteDynArray;
begin
  with ADOTable do
    if GetVarBytes(FieldByName('varbin'), bda)
      then ShowMessage(IntToStr(Length(bda)))
      else ShowMessage('?');
end;
Wenn keine NUL-Character drin vorkommen, dann kannst du den Feldinhalt auch einfach über die Feld-Methode AsString() bearbeiten.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
FranzKogler

Registriert seit: 31. Aug 2004
Ort: Stuttgart
3 Beiträge
 
#6

Re: Aus einer SQL- Datenbank ein Binärfeld auslesen

  Alt 20. Okt 2007, 17:47
Vielen Dank an marabu.
Der Ansatz
DynArrayFromVariant(Pointer(bda), f.Value, TypeInfo(TByteDynArray));
bringt die Lösung.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:00 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