Autor Beitrag
Hendrik
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324



BeitragVerfasst: Do 31.01.08 14:28 
Hey!

Wenn ich versuche einen Blob in der Datenbank über

ausblenden Delphi-Quelltext
1:
2:
3:
table.edit;
table.fieldbyname('Feld').asstring:=strinlist.text;
table.post;


zu ändern, bekomme ich folgende Fehlermeldung:
Zitat:

Connection is not defined

invalid BLOB ID

Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.


Was mache ich falsch? Zur Info: Ich benutze Firebird 2.0 mit Zeos 5.5.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Do 31.01.08 18:45 
Blobs besser per Stream in einen Parameter schreiben.

_________________
Markus Kinzler.
Hendrik Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324



BeitragVerfasst: Do 31.01.08 18:50 
Ich konnte das Auftreten jetzt etwas näher eingrenzen:

Er tritt auf beim Ändern eines zweiten Blob-Feldes.
Also beispielsweise funktioniert folgendes:
ausblenden Delphi-Quelltext
1:
2:
3:
table.edit;
table.fieldbyname('blob1').asstring:=strinlist.text;
table.post;


Das kann ich so oft ich will hintereinander machen. Ändere ich nun ein zweites Blob-Feld:

ausblenden Delphi-Quelltext
1:
2:
3:
table.edit;
table.fieldbyname('blob2').asstring:=strinlist.text;
table.post;


Kommt der o.g. Fehler. Schließe und öffne ich die Tabelle vor dem Bearbeiten, klappt es ohne Probleme...
Welche Banalität hab ich übersehen bzw. nicht bedacht?
Hendrik Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324



BeitragVerfasst: Do 31.01.08 19:10 
user profile iconmkinzler hat folgendes geschrieben:
Blobs besser per Stream in einen Parameter schreiben.


Da ich die Felder gerne direkt über ein DBMemo bearbeiten würde, ist das etwas blöd... Muss ich vielleicht bei AfterPost irgendeinen Befehl eingeben?
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Do 31.01.08 19:12 
DBMemo?
Dann nimm dafür doch ein varchar also String-Feld.

Blob ist eigentlich dafür gedacht, echte Daten (Bilder, (verschlüsselte) Dateien, usw) zu speichern.

Und wegen dem AfterPost:
Nö, normal nicht. Einfach Edit -> Neuen Wert rein -> Post, fertig.
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Do 31.01.08 19:47 
user profile iconXentar hat folgendes geschrieben:
..Blob ist eigentlich dafür gedacht, echte Daten (Bilder, (verschlüsselte) Dateien, usw) zu speichern...


Wieso denn das ? :shock: Noch nie was davon gehört, das es da Subtypes (Binary/Text) gibt ? DBMemo ist u.a. gedacht für Text-Blobs.

_________________
Gruß
Hansa
Hendrik Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324



BeitragVerfasst: Do 31.01.08 20:06 
user profile iconXentar hat folgendes geschrieben:
DBMemo?
Dann nimm dafür doch ein varchar also String-Feld.

Blob ist eigentlich dafür gedacht, echte Daten (Bilder, (verschlüsselte) Dateien, usw) zu speichern.


Das hab ich auch schon versucht... Aber dann bräuchte ich 8 32000 Zeichen Varchar Felder und da hat er gemeckert, weil es wohl zu viel ist...
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Do 31.01.08 20:20 
Du brauchst zu den Blobs etwas mehr Infos. Lemmy hat die : www.delphitutorials....lobs-in-ib-fb-2.html

@Lemmy : das da war schwer wiederzufinden. :mahn: :mrgreen:

_________________
Gruß
Hansa
Hendrik Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324



BeitragVerfasst: Do 31.01.08 21:04 
user profile iconhansa hat folgendes geschrieben:
Du brauchst zu den Blobs etwas mehr Infos. Lemmy hat die : www.delphitutorials....lobs-in-ib-fb-2.html


Ja das ist soweit schon klar... Ich habe 80-Byte Typ 1 Blobs in der Tabelle definiert. Aber ich kann pro Tabelle nur max. einen (auch über DBMemo) bearbeiten. Da sollte ich ja noch irgendwas verbockt haben?
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Do 31.01.08 21:29 
user profile iconHendrik hat folgendes geschrieben:
...Da sollte ich ja noch irgendwas verbockt haben?


Nicht unbedingt. Das "nur einen" stört mich im Zusammenhang mit Zeos. Da geht auch "nur eine" Transaction (EDIT :pro Datenbankverbindung). Nicht, dass da irgendwo eine zweite im Spiel ist. :shock: Das stammt allerdings jetzt nicht von mir, sondern von der Glaskugel. 8) Ich würde versuchen, das Problem zu reduzieren und somit die Grenzen ausloten, wenn es sie denn geben sollte.

_________________
Gruß
Hansa
Hendrik Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324



BeitragVerfasst: Do 31.01.08 21:49 
Ja ich kann natürlich mehrere Blobs innerhalb eines Edit --> Post ändern. Aber danach nur noch die, die da drin standen...
Jetzt hab ich es umgangen, indem ich vor jedem Bearbeiten die Table schließe und wieder öffne, aber wirklich "sauber" ist das nicht :(
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Fr 01.02.08 00:31 
user profile iconHendrik hat folgendes geschrieben:
...Jetzt hab ich es umgangen, indem ich vor jedem Bearbeiten die Table schließe und wieder öffne, aber wirklich "sauber" ist das nicht :(


Wenn das geht, dann sind es wohl tatsächlich die Transaction-Einschränkungen bei Zeos. :shock: Bei Freeware-Komponenten kann das passieren.

_________________
Gruß
Hansa