Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi BLOB Feld kopieren (https://www.delphipraxis.net/10174-blob-feld-kopieren.html)

marcus 13. Okt 2003 07:21


BLOB Feld kopieren
 
Hallo zusammen!

Ich versuche mehrere Tabellen einer Paradox-Datenbank in eine MySQL-Datenbank zu kopieren. Daß funktioniert soweit auch ganz gut, einzig die BLOB-Felder machen noch Probleme. Ich habe mal etwas rumprobiert, jedoch weiß ich keine Möglichkeit wie ich das anstellen soll.
Es gibt ja eine Funktion "CreateBlobStream" und es existiert ja auch ein Delphi-Beispiel dazu. Ich habe das auch mal verwendet, aber ich habe weder eine Fehlermeldung erhalten noch hat es funktioniert. Ich bin mir auch nicht ganz sicher welche dbExpress Komponenten ich benötige. Bisher habe ich nur eine SQLConnection einen Datasource und eine Table Komponente benötigt.


Gruß Marcus

marcus 13. Okt 2003 12:53

Re: BLOB Feld kopieren
 
Mittlerweile bekomme ich wenigstens schon mal eine Fehlermeldung. Und zwar
"Eine Datenmenge die nur zum lesen ist, kann nicht geändert werden".
Jedoch ist meines wissens read-only auf false gesetzt.

Hier mal der Source-code:

P.S. Ich weiß die Fehlerbehandlung fehlt hier noch

Delphi-Quellcode:
    SQLConnection.Connected := TRUE;
    SQLTable1.Open;
    SQLTable1.Edit;

    MainTable.TableName := 'ProjRem.db';
    MainTable.Active := TRUE;

    Stream1 := MainTable.CreateBlobStream(MainTable.FieldByName('Remarks'),bmRead);
    Stream2 := SQLTable1.CreateBlobStream(SQlTable1.FieldByName('Remarks'),bmWrite);

    Stream2.CopyFrom(Stream1,Stream1.Size);

    SQLTable1.Post;

    Stream1.Free;
    Stream2.Free;

Honie 13. Okt 2003 13:27

Re: BLOB Feld kopieren
 
Sieht so aus, als wenn die SQLTable keine aktualisierbare Datenmenge repräsentiert oder
Du keine Schreibberechtigung für die Table hast.

Wie sieht denn die Datenmenge aus und was für ein Table Objekt benutzt du?

marcus 13. Okt 2003 13:56

Re: BLOB Feld kopieren
 
Also die source-datenmenge besteht nur aus einer Tabelle mit zwei Feldern. Ein Feld mit einer ID und eben das BLOB-Feld. In dem BLOB-Feld sind Anmerkungen und Hinweise zu dem jeweiligen Projekt abgespeichert.

Meinst du mit Table Objekt die jeweilig Komponente?
Aus der Kategorie DB-Express eine SQL-Connection und eine SQL-Table.

Schreibrechte habe ich auf die Tabelle, denn wenn ich mich mit den Daten aus der SQL-Connection über ein My-SQL-Front-Tool einlogge kann ich die BLOB-Felder in der entsprechenden Tabelle editieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz