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 :
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;
}
Lors de l'éxecution de la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
record->GetFieldValue((short)0, buffer[0]);
j'ai le message suivant dans le débugger :
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 obtenu : "FFD8FFE000104A4649460001020100"
Résultat attendu : "FFD8FFE000104A46494600010201006400640000FFED0AF250686F746F73"