Kizera
Messages postés15Date d'inscriptionvendredi 28 mai 2010StatutMembreDernière intervention15 juin 2011
-
9 juin 2011 à 12:16
Kizera
Messages postés15Date d'inscriptionvendredi 28 mai 2010StatutMembreDernière intervention15 juin 2011
-
10 juin 2011 à 10:54
Bonjour à tous et désolé si je poste au mauvais endroit ! Mais j'ai une erreur que j'aimerais bien corriger assez vite en fait vu que à partir de lundi prochaine je vais devoir faire a fond mon rapport de stage bref.
Voici mon erreur : fatal error C1083: Cannot open type library file: 'C:\Programmes\Common Files\System\ado\msado15.dll': No such file or directory
Et voici mon code :
#include
#include <stdio.h>
#import "C:\Programmes\Common Files\System\ado\msado15.dll" \
no_namespace rename("EOF","ADOEOF")
void main()
{
//initialise les variables
HRESULT hr;
CoInitialize(NULL);
try
{
//declare la connection
_ConnectionPtr connection;
hr = connection.CreateInstance(__uuidof(Connection));
//vérifie si réussite
if (FAILED(hr))
{
throw _com_error(hr);
}
//declare le recordset
_RecordsetPtr recordset;
hr = recordset.CreateInstance(__uuidof(Recordset));
//verifie si reussite
if (FAILED(hr))
{
throw _com_error(hr);
}
//établi la connection
connection->CursorLocation = adUseClient;
connection->Open("DSN=fifa;UID=USER-TEST;PWD=azerty__00;", L"",L"", adConnectUnspecified);
//va chercher les éléments
recordset->Open("SELECT * from TABLE_TEST",
connection.GetInterfacePtr(),
adOpenForwardOnly, adLockReadOnly,
adCmdText);
//les affichent
while(!recordset->ADOEOF)
{
_variant_t var;
var = recordset->Fields->GetItem(L"value")->GetValue();
std::cout << static_cast<char *>(_bstr_t(var.bstrVal))<< std::endl;
recordset->MoveNext();
};
//referme le recordset
recordset->Close();
//détruit la table
}
catch(_com_error &e)
{
std::cout << "planté";
}
catch(...)
{
std::cout << "planté";
};
}
// recordset->Open("DROP TABLE mytable", connection.GetInterfacePtr(),
// adOpenForwardOnly, adLockReadOnly,
// adCmdText);
que j'ai récupérer pas trop loin d'ici. Pour tous ceux qui ont une idée de "Comment je peux réparer cette erreur" je prends tout de suite !! merci à tous ce qui répondront.
Kizera
Messages postés15Date d'inscriptionvendredi 28 mai 2010StatutMembreDernière intervention15 juin 2011 9 juin 2011 à 13:38
ouai ben ouai il le trouve pas c'est bien là mon problème, je suis déjà allez voir le répertoire et il y est déjà. donc voila... help s'il vous plait !
Kizera
Messages postés15Date d'inscriptionvendredi 28 mai 2010StatutMembreDernière intervention15 juin 2011 9 juin 2011 à 14:22
Problème réparée, j'ai juste changé un petit nom dans la chaîne Program Files à la place de Programmes et il trouve tout seul mais en fait maintenant il ne s'exécute pas enfin... lorsque je fais exécuter rien ne se passe. J'aimerais savoir si quelqu'un connais une fonction qui retourne desun type d'erreur comme la fonction : SQLGetDiagRec() via ODBC qui retourne une valeur correspondante à une erreur répertoiré dans le MSDN, même si vous trouvez la section correspondante à ce que je recherche dans le MSDN dites me le s'il vous plait car perso je ne l'est pas trouvé ! à par en C#.... mais bon... je suis en C/C++ là alors voila x)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 9 juin 2011 à 18:57
ADO ne retourne pas de code d'erreur comme le ferait une API normale, les langages interprétés (pour lesquels ADO est fait) ne sauraient pas l'utiliser.
ADO déclenche des exceptions dont il suffit de lire la description.
_com_error &e
lire: e.Description()
ciao...
BruNews, MVP VC++
Vous n’avez pas trouvé la réponse que vous recherchez ?