AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Blob in DB Speichern

Blob in DB Speichern

Ein Thema von RStorm · begonnen am 13. Feb 2008 · letzter Beitrag vom 14. Feb 2008
Antwort Antwort
RStorm

Registriert seit: 27. Nov 2005
12 Beiträge
 
#1

Blob in DB Speichern

  Alt 13. Feb 2008, 21:22
Datenbank: Intebase/Firebird • Version: 6.x / 2.0 • Zugriff über: IB components
Hallo Leute,

bin am verzweifeln habe schon die Suche versucht aber nichts brauchbares gefunden. Ich bräuchte eure hilfe Bitte. Wie kann ich Daten, einen String oder Text der ungewiss lang ist in ein Blob Feld speichern. Egal was ich mache ich bekomme es nicht hin habe es schon

IBQuery1ERGEBNIS_T1.LoadFromFile('test.txt'); veruscht oder

IBquery1.ParamByName('ERGEBNIS_T1').AsBlob := 'TEST TEST TEST'; ich bekomme dann immer einen Fehlermeldung "nicht im Bearbeitungs-modus" was genau heist das? Kann mir einer helfen wie ich die daten da rein bekomme? Oder weiss einer wie ich es mit ner SQL Syntax hinbekomme "UPDATE ..."

Danke schon mal und gruss

Rudolf
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Blob in DB Speichern

  Alt 14. Feb 2008, 00:04
Wie wäre es mit DbMemo.LoadMemo ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von peschai
peschai

Registriert seit: 15. Feb 2004
Ort: Göppingen
270 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Blob in DB Speichern

  Alt 14. Feb 2008, 05:41
Hallo
Schematisch in etwa so

"DataSet" symbolisiert deine Tabelle ...

1.) Daten in Stream zwischenlagern
2.) Zum schreiben öffnen mit "Edit"
3.) Stream in Blobfield schreiben
4.) Schreiben abschliessen mit "Post"

Delphi-Quellcode:
function MyObject.FieldWriteAsBlob(const FieldName:String;Const aStream:TStream):Boolean;
var
  j1:TField;
begin
  Result := False;
  j1 := Nil;
  Try
    if Assigned(DataSet) then
      begin
        j1 := DataSet.FieldByName(FieldName);
        If assigned(j1) then
          begin
            if j1.IsBlob then
               begin
                 DataSet.Edit;
                 if Assigned(aStream)
                   then TBlobField(j1).LoadFromStream(aStream)
                   else TBlobField(j1).Clear;
                 DataSet.Post;
                 Result := True;
               end;
          end;
        end;
    except
      on e:exception do
        begin
          Result := False;
          DataSet.Cancel;
          //.... Exception melden ?
        end;
    end;
end;

procedure MyObject.btnPictureWriteClick(Sender: TObject);
var
  ms1:TMemoryStream;
  s2:STring;
  i9:integer;
begin
  // local init
  ms1 := Nil;
  s2 := '';
  i9 := 0;
  { Action }
  try
    try
      if Assigned(DataSet) then
        begin
          if Not(DataSet.ReadOnly) then
            begin
              DataSet.Activate;
              ms1 := TMemoryStream.Create;
              if OpenPictureDialog1.Execute then
                begin
                  ms1.LoadFromFile(OpenPictureDialog1.FileName);
                  ms1.Seek(0, soFromBeginning);
                  MyObject.FieldWriteAsBlob('BlobFeldName',ms1);
                  ms1.Clear;
                end;
            end;
        end;
    except
      on E:Exception do
        begin
          s2 := e.Message;
          // ....
        end;
    end;
  finally
    FreeAndNil(ms1);
  end;
end;
Peter Schaible
  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 07:55 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