AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi In InterbaseDB schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

In InterbaseDB schreiben

Ein Thema von Masterof · begonnen am 19. Feb 2004 · letzter Beitrag vom 20. Feb 2004
Antwort Antwort
Seite 1 von 2  1 2      
Masterof

Registriert seit: 12. Feb 2004
Ort: Bad Elster
142 Beiträge
 
Delphi 7 Enterprise
 
#1

In InterbaseDB schreiben

  Alt 19. Feb 2004, 11:10
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
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: In InterbaseDB schreiben

  Alt 19. Feb 2004, 11:25
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
  Mit Zitat antworten Zitat
Masterof

Registriert seit: 12. Feb 2004
Ort: Bad Elster
142 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: In InterbaseDB schreiben

  Alt 19. Feb 2004, 11:37
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
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: In InterbaseDB schreiben

  Alt 19. Feb 2004, 12:07
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
  Mit Zitat antworten Zitat
Masterof

Registriert seit: 12. Feb 2004
Ort: Bad Elster
142 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: In InterbaseDB schreiben

  Alt 19. Feb 2004, 12:45
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
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: In InterbaseDB schreiben

  Alt 19. Feb 2004, 14:03
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
  Mit Zitat antworten Zitat
Masterof

Registriert seit: 12. Feb 2004
Ort: Bad Elster
142 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: In InterbaseDB schreiben

  Alt 19. Feb 2004, 14:29
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
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: In InterbaseDB schreiben

  Alt 19. Feb 2004, 15:24
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
  Mit Zitat antworten Zitat
Masterof

Registriert seit: 12. Feb 2004
Ort: Bad Elster
142 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: In InterbaseDB schreiben

  Alt 19. Feb 2004, 21:14
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.
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#10

Re: In InterbaseDB schreiben

  Alt 19. Feb 2004, 21:32
schau hier mal, da solltest du fündig werden

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

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  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 06:50 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