Accueil > Forum > > > > BLOB, SQL Server et... grosse galère !
BLOB, SQL Server et... grosse galère !
lundi 27 octobre 2003 à 19:15:29 |
BLOB, SQL Server et... grosse galère !

Abgraal
|
Bonjours à tous, Voilà, je suis confronté à un (gros) problème : je dois extraire des images d'une base SQL server (6.5 en + !) La structure de la table qui contient les images est la suivante : image_data1 : image (16) image_data2 : varbinary (255) image_data3 : varbinary (255) image_data4 : varbinary (255) image_data5 : varbinary (255) image_data6 : varbinary (255) image_data7 : varbinary (255) image_data8 : varbinary (255) La valeur d'image_data1 est parfois à null (??) C'est tout ce que j'ai comme info, on m'a refilé le bébé "brut de fonderie..." Quelqu'un sait comment extraire les données de ce type de structure avec VB ?? Je n'y arrive pas :( Merci.
|
|
mardi 28 octobre 2003 à 09:32:34 |
Re : BLOB, SQL Server et... grosse galère !

3Pom
|
Voilà j'espere ke ca pourra t'aider.
Const BLOCK_SIZE = 16384
Public Sub BlobToFile(ByRef Fld As ADODB.Field, _ ByVal FName As String, _ Optional FieldSize As Long = -1, _ Optional Threshold As Long = 1048576) Dim F As Long Dim bData() As Byte Dim sData As String ' Assumes file does not exist ' Data cannot exceed approx. 2Gb in size F = FreeFile Open FName For Binary As #F Select Case Fld.Type Case adLongVarBinary If FieldSize = -1 Then ' blob field is of unknown size WriteFromUnsizedBinary F, Fld Else ' blob field is of known size If FieldSize > Threshold Then ' very large actual data WriteFromBinary F, Fld, FieldSize Else ' smallish actual data bData = Fld.Value Put #F, , bData ' PUT tacks on overhead if use fld.Value End If End If Case adLongVarChar, adLongVarWChar If FieldSize = -1 Then WriteFromUnsizedText F, Fld Else If FieldSize > Threshold Then WriteFromText F, Fld, FieldSize Else sData = Fld.Value Put #F, , sData ' PUT tacks on overhead if use fld.Value End If End If End Select Close #F End Sub
Private Sub WriteFromBinary(ByVal F As Long, _ ByRef Fld As ADODB.Field, _ ByVal FieldSize As Long) Dim Data() As Byte Dim BytesRead As Long
Do While FieldSize <> BytesRead If FieldSize - BytesRead < BLOCK_SIZE Then Data = Fld.GetChunk(FieldSize - BLOCK_SIZE) BytesRead = FieldSize Else Data = Fld.GetChunk(BLOCK_SIZE) BytesRead = BytesRead + BLOCK_SIZE End If Put #F, , Data Loop End Sub
Private Sub WriteFromUnsizedBinary(ByVal F As Long, _ ByRef Fld As ADODB.Field) Dim Data() As Byte Dim Temp As Variant
Do Temp = Fld.GetChunk(BLOCK_SIZE) If IsNull(Temp) Then Exit Do Data = Temp Put #F, , Data Loop While LenB(Temp) = BLOCK_SIZE End Sub
Private Sub WriteFromText(ByVal F As Long, _ ByRef Fld As ADODB.Field, _ ByVal FieldSize As Long) Dim Data As String Dim CharsRead As Long
Do While FieldSize <> CharsRead If FieldSize - CharsRead < BLOCK_SIZE Then Data = Fld.GetChunk(FieldSize - BLOCK_SIZE) CharsRead = FieldSize Else Data = Fld.GetChunk(BLOCK_SIZE) CharsRead = CharsRead + BLOCK_SIZE End If Put #F, , Data Loop End Sub
Private Sub WriteFromUnsizedText(ByVal F As Long, _ ByRef Fld As ADODB.Field) Dim Data As String Dim Temp As Variant
Do Temp = Fld.GetChunk(BLOCK_SIZE) If IsNull(Temp) Then Exit Do Data = Temp Put #F, , Data Loop While Len(Temp) = BLOCK_SIZE End Sub
' Assumes file exists ' Assumes calling routine does the UPDATE ' File cannot exceed approx. 2Gb in size Public Sub FileToBlob(ByVal FName As String, _ ByRef Fld As ADODB.Field, _ Optional Threshold As Long = 1048576) Dim F As Long Dim Data() As Byte Dim FileSize As Long
F = FreeFile Open FName For Binary As #F FileSize = LOF(F) Select Case Fld.Type Case adLongVarBinary If FileSize > Threshold Then ReadToBinary F, Fld, FileSize Else Data = InputB(FileSize, F) Fld.Value = Data End If Case adLongVarChar, adLongVarWChar If FileSize > Threshold Then ReadToText F, Fld, FileSize Else Fld.Value = Input(FileSize, F) End If End Select Close #F End Sub
Private Sub ReadToBinary(ByVal F As Long, _ ByRef Fld As ADODB.Field, _ ByVal FileSize As Long) Dim Data() As Byte Dim BytesRead As Long
Do While FileSize <> BytesRead If FileSize - BytesRead < BLOCK_SIZE Then Data = InputB(FileSize - BytesRead, F) BytesRead = FileSize Else Data = InputB(BLOCK_SIZE, F) BytesRead = BytesRead + BLOCK_SIZE End If Fld.AppendChunk Data Loop End Sub
Private Sub ReadToText(ByVal F As Long, _ ByRef Fld As ADODB.Field, _ ByVal FileSize As Long) Dim Data As String Dim CharsRead As Long
Do While FileSize <> CharsRead If FileSize - CharsRead < BLOCK_SIZE Then Data = Input(FileSize - CharsRead, F) CharsRead = FileSize Else Data = Input(BLOCK_SIZE, F) CharsRead = CharsRead + BLOCK_SIZE End If Fld.AppendChunk Data Loop End Sub
|
|
mardi 28 octobre 2003 à 10:42:09 |
Re : BLOB, SQL Server et... grosse galère !

