Bonjour,
J'ai besoin de vos lumières : je suis en train de migrer un exécutable de SQL Server 2000 vers SQL Server 2008. L'affichage des images ne se fait pas avec SQL Server 2008. La cause : une troncature à droite de la chaine de caractères lorsque je vais chercher les données du BLOB. Le code :
Lors de l'éxecution de la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 CString buffer[2]; query.Format("SELECT CONVERT(BINARY, BLOB_0) AS BLOB_0 FROM CBLOB WHERE IDENT1_0='%s' AND IDENT2_0=''", fp.article); base->ExecuterRequete(query, record); if (!record->IsEOF()) { record->GetFieldValue((short)0, buffer[0]); LoadImage(fp.photo_produit, buffer[0]); record->Close(); } (...) int CBase::ExecuterRequete(CString requete, CRecordset * recordset) { if (this->IsOpen() == 0) { int ret = this->Connecter(); if (ret!=0) return ret; } if (recordset->IsOpen()) recordset->Close(); try { recordset->Open(CRecordset::snapshot, requete); } catch(CDBException* e) { this->Deconnecter(); e->Delete(); return CANNOT_EXECUTE_REQUEST; } if ((recordset->IsEOF()) && (recordset->IsBOF())) return 0; try { recordset->MoveFirst(); } catch(CDBException* e) { this->Deconnecter(); e->Delete(); return CANNOT_EXECUTE_REQUEST; } return 0; }j'ai le message suivant dans le débugger :
Code : Sélectionner tout - Visualiser dans une fenêtre à part record->GetFieldValue((short)0, buffer[0]);
Résultat obtenu : "FFD8FFE000104A4649460001020100"Warning: ODBC Success With Info on field 0.
Troncation à droite de la chaîne de données
State:01004,Native:0,Origin:[Microsoft][SQL Server Native Client 10.0]
Résultat attendu : "FFD8FFE000104A46494600010201006400640000FFED0AF250686F746F73"
Partager