Meilleur auteur de réponses
La connexion a la BDD

Question
-
ou puis je trouver de l'aide sur cet outil? et plus généralement sur SQL Server
ma priorité aujourd'hui est de réaliser un connect à partir de VisualStudio C++
Jean Noël Martin
- Déplacé Aurel BeraModerator vendredi 28 février 2014 14:13 On Topic
- Modifié JeanNoel53 vendredi 28 février 2014 15:29
Réponses
-
il fallait reprendre la chaine comme suit;
SqlConnection^ myConnection = gcnew SqlConnection(); myConnection->ConnectionString = "Integrated Security=true;User Instance=true;AttachDbFilename=C:\\Program Files\\Microsoft SQL Server\\MSSQL10.SQLEXPRESS\\MSSQL\\DATA\\COHERENCE.mdf;database=COHERENCE;server=ALLIANCE-EA8F7A\\SQLEXPRESS"; myConnection->Open(); myCommand = myConnection->CreateCommand();
Jean Noël Martin
- Marqué comme réponse JeanNoel53 mardi 8 avril 2014 09:07
Toutes les réponses
-
Bonjour
On a déplacé votre thread vers le forum dédiée SQL.
F1 c'est la touché d'aide.
Ici vous avez quelques exemples :
http://www.codeproject.com/Questions/341111/How-to-connect-SQL-Server-to-Cplus-Program
Mais code managée ou non managée ?
Coirdialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. -
J'ai utilisé la solution numero2 du lien
et j'ai des erreurs de compilation qui proviennent de??? C'est une implémentation managé.mais ???
je vous met le code; ainsi que les déclarations des includes et le message d'erreur:
D'abord la déclaration extraite des includes
en deux temps
typedef INT64 SQLLEN; #define SQLLEN SQLINTEGER typedef SQLINTEGER SQLHANDLE;
D'abbord les instructions qui définissent SQLHANDLE puis la déclaration de la primitiveSQLRETURN SQL_API SQLAllocHandleStd( SQLSMALLINT fHandleType, SQLHANDLE hInput, __out SQLHANDLE *phOutput);
la déclaration des données dans mon implémentation
namespace SpecificationChecker { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; using namespace System::IO; ref class CInterbaseManagerM { private: static SQLHANDLE sqlenvhandle; static SQLHANDLE sqlconnectionhandle; static SQLHANDLE sqlstatementhandle; static SQLRETURN retcode; public: CInterbaseManagerM::CInterbaseManagerM(); CInterbaseManagerM::~CInterbaseManagerM(); static void CInterbaseManagerM::edit( char* final_err_buff); static erc CInterbaseManagerM::ConnectServer(std::wstring wsUserName, std::wstring wsPassword, std::wstring wsHost); static List<ElementSemanticM^>^ CInterbaseManagerM::ExecuteSelectRequestAndReadElement(std::wstring wsRequest, unsigned long* dwNbResultFound); static List<ElementLinksM^>^ CInterbaseManagerM::ExecuteSelectAndLinkRequest( std::wstring wsRequest, ElementSemanticM^ pEnreg, unsigned long &dwNbResultFound); static erc CInterbaseManagerM::GetWideString(short shIndexField, std::wstring & wsStringValue); static List<ElementWork^>^ CInterbaseManagerM::ExecuteSelectRequestAndReadWork(std::wstring wsRequest, unsigned long* dwNbResultFound); }; };
puis le code issus de l'exemple 2if( ErrorCode == INIT_NO_ERROR || ErrorCode == 1) { if(SQL_SUCCESS!=SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlenvhandle)) break;
et enfin le message du compilateur
1>..\..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(164): error C2664: 'SQLAllocHandle' : impossible de convertir le paramètre 3 de 'cli::interior_ptr<Type>' en 'SQLHANDLE *' 1> with 1> [ 1> Type=SQLHANDLE 1> ] 1> Impossible de convertir un type managé en type non managé
Je ne vois pas à quoi le compilateur fait référence en marquant cli::interior_ptr<T>?
Jean Noël Martin
- Modifié JeanNoel53 samedi 1 mars 2014 13:40
-
Les problèmes de compilation sont solubles sous deux modifications: on est passé par des pointeurs dans les déclarations
namespace SpecificationChecker { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; using namespace System::IO; ref class CInterbaseManagerM { private: static SQLHANDLE* sqlenvhandle; static SQLHANDLE* sqlconnectionhandle; static SQLHANDLE* sqlstatementhandle; static SQLRETURN retcode; public: CInterbaseManagerM::CInterbaseManagerM(); CInterbaseManagerM::~CInterbaseManagerM(); static void CInterbaseManagerM::edit( char* final_err_buff); static erc CInterbaseManagerM::ConnectServer(std::wstring wsUserName, std::wstring wsPassword, std::wstring wsHost); static List<ElementSemanticM^>^ CInterbaseManagerM::ExecuteSelectRequestAndReadElement(std::wstring wsRequest, unsigned long* dwNbResultFound); static List<ElementLinksM^>^ CInterbaseManagerM::ExecuteSelectAndLinkRequest( std::wstring wsRequest, ElementSemanticM^ pEnreg, unsigned long &dwNbResultFound); static erc CInterbaseManagerM::GetWideString(short shIndexField, std::wstring & wsStringValue); static List<ElementWork^>^ CInterbaseManagerM::ExecuteSelectRequestAndReadWork(std::wstring wsRequest, unsigned long* dwNbResultFound); }; };
et on a changer quelques types dans le code
if( ErrorCode == INIT_NO_ERROR || ErrorCode == 1) { if(SQL_SUCCESS!=SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, sqlenvhandle)) ; if(SQL_SUCCESS!=SQLSetEnvAttr(sqlenvhandle,SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0)) ; if(SQL_SUCCESS!=SQLAllocHandle(SQL_HANDLE_DBC, sqlenvhandle, sqlconnectionhandle)) ; SQLWCHAR retconstring[1024]; switch(SQLDriverConnect (sqlconnectionhandle, NULL, (SQLWCHAR*)L"DRIVER={SQL Server};SERVER=localhost, 1433;DATABASE=COHERENCE;UID=sa;PWD=Admin-123;", SQL_NTS, retconstring, 1024, NULL,SQL_DRIVER_NOPROMPT)) { case SQL_SUCCESS_WITH_INFO: show_error(SQL_HANDLE_DBC, (const SQLHANDLE*)sqlconnectionhandle); break; case SQL_INVALID_HANDLE: case SQL_ERROR: show_error(SQL_HANDLE_DBC, (const SQLHANDLE*)sqlconnectionhandle); retcode = -1; break; default: break; } if(retcode == -1) ; if(SQL_SUCCESS!=SQLAllocHandle(SQL_HANDLE_STMT, sqlconnectionhandle, sqlstatementhandle)) ; }
moyennant quoi le code compile
Mais il reste une difficulté au link:
1>InterbaseManagerM.obj : error LNK2019: symbole externe non résolu "extern "C" short __stdcall SQLGetDiagRecW(short,void *,short,wchar_t *,long *,wchar_t *,short,short *)" (?SQLGetDiagRecW@@$$J232YGFFPAXFPA_WPAJ1FPAF@Z) référencé dans la fonction "void __cdecl SpecificationChecker::show_error(unsigned int,void * const *)" (?show_error@SpecificationChecker@@$$FYAXIPBQAX@Z) 1>InterbaseManagerM.obj : error LNK2019: symbole externe non résolu "extern "C" short __stdcall SQLDriverConnectW(void *,struct HWND__ *,wchar_t *,short,wchar_t *,short,short *,unsigned short)" (?SQLDriverConnectW@@$$J232YGFPAXPAUHWND__@@PA_WF2FPAFG@Z) référencé dans la fonction "public: static unsigned __int64 __clrcall SpecificationChecker::CInterbaseManagerM::ConnectServer(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >)" (?ConnectServer@CInterbaseManagerM@SpecificationChecker@@$$FSM_KV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@00@Z) 1>InterbaseManagerM.obj : error LNK2019: symbole externe non résolu "extern "C" short __stdcall SQLSetEnvAttr(void *,long,void *,long)" (?SQLSetEnvAttr@@$$J216YGFPAXJ0J@Z) référencé dans la fonction "public: static unsigned __int64 __clrcall SpecificationChecker::CInterbaseManagerM::ConnectServer(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >)" (?ConnectServer@CInterbaseManagerM@SpecificationChecker@@$$FSM_KV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@00@Z) 1>InterbaseManagerM.obj : error LNK2019: symbole externe non résolu "extern "C" short __stdcall SQLAllocHandle(short,void *,void * *)" (?SQLAllocHandle@@$$J212YGFFPAXPAPAX@Z) référencé dans la fonction "public: static unsigned __int64 __clrcall SpecificationChecker::CInterbaseManagerM::ConnectServer(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >)" (?ConnectServer@CInterbaseManagerM@SpecificationChecker@@$$FSM_KV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@00@Z)
il semble qu'il y ait un assembly qui manque: lequel. Je suppose microsoft.sqlserver.types, mais je ne le trouve pas.
If not, you can locate the assembly manually - it's located in /Program Files/Microsoft SQL Server/100/SDK/Assemblies/Microsoft.SqlServer.Types.dll
Mais cet include ne suffit pas? quel est la dll qui implémente les symboles non résolus? J'ai essayé tous celles qui étaient dans le SDK sans succès.
Jean Noël Martin
- Marqué comme réponse JeanNoel53 dimanche 2 mars 2014 19:04
- Non marqué comme réponse JeanNoel53 dimanche 2 mars 2014 19:42
- Modifié JeanNoel53 lundi 3 mars 2014 08:21
-
Bonjour
Vous devez ajouter odbc32.lib comme c’est écrit ici : http://msdn.microsoft.com/fr-fr/library/ba1z7822.aspx
Mais je dirais que ce n'est pas le cas d’utiliser ODBC. Je dirais que la solution 4 s'applique mieux pour vous. ODBC c'est un pilote intermédiaire qui nécessite une configuration supplémentaire.
Cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Modifié Aurel BeraModerator lundi 3 mars 2014 08:56
-
Merci
mais je n'ai pas sur mon computer de repertoire C:\Program Files\Common Files
mais j'ai C:\Program Files\Fichiers Communs
Je teste la solution 4 et je reviens: J'ai toujours un manquant: SQLGetDiagRecW qui est résolue par odbc32.lib
Jean Noël Martin
- Modifié JeanNoel53 lundi 3 mars 2014 18:21
-
Bonjour
Pour récupérer le répertoire, dans l'invite de commande vous écrivez :
set CommonProgramFiles
Qu'est qu'il retourne?
Cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Modifié Aurel BeraModerator lundi 3 mars 2014 09:56
-
Le fichier odbc32.lib était la bonne réponse.
Je teste et je reviens.
Le programme link mais ne démarre pas il donne mais à l'exécution je tombe sur une exception DebugAssertionFailed sur la donnée _crtIsValidHeapPointer(pUserData);
Jean Noël Martin
- Modifié JeanNoel53 lundi 3 mars 2014 18:23
-
Bonjour
On doit voir le code pour avancer.
Aucune référence jusqu’a présent sur pDatata ou crtIsValidHeapPointer.Cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.
- Modifié Aurel BeraModerator mardi 4 mars 2014 14:10
-
Oui, mais quel parti du code. L'exception se produit dans une partie du code de microsoft avant de rentrer dans le code applicatif. Je suppose qu'on est dans le code du chargeur. Le projet est dans l'état actuel une structure d’accueil avec très peu de code applicatif. J'ai modifié le projet pour supprimer toute mention à IBPP, et ça a déplacé le problème toujours dans le chargeur dans une méthode non disponible de nom ntdll.dll!KiFastSystemCallRet(). Ce fait apparait quand on charge le fichier InterbaeManagerM Qui inclus le code du connect. je vous le met en pièce incluse Le h ;d'abord:
/******************************************************************************* * NOM: * ROLE: * HISTORIQUE: * 05/05/2001, xxx, initial version *******************************************************************************/ #ifndef INTERBASEMANAGERM_H #define INTERBASEMANAGERM_H /*_____INCLUDE-FILES__________________________________________________________*/ /*_____GLOBAL-DEFINE__________________________________________________________*/ /*_____GLOBAL-TYPES___________________________________________________________*/ namespace SpecificationChecker { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; using namespace System::IO; ref class CInterbaseManagerM { private: public: CInterbaseManagerM::CInterbaseManagerM(); CInterbaseManagerM::~CInterbaseManagerM(); static void CInterbaseManagerM::edit( char* final_err_buff); static erc CInterbaseManagerM::ConnectServer(std::wstring wsUserName, std::wstring wsPassword, std::wstring wsHost); static List<ElementSemanticM^>^ CInterbaseManagerM::ExecuteSelectRequestAndReadElement(std::wstring wsRequest, unsigned long* dwNbResultFound); static List<ElementLinksM^>^ CInterbaseManagerM::ExecuteSelectAndLinkRequest( std::wstring wsRequest, ElementSemanticM^ pEnreg, unsigned long &dwNbResultFound); static erc CInterbaseManagerM::GetWideString(short shIndexField, std::wstring & wsStringValue); static List<ElementWork^>^ CInterbaseManagerM::ExecuteSelectRequestAndReadWork(std::wstring wsRequest, unsigned long* dwNbResultFound); }; }; #endif
le C+= ensuite:
/*------------------------------------------------------------------------------------------------*/ /* Global conception : 06-13-2003 ; 10:44:49 */ /* Specification : 23-05-2003 ; 16:33:41 */ /* ALITEC */ /* Rue Leonard de vinci */ /* 53061 LAVAL CEDEX 09 */ /* (c) Copyright ALITEC */ /*------------------------------------------------------------------------------------------------*/ /******************************************************************************* * NOM: * ROLE: * HISTORIQUE: * 05/05/2001, xxx, initial version *******************************************************************************/ #pragma managed /*_____INCLUDE-FILES__________________________________________________________*/ #include "StdAfx.h" #include "AlignStructure.h" #include "Macro.h" #include "Message.h" #include "Enumerations.hpp" #include "EnumerationM.hpp" #include "StructureM.h" #include "TypeDefs.hpp" #include "TypeDefsM.hpp" #include "POSM.h" #include "ClasseAlignerManaged.hpp" #include "Database.h" #include "StrConv.h" #include "InterbaseManagerM.hpp" /*_____LOCAL-DEFINE___________________________________________________________*/ #define longueur 1024 /*_____LOCAL-TYPES____________________________________________________________*/ /*_____GLOBAL-DATA____________________________________________________________*/ char* sDest; bool m_bServerConnected; static char final_err_buff[2048]; static char * p1; static char * p2; static char * p3; static char * p4; static char * p5; static char * p6; static char * p7; static char * p8; static char * p9; static char* p10; #import "C:\Program Files\Fichiers Communs\System\ADO\msado15.dll" \ no_namespace rename("EOF", "EndOfFile") namespace SpecificationChecker { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; using namespace System::IO; using namespace System::Runtime::InteropServices; using namespace msclr::interop; // /*------------------------------------------------------------------------------------------------*/ /*Name Constructeur */ /*Role */ /*Interface */ /*In None */ /*In/Out None */ /*Result None */ /*Constraints None */ /*Resources */ /*PreCondition */ /*------------------------------------------------------------------------------------------------*/ // CInterbaseManagerM::CInterbaseManagerM() { ; }; // /*------------------------------------------------------------------------------------------------*/ /*Name Destructeur */ /*Role */ /*Interface */ /*In None */ /*In/Out None */ /*Result None */ /*Constraints None */ /*Resources */ /*PreCondition */ /*------------------------------------------------------------------------------------------------*/ // CInterbaseManagerM::~CInterbaseManagerM() { ; }; // void show_error(unsigned int handletype, const SQLHANDLE* handle) { wchar_t sqlstate[1024]; wchar_t message[1024]; if(SQL_SUCCESS == SQLGetDiagRec(handletype, *handle, 1, sqlstate, NULL, message, 1024, NULL)) { char* ErrorMessage; ErrorMessage = objStrConv.awcstombs( (wchar_t*)message); strcpy_s( final_err_buff, 2048, ErrorMessage); objStrConv.StrFreeA( ErrorMessage); CInterbaseManagerM::edit( final_err_buff); } }; /*------------------------------------------------------------------------------------------------*/ /*Name ConnectServer */ /*Role Initialize member variables with the parameters */ /*Interface */ /*In UserName, Password, Host */ /*In/Out None */ /*Result Error code */ /*Constraints None */ /*Resources */ /*PreCondition */ /*------------------------------------------------------------------------------------------------*/ //PROC ConnectServer(In : UserName, Password, Host // Result : Error code) erc CInterbaseManagerM::ConnectServer(std::wstring wsUserName, std::wstring wsPassword, std::wstring wsHost) { //DATA // enum enDisconnectServerError { ERROR_TSQLQUERY_POINTER_NOT_NULL = 1, ERROR_TSQLCONNECTION_POINTER_NOT_NULL, ERROR_SERVER_CONNECTED, ERROR_CONNECTION_COMPONENTS_CREATION, }; char* aTemp; bool bIsConnected; char sUserName[256]; char sPassword[256]; char sDatabasePath[256]; char sServerName[256]; size_t len; errno_t error; HRESULT hr = S_OK; erc ErrorCode = INIT_NO_ERROR; //ATAD //DO // [Create the TSQLConnection object "m_pTSQLConnection"] // [Create the TSQLQuery object "m_pTSQLQuery"] len = strlen( "LocalHost"); strcpy_s( sServerName, len + 1, "LocalHost"); sServerName[len] = 0; // [Set the value of UserName ("m_pTSQLConnection") with "UserName"] len = wcslen( wsUserName.c_str()); aTemp = objStrConv.awcstombs( (wchar_t* ) wsUserName.c_str()); len = strlen( aTemp); error = strcpy_s( (char*)sUserName, len + 1, aTemp); sUserName[len] = 0; objStrConv.StrFreeA( aTemp); // [Set the value of Password ("m_pTSQLConnection") with "Password"] len = wcslen( wsPassword.c_str()); aTemp = objStrConv.awcstombs( (wchar_t* ) wsPassword.c_str()); len = strlen( aTemp); error = strcpy_s( (char*)sPassword, len + 1, aTemp); sPassword[len] = 0; objStrConv.StrFreeA( aTemp); // [Set the value of HostName ("m_pTSQLConnection") with "Host"] len = wcslen( wsHost.c_str()); aTemp = objStrConv.awcstombs( (wchar_t* ) wsHost.c_str()); len = strlen( aTemp); error = strcpy_s( (char*)sDatabasePath, len + 1, aTemp); sDatabasePath[len] = 0; objStrConv.StrFreeA( aTemp); // [Affect "m_pTSQLConnection" to "m_pTSQLQuery"] // [Set "m_bServerConnected" at true] // ErrorCode = CoInitialize(NULL); if( ErrorCode == INIT_NO_ERROR || ErrorCode == 1) { CoInitialize(NULL); // Define string variables. _bstr_t strCnn("Provider=SQLOLEDB.1;Persist Security Info=False;UserID=username;Password=passwd;Initial Catalog=database;Data Source=(local);Integrated Security=SSPI;"); _RecordsetPtr pRstAuthors = NULL; // Call Create instance to instantiate the Record set hr = pRstAuthors.CreateInstance(__uuidof(Recordset)); if(FAILED(hr)) { printf("Failed creating record set instance\n"); return 0; } } else bIsConnected = false; ErrorCode = INIT_NO_ERROR; m_bServerConnected = true; return(ErrorCode); //OD }
Jean Noël Martin
- Modifié JeanNoel53 mercredi 5 mars 2014 08:22
-
Maintenant c'est plus clair.
Voir la réponse dans ce thread:http://social.msdn.microsoft.com/Forums/vstudio/en-US/d3e57864-9779-4937-9438-fb871bea27f0/debug-assertion-failed-crtisvalidheappointer-puserdata-?forum=vclanguage
Cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. -
C'est précisément l'instruction
_bstr_t strCnn("Provider=SQLOLEDB.1;Persist Security Info=False;UserID=username;Password=passwd;Initial Catalog=database;Data Source=(local);Integrated Security=SSPI;");
qui provoque l'erreur. Je regarde le thread que vous avez indiqué, mais je ne vois pas au premier coup d' œil ce que je peut en tirer. je jette un coup d’œil plus conséquent. Le thread que vous me proposez tient a l'erreur résolue en sortant all_in_one de IBPP. Pas à celle actuelle Je vous donne le log de l'exécution pour documentation:
Exception de première chance à 0x7c812fd3 (kernel32.dll) dans SpecificationChecker.exe : Exception Microsoft C++ : [rethrow] à l'emplacement mémoire 0x00000000.. Une exception non gérée du type 'System.TypeInitializationException' s'est produite dans Module inconnu. Informations supplémentaires : Une exception a été levée par l'initialiseur de type pour '<Module>'.
Jean Noël Martin
- Modifié JeanNoel53 vendredi 21 mars 2014 06:41
-
J'ai trouvé une méthode plus simple pour le connect ci après.
La base de données est installée sur mon ordinateur, par la procédure de miscosoft. je vous donne le code
SqlConnection^ myConnection = gcnew SqlConnection(); myConnection->ConnectionString = "Persist Security Info=False;Integrated Security=SSPI;database=COHERENCE;server=SQLServer"; myConnection->Open();
il faut retravailler la configuration de la BDD et la ligne de ConnectionString car le status de l'exécution provoque une erreur:
Une exception non gérée du type 'System.Data.SqlClient.SqlException' s'est produite dans System.Data.dll Informations supplémentaires : Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (provider: Named Pipes Provider, error: 40 - Impossible d'ouvrir une connexion à SQL Server)
J'ai essayé avec la ligne de commande "Persist Security Info=False;Integrated Security=SSPI;database=COHERENCE;server=.\SQLExpress";
et également avec "Persist Security Info=False;Integrated Security=SSPI;AttachDbFilename=C:\\Program Files\\Microsoft SQL Server\MSSQL10SQLEXPRESS\\DATA\COHERENCE.mdf;database=COHERENCE;server=.\SQLExpress";
mais ça n'a rien changé.
De plus: J'ai deux outils pour accéder à la base:
Microsoft Visual Studio 2008 avec lequel je ne peux pas me connecter à SQLServer: il affiche: impossible d'établir une connexion: vérifier que le serveur fonctionne.
J'ai essayé .\SQLServer, .\SQLServr, .\SQLExpess, LocalHost, SQLServer, SQLExpress sans succès Que faut il mettre dans le champ serveur? Je retiens provisoirement que SQLExpress prend plus longtemps pour répondre que la connexion a échouée.
J'ai séléctioné SQLServeur 2008 dans le Choix de Visual Studio
Dans le dernier essai avec .\SQLExpress le message d'erreur à changé: il est : impossible d'établir une connexion avec le redirecteur. Vérifiez que le service " SQL Browser" est en cours d’exécution.
Microsoft SQL Management Studio, avec lequel je me connecte sans difficulté à la base.
Une première étape serait donc d'obtenir une connexion avec Visual Studio.Quelqu'un peut il m'aider sur les actions a faire?
Jean Noël Martin
- Modifié JeanNoel53 vendredi 21 mars 2014 10:11
-
il fallait reprendre la chaine comme suit;
SqlConnection^ myConnection = gcnew SqlConnection(); myConnection->ConnectionString = "Integrated Security=true;User Instance=true;AttachDbFilename=C:\\Program Files\\Microsoft SQL Server\\MSSQL10.SQLEXPRESS\\MSSQL\\DATA\\COHERENCE.mdf;database=COHERENCE;server=ALLIANCE-EA8F7A\\SQLEXPRESS"; myConnection->Open(); myCommand = myConnection->CreateCommand();
Jean Noël Martin
- Marqué comme réponse JeanNoel53 mardi 8 avril 2014 09:07