none
Problème exécution Visual Studio 2012 RRS feed

  • Discussion générale

  • Bonjour,

    J'ai une erreur dans VS2012.

    Le code ci dessous s’exécute sur le poste de mon collègue mais pas sur mon poste :

    Imports System.Data.Odbc

    Public Class Form1

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim cn As OdbcConnection
            Dim reader As OdbcDataReader
            cn = New OdbcConnection("DSN=dsn;UID=user;PWD=mdp;")
            Dim mystring As String = "SELECT MMITNO FROM M3.MITMAS WHERE MMITNO LIKE'YT000%'"
            cn.Open()
            Dim cmd As OdbcCommand = New OdbcCommand()
            With cmd
                .Connection = cn
                .CommandType = CommandType.Text
                .CommandText = mystring
            End With
            reader = cmd.ExecuteReader()
            Dim dt = New DataTable()
            dt.Load(reader)
            cn.Close()

        End Sub
    End Class 

    A l'exécution sur mon poste, j'ai le message d'erreur "L'opération arithmétique a provoqué un dépassement de capacité." au niveau de la ligne dt.Load(reader). Sur le poste de mon collègue exécution sans problème.

    J'ai réinstaller et installer VS2012 deux fois sans corriger le problème.

    Merci beaucoup pour vos réponses.


    • Type modifié Aurel Bera vendredi 4 avril 2014 08:13 disc
    lundi 31 mars 2014 14:33

