Autor Beitrag
tartare
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 89

Win XP SP2, WIN Vista Home Professional
Delphi 7/2009, C#, C++(VS 2005 Express)
BeitragVerfasst: Do 29.01.09 18:59 
Hallo, ich versuche schon seit ewigkeiten ein Integerarray in einen Blobstream zu lesen und in einer MyBase-Datenbank zu speichern, hier der Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
//userdb ist das TClientdataSet um die Daten zu speichern...
procedure TForm1.Start;
var i, j: Integer;
  aInt: array of Integer;
  blobF: TBlobField;
  bs: TStream;
begin
  //....Aint wird gefüllt
    userdb.Append;
    blobF := userdb.FieldByName('ints'as TBlobField;
    bs := userdb.CreateBlobStream(blobF, bmWrite);
    for j := 0 to Length(aint) - 1 do
    begin
      try
        bs.Write(aint[j], SizeOf(aInt[j])); // Hier die Exception EInvalidPointer sobald j > 0 wird. also einmal schreiben geht, aber ein zweites mal nicht...
      finally
        bs.Free;
      end;
    end;
    userdb.Post;
  userdb.Savetofile;
end;


Also Aint sezte ich mehrmals auf verschiedene Längen, und beim debuggen sehe ich auch, dass die werte richtig im array drin sind, doch sobald in einem Schleifendurchlauf mehr als einmal bs.write ausgeführt wird gibts eben den Fehler "ungültige Zeigeroperation". Ist aus diesem Code ersichtlich warum? Andere Daten, wie Strings und Integer kann ich wunderbar in der Datenbank speichern aber dieser Stream bleibt Hartnäckig...
Danke im Vorraus

mfg tartare

_________________
Ich leb in meiner eigenen Welt, aber das is ok, da kennt man mich.
tartare Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 89

Win XP SP2, WIN Vista Home Professional
Delphi 7/2009, C#, C++(VS 2005 Express)
BeitragVerfasst: Do 29.01.09 19:34 
Fragen wir mal anders, weil mir noch niemand bei MyBase helfen konnte und ich im Internet noch nichts gefunden hab, was mir helfen könnte. Kennt jemand eine gute Hilfe, am besten gratis, die sich mit dem Speichern von Arrays oder Listen in Memo- oder Blobfeldern mit dem TClientDataSet beschäftigen? Wäre echt Dankbar, denn ich bin langsam am Verzweifeln...Ist es Möglich eine TObjectList in einem Blob zu speichern? Wenn ja, wie?

Danke im Vorraus...

mfg tartare

_________________
Ich leb in meiner eigenen Welt, aber das is ok, da kennt man mich.