Abgraal
|
Merci beaucoup mais... Ce code ne prend en compte que le longvarbinary (type 205) et mes champs sont de type varbinary (type 204).
Il ne passe donc pas dans le select case fld.type... Et ne traite donc rien.
Quelqu'un aurait-il déjà extrait du varbinary d'une base SQL Server ?
|
|
vendredi 2 juillet 2004 à 12:38:45 |
Re : BLOB, SQL Server et... grosse galère !

morettob
|
Salut ! J'ais actuellement le meme probleme que toi concernant le traitement de jpg dans une base sql server. Je souhaite stocker des jpg en varbinary ds ma base, si tu as un petit bout de code.....je suis preneur. Thks.
|
|
Cette discussion est classée dans : sql, server, image, blob, varbinary
Répondre à ce message
Sujets en rapport avec ce message
Problème image dans sql server [ par math083 ]
Salut tout le mondeJ'ai encore un petit soucisJ'ai une form avec un contrôle adodc (nommé adodc1) et un formulaire. A un moment je souhaite sauvegarde
Image SQL server sur excel [ par bob10 ]
Bonjour à tous, j'ai une base de données SQL server dans laquelle il y a des champs aux format image. Le truc c'est queje voudrais afficher ces photos
image dans base donne sql server [ par gustar ]
salut je voudrais s'avoir comment on peut inserer des images dans une champs de la base donne sql avec type ?
inserer et selectionner une image avec ADO.NET et sql server [ par juguinfo ]
Salut tout le monde, j'i un pronlème de selection d'une image à partir de la on utilisant le datareader ou le dataset. mais actuellement je prefere de
stocker une image dans une BD SQL_Server [ par spameur_tn1 ]
bonjour je voudrais savoir comment enregistrer une image dans une base de données SQL_Server. autrement comment convertir l'image en format numérique
image texte et son [ par ouidad02 ]
slt tout le monde pour enregestrer une image et un son et un texte sur la base de donnee sql server 2008 chaque image doit affiché avec un texte qui
SQL Server CE Question de fonctionnement [ par LordOfTheShadow ]
Bonjour à tous, J'ai fait une base de données sous SQL Server CE dans Visual Studio (ça correspond à un truc du genre maBase.sdf). Quand je rentre d
Récuperer les instance sql server à partir d'Access 2003/VB6 [ par FNIAMKE ]
Bonsoir Mme/Mr. Je souhaite récupérer les instances de sql server dans une liste/combobox à partir d'Access 2003/VB6. Merci de votre assistance. N
Connexion à distance à sql server 2008 / sql server 2005 [ par koneangel ]
Bonjour à tous En fait, j'ai un souci lorsque je me connecte à mon mon serveur de base de données (Sql server 2005 express ou Sql server 2008 enterpr
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|