Toutes les réponses

  • Bonjour,

    Utilisez vous la même base de données avec votre collègue ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    lundi 31 mars 2014 23:38
    Modérateur
  • Bonjour,

    Merci pour votre réponse rapide. J'utilise la même base de données que mon collègue et la même version de VS (2012).

    mardi 1 avril 2014 07:14
  • Bonjour

    Quel BD utilisez-vous?

    A priori, il y a un bogue pour des versions de pilote ODBC pour Oracle :
    http://blogs.msdn.com/b/mariae/archive/2012/07/05/quot-arithmetic-operation-resulted-in-an-overflow-quot-error-running-a-report-that-uses-a-connection-data-source-to-oracle-10.aspx

    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.

    mardi 1 avril 2014 09:04
  • Merci pour votre réponse.

    J'utilise IBM DB2.

    Le plus étrange c'est que j'ai un programme ou le bout du programme fonctionne correctement (c'est un programme que j'ai écrit il y a quelques semaines.

    Le problème s'est manifesté début de cette semaine. J'ai essayé de réinstaller VS mais le résultat est le même.

    Je pense réinitialisé mon PC en config usine.

    mardi 1 avril 2014 09:11
  • Pouvez-vous vérifier que vous utilisez la même version pilotes DB2 sur les deux ordinateurs?
    Aussi, assurez-vous que vous utilisez ODBC32/ODBC64 sur les deux ordinateurs.

    Bien 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.

    mardi 1 avril 2014 09:26
  • Sur mon poste j'utilise ODBC64 et celle de l'autre poste (qui fonctionne) est ODBC32.

    mardi 1 avril 2014 10:59
  • Essayez de forcer l'utilisation de même ODBC.  Essayez aussi de cibler une architecture 32 bits.
    Voir cet article.  

    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.

    mardi 1 avril 2014 11:05
  • J'ai essayé la procédure mais cela n'a rien donnée. Pour être certain, j'ai exécuter le même code sur un PC 64 bit équipé du driver IBM 64 bit et le code fonctionne.

    mardi 1 avril 2014 13:42
  • Vous utilisez la même version iSeries?

    Essayez aussi d’utiliser ODBC Trace pour des détails sur la source d'erreur :
    http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=%2Frzaii%2Frzaiiodbc58.htm


    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.


    mardi 1 avril 2014 13:52
  • Nous utilisons la même version de iSeries
    mardi 1 avril 2014 13:53
  • J'ai réussi à corriger partiellement le problème en compilant pour unité centrale cible x86. Par contre, pour le x64 le problème reste le même.

    mardi 1 avril 2014 16:23
  • Le plus probable il y a un problème avec un pilote pour 64 bits qui est utilisée.

    Cette solution vous convient ?

    Bien 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.

    mercredi 2 avril 2014 08:41
  • Bonjour,

    C'est une solution palliative pour continuer à programmer mais elle ne corrige pas le problème.

    Merci beaucoup pour vos réponses

    mercredi 2 avril 2014 08:56
  • Essayez d’utiliser ODBC Trace pour des détails sur la source d'erreur :
    http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=%2Frzaii%2Frzaiiodbc58.htm 

    Bien 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.


    mercredi 2 avril 2014 08:59
  • Voici ce que donne le traçage de la source ODBC:


    TEST.vshost     2198-9d8 ENTER SQLAllocHandle
      SQLSMALLINT                  1 <SQL_HANDLE_ENV>
      SQLHANDLE           0x0000000000000000
      SQLHANDLE *         0x0000000002601D80

    TEST.vshost     2198-9d8 EXIT  SQLAllocHandle  with return code 0 (SQL_SUCCESS)
      SQLSMALLINT                  1 <SQL_HANDLE_ENV>
      SQLHANDLE           0x0000000000000000
      SQLHANDLE *         0x0000000002601D80 ( 0x000000000064D790)

    TEST.vshost     2198-9d8 ENTER SQLSetEnvAttr
      SQLHENV             0x000000000064D790
      SQLINTEGER                 200 <SQL_ATTR_ODBC_VERSION>
      SQLPOINTER                 3 <SQL_OV_ODBC3>
      SQLINTEGER                  -6

    TEST.vshost     2198-9d8 EXIT  SQLSetEnvAttr  with return code 0 (SQL_SUCCESS)
      SQLHENV             0x000000000064D790
      SQLINTEGER                 200 <SQL_ATTR_ODBC_VERSION>
      SQLPOINTER                 3 <SQL_OV_ODBC3>
      SQLINTEGER                  -6

    TEST.vshost     2198-9d8 ENTER SQLSetEnvAttr
      SQLHENV             0x000000000064D790
      SQLINTEGER                 201 <SQL_ATTR_CONNECTION_POOLING>
      SQLPOINTER                 2 <SQL_CP_ONE_PER_HENV>
      SQLINTEGER                  -6

    TEST.vshost     2198-9d8 EXIT  SQLSetEnvAttr  with return code 0 (SQL_SUCCESS)
      SQLHENV             0x000000000064D790
      SQLINTEGER                 201 <SQL_ATTR_CONNECTION_POOLING>
      SQLPOINTER                 2 <SQL_CP_ONE_PER_HENV>
      SQLINTEGER                  -6

    TEST.vshost     2198-9d8 ENTER SQLAllocHandle
      SQLSMALLINT                  2 <SQL_HANDLE_DBC>
      SQLHANDLE           0x000000000064D790
      SQLHANDLE *         0x0000000002601E28

    TEST.vshost     2198-9d8 EXIT  SQLAllocHandle  with return code 0 (SQL_SUCCESS)
      SQLSMALLINT                  2 <SQL_HANDLE_DBC>
      SQLHANDLE           0x000000000064D790
      SQLHANDLE *         0x0000000002601E28 ( 0x000000000064D860)

    TEST.vshost     2198-9d8 ENTER SQLSetConnectAttrW
      SQLHDBC             0x000000000064D860
      SQLINTEGER                 103 <SQL_ATTR_LOGIN_TIMEOUT>
      SQLPOINTER                15
      SQLINTEGER                  -5

    TEST.vshost     2198-9d8 EXIT  SQLSetConnectAttrW  with return code 0 (SQL_SUCCESS)
      SQLHDBC             0x000000000064D860
      SQLINTEGER                 103 <SQL_ATTR_LOGIN_TIMEOUT>
      SQLPOINTER                15
      SQLINTEGER                  -5

    TEST.vshost     2198-9d8 ENTER SQLDriverConnectW
      HDBC                0x000000000064D860
      HWND                0x0000000000000000
      WCHAR *             0x000007FEEEE78F08 [      -3] "******\ 0"
      SWORD                       -3
      WCHAR *             0x000007FEEEE78F08
      SWORD                       -3
      SWORD *             0x0000000000000000
      UWORD                        0 <SQL_DRIVER_NOPROMPT>

    TEST.vshost     2198-9d8 EXIT  SQLDriverConnectW  with return code 0 (SQL_SUCCESS)
      HDBC                0x000000000064D860
      HWND                0x0000000000000000
      WCHAR *             0x000007FEEEE78F08 [      -3] "******\ 0"
      SWORD                       -3
      WCHAR *             0x000007FEEEE78F08 <Invalid buffer length!> [-3]
      SWORD                       -3
      SWORD *             0x0000000000000000
      UWORD                        0 <SQL_DRIVER_NOPROMPT>

    TEST.vshost     2198-9d8 ENTER SQLAllocHandle
      SQLSMALLINT                  3 <SQL_HANDLE_STMT>
      SQLHANDLE           0x000000000064D860
      SQLHANDLE *         0x000000000262B828

    TEST.vshost     2198-9d8 EXIT  SQLAllocHandle  with return code 0 (SQL_SUCCESS)
      SQLSMALLINT                  3 <SQL_HANDLE_STMT>
      SQLHANDLE           0x000000000064D860
      SQLHANDLE *         0x000000000262B828 ( 0x000000000064F8B0)

    TEST.vshost     2198-9d8 ENTER SQLSetStmtAttrW
      SQLHSTMT            0x000000000064F8B0
      SQLINTEGER                   0 <SQL_ATTR_QUERY_TIMEOUT>
      SQLPOINTER                30
      SQLINTEGER                  -5

    TEST.vshost     2198-9d8 EXIT  SQLSetStmtAttrW  with return code 0 (SQL_SUCCESS)
      SQLHSTMT            0x000000000064F8B0
      SQLINTEGER                   0 <SQL_ATTR_QUERY_TIMEOUT>
      SQLPOINTER                30
      SQLINTEGER                  -5

    TEST.vshost     2198-9d8 ENTER SQLGetInfoW
      HDBC                0x000000000064D860
      UWORD                       77 <SQL_DRIVER_ODBC_VER>
      PTR                 0x000000000262BA60
      SWORD                      100
      SWORD *             0x000000001CBBCFD0

    TEST.vshost     2198-9d8 EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
      HDBC                0x000000000064D860
      UWORD                       77 <SQL_DRIVER_ODBC_VER>
      PTR                 0x000000000262BA60 [      10] "03.51"
      SWORD                      100
      SWORD *             0x000000001CBBCFD0 (10)

    TEST.vshost     2198-9d8 ENTER SQLSetStmtAttrW
      SQLHSTMT            0x000000000064F8B0
      SQLINTEGER                1228 <unknown>
      SQLPOINTER          [Unknown attribute 1228]
      SQLINTEGER                  -5

    TEST.vshost     2198-9d8 EXIT  SQLSetStmtAttrW  with return code -1 (SQL_ERROR)
      SQLHSTMT            0x000000000064F8B0
      SQLINTEGER                1228 <unknown>
      SQLPOINTER          [Unknown attribute 1228]
      SQLINTEGER                  -5

      DIAG [HYC00] [IBM][System i Access ODBC Driver]Driver not capable. (30058)

    TEST.vshost     2198-9d8 ENTER SQLGetDiagFieldW
      SQLSMALLINT                  3
      SQLHANDLE           0x000000000064F8B0
      SQLSMALLINT                  1
      SQLSMALLINT                  4
      SQLPOINTER         0x000000001CBBCEE0
      SQLSMALLINT                 12
      SQLSMALLINT *       0x000000001CBBD040

    TEST.vshost     2198-9d8 EXIT  SQLGetDiagFieldW  with return code 0 (SQL_SUCCESS)
      SQLSMALLINT                  3
      SQLHANDLE           0x000000000064F8B0
      SQLSMALLINT                  1
      SQLSMALLINT                  4
      SQLPOINTER         0x000000001CBBCEE0
      SQLSMALLINT                 12
      SQLSMALLINT *       0x000000001CBBD040 (10)

    TEST.vshost     2198-9d8 ENTER SQLSetStmtAttrW
      SQLHSTMT            0x000000000064F8B0
      SQLINTEGER                1227 <unknown>
      SQLPOINTER          [Unknown attribute 1227]
      SQLINTEGER                  -5

    TEST.vshost     2198-9d8 EXIT  SQLSetStmtAttrW  with return code -1 (SQL_ERROR)
      SQLHSTMT            0x000000000064F8B0
      SQLINTEGER                1227 <unknown>
      SQLPOINTER          [Unknown attribute 1227]
      SQLINTEGER                  -5

      DIAG [HYC00] [IBM][System i Access ODBC Driver]Driver not capable. (30058)

    TEST.vshost     2198-9d8 ENTER SQLGetDiagFieldW
      SQLSMALLINT                  3
      SQLHANDLE           0x000000000064F8B0
      SQLSMALLINT                  1
      SQLSMALLINT                  4
      SQLPOINTER         0x000000001CBBCEE0
      SQLSMALLINT                 12
      SQLSMALLINT *       0x000000001CBBD040

    TEST.vshost     2198-9d8 EXIT  SQLGetDiagFieldW  with return code 0 (SQL_SUCCESS)
      SQLSMALLINT                  3
      SQLHANDLE           0x000000000064F8B0
      SQLSMALLINT                  1
      SQLSMALLINT                  4
      SQLPOINTER         0x000000001CBBCEE0
      SQLSMALLINT                 12
      SQLSMALLINT *       0x000000001CBBD040 (10)

    TEST.vshost     2198-9d8 ENTER SQLExecDirectW
      HSTMT               0x000000000064F8B0
      WCHAR *             0x00000000025FB804 [      -3] "SELECT MMITNO, MMITDS, MMFUDS FROM BDD.MITMAS WHERE MMITNO LIKE 'DA000%'\ 0"
      SDWORD                    -3

    TEST.vshost     2198-9d8 EXIT  SQLExecDirectW  with return code 0 (SQL_SUCCESS)
      HSTMT               0x000000000064F8B0
      WCHAR *             0x00000000025FB804 [      -3] "SELECT MMITNO, MMITDS, MMFUDS FROM BDD.MITMAS WHERE MMITNO LIKE 'DA000%'\ 0"
      SDWORD                    -3

    TEST.vshost     2198-9d8 ENTER SQLRowCount
      HSTMT               0x000000000064F8B0
      SQLLEN *            0x000000001CBBD018

    TEST.vshost     2198-9d8 EXIT  SQLRowCount  with return code 0 (SQL_SUCCESS)
      HSTMT               0x000000000064F8B0
      SQLLEN *            0x000000001CBBD018 (-1)

    TEST.vshost     2198-9d8 ENTER SQLNumResultCols
      HSTMT               0x000000000064F8B0
      SWORD *             0x000000001CBBD078

    TEST.vshost     2198-9d8 EXIT  SQLNumResultCols  with return code 0 (SQL_SUCCESS)
      HSTMT               0x000000000064F8B0
      SWORD *             0x000000001CBBD078 (3)

    TEST.vshost     2198-9d8 ENTER SQLColAttributeW
      SQLHSTMT            0x000000000064F8B0
      SQLSMALLINT                  1
      SQLSMALLINT                  2 <SQL_DESC_CONCISE_TYPE>
      SQLPOINTER         0x000000001B900950
      SQLSMALLINT               4096
      SQLSMALLINT *       0x000000001CBBCBB0
      SQLPOINTER          0x000000001CBBCBA0

    TEST.vshost     2198-9d8 EXIT  SQLColAttributeW  with return code 0 (SQL_SUCCESS)
      SQLHSTMT            0x000000000064F8B0
      SQLSMALLINT                  1
      SQLSMALLINT                  2 <SQL_DESC_CONCISE_TYPE>
      SQLPOINTER         0x000000001B900950
      SQLSMALLINT               4096
      SQLSMALLINT *       0x000000001CBBCBB0 (0)
      SQLPOINTER          0x000000001CBBCBA0 (4294967288) <unknown>

    TEST.vshost     2198-9d8 ENTER SQLMoreResults
      HSTMT               0x000000000064F8B0

    TEST.vshost     2198-9d8 EXIT  SQLMoreResults  with return code 100 (SQL_NO_DATA_FOUND)
      HSTMT               0x000000000064F8B0

    TEST.vshost     2198-9d8 ENTER SQLFreeStmt
      HSTMT               0x000000000064F8B0
      UWORD                        0 <SQL_CLOSE>

    TEST.vshost     2198-9d8 EXIT  SQLFreeStmt  with return code 0 (SQL_SUCCESS)
      HSTMT               0x000000000064F8B0
      UWORD                        0 <SQL_CLOSE>

    TEST.vshost     2198-9d8 ENTER SQLFreeHandle
      SQLSMALLINT                  3 <SQL_HANDLE_STMT>
      SQLHANDLE           0x000000000064F8B0

    TEST.vshost     2198-9d8 EXIT  SQLFreeHandle  with return code 0 (SQL_SUCCESS)
      SQLSMALLINT                  3 <SQL_HANDLE_STMT>
      SQLHANDLE           0x000000000064F8B0

    TEST.vshost     2198-9d8 ENTER SQLDisconnect
      HDBC                0x000000000064D860

    TEST.vshost     2198-9d8 EXIT  SQLDisconnect  with return code 0 (SQL_SUCCESS)
      HDBC                0x000000000064D860

    TEST.vshost     2198-9d8 ENTER SQLFreeHandle
      SQLSMALLINT                  2 <SQL_HANDLE_DBC>
      SQLHANDLE           0x000000000064D860

    TEST.vshost     2198-9d8 EXIT  SQLFreeHandle  with return code 0 (SQL_SUCCESS)
      SQLSMALLINT                  2 <SQL_HANDLE_DBC>
      SQLHANDLE           0x000000000064D860

    TEST.vshost     2198-4f8 ENTER SQLFreeHandle
      SQLSMALLINT                  1 <SQL_HANDLE_ENV>
      SQLHANDLE           0x000000000064D790

    TEST.vshost     2198-4f8 EXIT  SQLFreeHandle  with return code 0 (SQL_SUCCESS)
      SQLSMALLINT                  1 <SQL_HANDLE_ENV>
      SQLHANDLE           0x000000000064D790

    jeudi 3 avril 2014 12:23
  • Re bonjour

    Malheureusement je vois un problème avec le pilote iSeries pour ODBC:

    Voir cet article avec un problème similaire :

    http://knowledgebase.progress.com/articles/Article/iSeries-Access-ODBC-Driver-error-Driver-not-capable-when-running-stored-procedure-on-DB2-400-using-ODBC-DataServer

    J’ai trouvé des références avec le même problème avec ASP.Net sur SE 64 bits, et la solution c’était toujours de passer en 32 bits.

    Essayez de contacter le fournisseur iSeries, peut-être ils ont déjà une solution. 

    De l’autre cote, si vous ciblez 32 bits, votre application vas toujours fonctionner sur un SE 64 bits.

    Bien 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.


    jeudi 3 avril 2014 12:40