Bonjour,
J'espère ne pas m'être trompé de liste...
Je viens d'installer Turbo C++ explorer, et pour mon développement, j'ai un petit souci : Je n'arrive pas à alimenter un champs blob de mysql à partir d'un TImage de ma fiche.
La chaine de connexion fonctionne parfaitement (ma fiche fonctionne complètement à part cela).
J'ai constaté (et lu) que les champs blob sont passés à odbc sous la forme de champs VarByte, et sont pris par TCPP sous la forme d'un TVarBytesField.
Ce que je n'arrive donc pas à faire : copier mon image dans le champs.
- J'ai essayé en recopiant l'image pixel par pixel, mais j'ai dû faire une erreur, et la proc me parait un peu lourde.
- J'ai essayé de passer par un blobstream, mais c'est incompatible avec le TVarBytesField.
- J'ai essayé avec un MemoryStream, comme suit
mais au moment du SetData, le système me retourne une exception 'Violation d'accès dans le module dbrtl100.bpl, lecture de l'adresse 537b2ba9'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // Expédier l'image à la DB. TMemoryStream *pMS = new TMemoryStream(); short taille = 0; pMS->Write(&taille, sizeof(taille)); Image2->Picture->Bitmap->SaveToStream(pMS); taille = pMS->Size; pMS->Seek(0, soFromBeginning); pMS->Write(&taille, sizeof(taille)); dtTablePrimaireimage->SetData(pMS->Memory, true);
Quelqu'un serait-il succeptible de m'aider à résoudre ce problème s'il vous plait?
D'avance grand merci, ca fait plusieurs jours que je coince sur ce sujet.
Cordialement,
Marc
P.S. Je précise que j'utilise les composants ADO pour l'accès aux données (TADOConnection + TADOTable).
P.S. P.S. Je n'utilise pas SQLConnect, car il semble que la version 5 de mySQL que j'utilise n'est pas supportée (me sort des exceptions et ne me montre jamais les tables dans les listes de choix).![]()
Partager