AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi suche vorschläge um blob stream und sql insert zu verknüpfen
Thema durchsuchen
Ansicht
Themen-Optionen

suche vorschläge um blob stream und sql insert zu verknüpfen

Ein Thema von agm65 · begonnen am 20. Okt 2006 · letzter Beitrag vom 20. Okt 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#1

suche vorschläge um blob stream und sql insert zu verknüpfen

  Alt 20. Okt 2006, 10:19
Datenbank: abs • Zugriff über: lokal
also ich habe folgendes problem, ich möchte den blob stream und das insert zusammenlegen, denn wenn ich zuerst den blob stream ausführe und danach das insert hab ich ja 2 einträge. zudem überschreibt der blob stream immer den gleichen eintrag und macht keinen neuen. gibt es da nicht sowas wie update ? das ich zuerst den insert mache und den blob stream danach update ? hat jemand eine idee ? danke für hilfe jungs !

Delphi-Quellcode:
Blob Stream:

Procedure SaveBlob;
var
  FileStream: TMemoryStream;
  BlobStream: TABSBlobStream;
begin
  frmmain.Table.Edit;
  try
    FileStream := TMemoryStream.Create;
    FileStream.LoadFromFile(showImage);
    BlobStream := TABSBlobStream(frmmain.Table.CreateBlobStream(frmmain.Table.FieldByName('image_show'),bmWrite));
    BlobStream.CopyFrom(FileStream,FileStream.Size);
    FileStream.Free;
    BlobStream.Free;
    frmmain.Table.Post;
  except
    frmmain.Table.Cancel;
    raise;
  end;
end;
Delphi-Quellcode:
SQL Insert:

QuerySaveData.sql.text := 'INSERT into vehicles ('

 + 'brand,'
 + 'model,'

 + ') values ('


 + '''' + txtMarke.Text + ''','
 + '''' + txtModell.Text + ''')'

QuerySaveData.ExecSQL;
euer Peter Porka
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: suche vorschläge um blob stream und sql insert zu verknü

  Alt 20. Okt 2006, 10:26
Ändere die Reihenfolge, erst das Insert, dann den Blob hinterher.
So wie das aussieht, schreibst Du den Blobinhalt in den Satz vor dem Insert.
Oder alles in einem machen, statt frmmain.table.edit frm.table.append nehmen und die anderen Felder auch zuweisen.

Stephan
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#3

Re: suche vorschläge um blob stream und sql insert zu verknü

  Alt 20. Okt 2006, 10:46
also ich führe den blob stream nach dem insert aus aber egal ob edit oder append, ich bekomme immer 2 einträge und der blob stream überschreibt sich immer selbst und legt keine neuen datensatz an .
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: suche vorschläge um blob stream und sql insert zu verknü

  Alt 20. Okt 2006, 10:52
Hi,

jetzt muss ich doch mal nachhaken.
Wozu brauchst du die 2 - gleisige Fahrweise mit TABStable und TABSQuery.

Die TABSQuery reicht doch aus.
Auch diese hat die Methode CreateBlobStream, und wenn du deinen Select dort unterbringst, kannst du doch hier ein Insert und dann das CreateBlobStream und zuletzt das Post aufrufen.
Und mit Datensensitiven Steuerelementen wie das von dir erwähnte jvDBImage brauchst du nicht mal den Weg über den BlobStream.

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#5

Re: suche vorschläge um blob stream und sql insert zu verknü

  Alt 20. Okt 2006, 10:55
frank wie meinst du das ? meinst du ich kann einfach das bild aus dem dbimage über insert in das blob feld adden ?
euer Peter Porka
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: suche vorschläge um blob stream und sql insert zu verknü

  Alt 20. Okt 2006, 10:56
Das wird mir jetzt ein bisserl zu kompliziert:

Schreib doch bitte mal, wie die Aufrufe für das Insert und SaveBlob in deinem Quelltext aufgerufen werden.

Wird nach dem Insert z. B. der Satzzeiger von frmmain.table auf den neu eingefügten Satz gesetzt (frmmain.table.next, frmmain.table.last) oder über Findkey gesucht oder... .

Wie stellst Du sicher, dass SaveBlob den Datensatz "erwischt", den Du mit Insert eingefügt hast?

Stephan
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#7

Re: suche vorschläge um blob stream und sql insert zu verknü

  Alt 20. Okt 2006, 11:00
ja genau, das ist ja mein problem..ich weiss nicht wie ich das feststelle, ich inserte zuerste meine textwerte und danach mache ich warlos den blobstream, weil ich keine ahnung habe ich den blob stream meinem insert zuweise.

aufgeruden werden sie:

QuerySaveData.ExecSQL;
SaveBlob;
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: suche vorschläge um blob stream und sql insert zu verknü

  Alt 20. Okt 2006, 11:13
Zitat von agm65:
frank wie meinst du das ? meinst du ich kann einfach das bild aus dem dbimage über insert in das blob feld adden ?
IMHO reicht folgendes:

in SQL.Text der Query dein select:

SQL.Text := 'select * from vehicle';
RequestLive := True;
Open;

Eine DataSource auf die Query, einen TDBnavigator, mit der DataSource verbinden, dein TjvDBImage auf das Form und schon sollte Alles funktionieren....


Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: suche vorschläge um blob stream und sql insert zu verknü

  Alt 20. Okt 2006, 11:15
... und wenn du nicht mit Datensensitiven Steuerelementen arbeiten willst, dann halt im Code:

DeineQuery.Insert;
DeineQuery.FieldByName('FeldName').AsString := 'Wert';
... die ganze BlobStreamgeschichte...
DeineQuery.Post;

Frank
Frank Reim
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

Re: suche vorschläge um blob stream und sql insert zu verknü

  Alt 20. Okt 2006, 11:16
So wie Du das beschreibst, liegt die Vermutung nahe, dass die neuen Daten nach dem Insert der letzte Satz in der Tabelle sind. Hier müsste dann frmmain.table.last vor frmmain.table.edit den Datensatzzeiger an die richtige Stelle bringen, vorausgesetzt, Du hast in frmmain.table.indexname nichts eingetragen. Steht dort ein Indexname drin, so wirst Du den neuen Datensatz an der entsprechenden Stelle nach der Sortierreihenfolge finden. Einfachste Variante ist also, den Indexnamen (sofern vorhanden) wegzunehmen.

Wäre eine Änderung von SaveBlob eine Alternative?

Dann versuche es mal mit

Delphi-Quellcode:
Procedure SaveBlob;
var
  FileStream: TMemoryStream;
  BlobStream: TABSBlobStream;
begin
  // frmmain.Table.Edit;
  frmmain.Table.Append;
  frmmain.fieldbyname('brand').AsString := txtMarke.Text;
  frmmain.fieldbyname('model').AsString := txtModell.Text;
  try
    FileStream := TMemoryStream.Create;
    FileStream.LoadFromFile(showImage);
    BlobStream := TABSBlobStream(frmmain.Table.CreateBlobStream(frmmain.Table.FieldByName('image_show'),bmWrite));
    BlobStream.CopyFrom(FileStream,FileStream.Size);
    FileStream.Free;
    BlobStream.Free;
    frmmain.Table.Post;
  except
    frmmain.Table.Cancel;
    raise;
  end;
end;
So solltest Du die Texte für brand und model sowie das Blobfeld in "einem Rutsch" in die Datenbank bekommen.

Stephan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:28 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