Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi In InterbaseDB schreiben (https://www.delphipraxis.net/16565-interbasedb-schreiben.html)

Masterof 19. Feb 2004 11:10


In InterbaseDB schreiben
 
Hallo!!

Ich habe einen Blob aus einer Interbasedatenbank ausgelesen und möchte in nun zurückschreiben. Wie kann ich den Blob in die Datenbank zurückschreiben?

MgG Masterof

Lemmy 19. Feb 2004 11:25

Re: In InterbaseDB schreiben
 
Hi,

wie hast Du das Blobfeld ausgeslesen? Mit welchen Komponenten arbeitest Du (IBX, IBObjects,...)? Was steckt in dem Blobfeld (Text, Bild,..)? Es gibt da einige Möglichkeiten wie es funktioniert (und auch nicht). Bei Verwendung der IBX kannst DU dir auch mal das Tuto anschauen:

http://www.delphi-tutorials.de/Tutorials/blobs.zip


Grüße
Lemmy

Masterof 19. Feb 2004 11:37

Re: In InterbaseDB schreiben
 
Hallo!!

Ich lese den Blob in ein Stringarray ein und bearbeite ihn, anschließend muss ich die Werte aus den Array zurück in die Datenbank schreiben und den alten Blob ersetzten. Es ist ein Textblob. Ich arbeite mit IB Komponenten(IBDatabase, IBQuery, IBTransaction, und IBUpdate).

MfG Master

Lemmy 19. Feb 2004 12:07

Re: In InterbaseDB schreiben
 
Hi,

als erstes solltest Du die IBQuery und die IBUpdate durch die TIBDataSet ersetzen. Diese beiden Komponeten sind nur aus Kompatibilitätsgründen vorhanden.

Was ich jetzt noch immer nicht weiß ist, wie Du das Blob ausliest.

Wenn Du ein Datebankfeld (Rechte MT auf die Query, dann Feldeditor) verwendest kannst du das doch auch dazu verwenden das Feld zurückzuschreiben.
Wie liest Du das Stringarray aus? liest Du den String aus dem Blob und schreibst die einzelnen Werte in das Array...?? Dann geh doch einfach beim Schreiben den umgekehrten Weg...

Grüße
Lem,y

Masterof 19. Feb 2004 12:45

Re: In InterbaseDB schreiben
 
Hallo!!

Leider kann ich das Query nicht einfach ersetzen, da eine größere Berechnung damit in Verbindung steht. Wie sollte die Befehlsyntax für das zurückschreiben aussehen?

MfG Master

Lemmy 19. Feb 2004 14:03

Re: In InterbaseDB schreiben
 
Hi,

zum zurückschreiben genügt ein Query.Edit (wenn es mit der IBUpdate in Verbindung steht), dann den Blob entsprechend editieren und mit Post speichern. Eine Änderung mittels Update-SQL geht meines Wissens nach nicht, außer Du arbeitest mit UDF-Funktionen zusammen, die den String im SQL in einen Blob umwandeln, wobei ich da bisher nur schlechtes gehört habe.

Grüße
Lemmy

Masterof 19. Feb 2004 14:29

Re: In InterbaseDB schreiben
 
Hallo!!
Ich habe jetzt folgenden Syntax in Delphi stehen, nur leider kommt immernoch eine Fehlermeldung.

lohn_daten.UDM.IBLohnQuery.Edit;
lohn_daten.UDM.IBLohnQuery.FieldValues['KSTKTR']:= kst;
lohn_daten.UDM.IBLohnQuery.post;

MfG Master

Lemmy 19. Feb 2004 15:24

Re: In InterbaseDB schreiben
 
Zitat:

Zitat von Masterof
lohn_daten.UDM.IBLohnQuery.FieldValues['KSTKTR']:= kst;

So gehts auch nicht, Du musst da mit den Feldvariablen arbeiten:

Rechte Maustaste auf die IBQUery und Feldeditor aufrufen. Dann alle Felder hinzufügen. Nun werden für alle Felder entsprechende Variablen angelegt nach dem Muster

<Name der IBQuery><Name der Spalte>

also

IBLohnQueryKSTKTR


Mit dieser Variable kannst Du jetzt arbeiten:

IBLohnQuery.Edit;
IBLohnQueryKSTKTR.Assign(StringList);
IBLohnQuery.Post;

wobei StringList eine Variable vom Typ TStringList ist in der die Daten des Arrays stehen. Du kannst auch das StringGrid in eine Datei speichern und diese Datei dann mit LoadFromFile in das Blobfeld laden.

Grüße
Lemmy

Masterof 19. Feb 2004 21:14

Re: In InterbaseDB schreiben
 
Hallo!!

Leider hat das nicht funktioniert, da keine UpdateSql-Anweisung vorhanden ist

kst1:=Tstringlist.Create;
kst1.Add(kst);
lohn_daten.UDM.IBLohnQuery.Edit;
lohn_daten.UDM.IBLohnQueryKSTKTR.Assign(KST1);
lohn_daten.UDM.IBLohnQuery.Post;

Wenn ich den Text in die Tstringlist schreibe, bleibt diese leer. Bei der Editanweisung entsteht immer der Fehler der nicht vorhabnenen Updateanweisung.

MfG Master

PS: Ich schreibe das erste mal Daten in eine IB Datenbank zurück.

kiar 19. Feb 2004 21:32

Re: In InterbaseDB schreiben
 
schau hier mal, da solltest du fündig werden

http://www.entwickler-forum.de/webx?...hVq.1@.ee6b9ec

raik


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 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