none
une exeption qui n'est pas trappé par le bloc try catch RRS feed

  • Question

  • Peut être est ce du à une définition du compilateur, mais je ne sais pas laquelle

    je vous donne le source et la trace de l’exception

    le source de l'appel

               SqlCommand ^ cmdDatabase = gcnew SqlCommand(  L"INSERT INTO T_WORK_INFORMATION ( siIdDocument, SiIdSrcLang, siIdTypDoc, siIdStateDocument, vcDocument) VALUES ( @ID, @Lang, @Type, @Stat, @Document)", CInterbaseManager::myConnection);
    	   cmdDatabase->Parameters->Add(L"@ID",  SqlDbType::Int);
    	   cmdDatabase->Parameters["@ID"]->Value = hidNewDocID;
    	   cmdDatabase->Parameters->Add(L"@Lang",  SqlDbType::Int);
    	   cmdDatabase->Parameters["@Lang"]->Value = (int)2;
    	   cmdDatabase->Parameters->Add(L"@Type",  SqlDbType::Int);
    	   cmdDatabase->Parameters["@Type"]->Value = (int) 1;
    	   cmdDatabase->Parameters->Add(L"@Stat",  SqlDbType::Int);
    	   cmdDatabase->Parameters["@Stat"]->Value = (int) 1;
    	   cmdDatabase->Parameters->Add(L"@Document", SqlDbType::VarChar);
    	   cmdDatabase->Parameters["@Document"]->Value =  wsDocument;
    	   CInterbaseManager::StartTransaction( cmdDatabase);
    	   CInterbaseManager::ExecuteRequest( cmdDatabase, &dwNbResultFound);
    	   CInterbaseManager::CommitTransaction();
           iSourceId = iIdDoc;
    et le source du bloc try catch;

    		if( wsRequest != nullptr)
    		{	
    			//la doc dit que ExecuteNonQuery retourne le nombre d'enregistrement qui a changé dans la table, il retourne -1 si la table est vide;
    			*dwNbResultFound = 0;
    			try
    			{
    				Affected = wsRequest->ExecuteNonQuery();
    				*dwNbResultFound = (unsigned long)Affected;
    			}
    			catch( Exception^ ex)
    			{
    				Display( ex);
    			}
    			//OD
    		}

    a l'exécution j'obtiens:

    Une exception de première chance de type 'System.Data.SqlClient.SqlException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.Data.SqlClient.SqlException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.Data.SqlClient.SqlException' s'est produite dans System.Data.dll

    la requête est comme suit:

    INSERT INTO T_WORK_INFORMATION ( siIdDocument, SiIdSrcLang, siIdTypDoc, siIdStateDocument, vcDocument) VALUES ( @ID, @Lang, @Type, @Stat, @Document)

    avec les variables suivante:

    @ID = 1

    @Lang = 2

    @Type = 1

    @Stat = 1

    @Document = "\usr\these\Tailgate\Spx\AlimEtPCLMa18Desambiguîsé.doc"

    :


    Jean Noël Martin



    vendredi 3 avril 2015 15:40

Réponses

  • en changeant le contenu du bloc Catch l'exception est servie

                            try
    			{
    				*dwNbResultFound = 0;
    				Affected = wsRequest->ExecuteNonQuery();
    				*dwNbResultFound = (unsigned long)Affected;
    			}
    			catch( Exception^ ex)
    			{
    				System::String^ ErrorText = ex->Message;
    			}
    			//OD


    Jean Noël Martin


    • Modifié JeanNoel53 samedi 11 avril 2015 16:23
    • Marqué comme réponse JeanNoel53 samedi 11 avril 2015 16:23
    samedi 11 avril 2015 16:22