none
como usar o SET ARITHABORT ON no vb6 RRS feed

  • Pergunta

  • Boa tarde Pessoal,

    Precisei usar alguns comando para concatenar alguns registros em uma consulta...

    Até ai tudo bem, fiz dessa forma e funcionou:

    SET ARITHABORT ON; 
    
    SELECT COALESCE((SELECT CAST(FABRICANTE AS VARCHAR(10)) + '/' + CAST(MODELO AS VARCHAR(10)) + '/'  + CAST(ANO AS VARCHAR(10))  AS [text()] FROM OS_recapadora AS O WHERE O.COD_OS = C.COD_OS ORDER BY COD_OS FOR XML PATH(''), TYPE).value('.[1]', 'VARCHAR(MAX)'), '') AS Produtos
    FROM  OS_recapadora  AS C GROUP BY COD_OS;
    

    Porem, porem preciso usar isso no VB6.... nunca usei o comando "SET ARITHABORT ON" no vb6.. então quando digito no vb6 "SET ARITHABORT ON" fica vermelho como se fosse um comando errado.

    domingo, 3 de janeiro de 2021 19:40

Todas as Respostas

  • WebierOnLine,


        Respondendo rapidamente... Acho que é só colocar mais uma "vírgula"... Exemplo:

    SELECT
           col1, col2
               ,SESSIONPROPERTY ('ARITHABORT') AS ARITHABORT
               ,SESSIONPROPERTY ('ANSI_WARNINGS') AS ANSI_WARNINGS
           FROM ...

       Veja também:

    ================================================
    Resolving an ADO timeout issue in VB6

    https://stackoverrun.com/es/q/1022155
    ================================================
    Should i set ARITHABORT ON in all SELECT queries in an application

    https://stackoverflow.com/questions/44721972/should-i-set-arithabort-on-in-all-select-queries-in-an-application
    ================================================
    VB .NET - Tratando com instâncias do SQL Server, Banco de dados e Tabelas

    http://www.macoratti.net/13/01/vbn_sql2.htm
    ================================================


    []'s,
    Fabio I.

    P.S.: Por favor, se te ajudei, me ajude me pontuando. Agradecido.

    • Editado Fabio I segunda-feira, 4 de janeiro de 2021 00:49
    segunda-feira, 4 de janeiro de 2021 00:48
  • WebierOnLine,


        Respondendo rapidamente... Acho que é só colocar mais uma "vírgula"... Exemplo:

    SELECT
           col1, col2
               ,SESSIONPROPERTY ('ARITHABORT') AS ARITHABORT
               ,SESSIONPROPERTY ('ANSI_WARNINGS') AS ANSI_WARNINGS
           FROM ...

       Veja também:

    ================================================
    Resolving an ADO timeout issue in VB6

    https://stackoverrun.com/es/q/1022155
    ================================================
    Should i set ARITHABORT ON in all SELECT queries in an application

    https://stackoverflow.com/questions/44721972/should-i-set-arithabort-on-in-all-select-queries-in-an-application
    ================================================
    VB .NET - Tratando com instâncias do SQL Server, Banco de dados e Tabelas

    http://www.macoratti.net/13/01/vbn_sql2.htm
    ================================================


    []'s,
    Fabio I.

    P.S.: Por favor, se te ajudei, me ajude me pontuando. Agradecido.

    Amigo, Fiz conforme vc citou acima... incluir na linha do select separado com virgula... porem dar o mesmo erro... como se eu não tivesse setado o ARITHABORT como ON...

    No TSQL roda normal (colocando SET ARITHABORT ON ) antes da consulta...

    quarta-feira, 6 de janeiro de 2021 16:42
  • Webier,


       Experimenta dar uma enxugada na sua consulta só para ver o que acontece...
       .... motivo: retirar alguns campos que podem estar gerando outros erros.

        Exemplo:

    SELECT * ,SESSIONPROPERTY ('ARITHABORT') AS ARITHABORT 
    FROM  OS_recapadora AS C


    []'s,
    Fabio I.

    • Editado Fabio I quarta-feira, 6 de janeiro de 2021 18:53
    quarta-feira, 6 de janeiro de 2021 18:53
  • Webier,


       Experimenta dar uma enxugada na sua consulta só para ver o que acontece...
       .... motivo: retirar alguns campos que podem estar gerando outros erros.

        Exemplo:

    SELECT * ,SESSIONPROPERTY ('ARITHABORT') AS ARITHABORT 
    FROM  OS_recapadora AS C


    []'s,
    Fabio I.

    Amigo, não deu erro... mais deixa lhe explicar... nessa parte resumida que vc pediu para eu testar não possui a concatenação:

     STUFF ((SELECT ' /' + cliente.Nome+ '/ ' + A.FABRICANTE+ ' ' + A.MODELO+ ' ' + A.ANO FROM OS_recapadora AS A WHERE A.COD_OS= OS_recapadora.COD_OS FOR XML PATH(''), TYPE).value('.', 'varchar(max)') , 1, 3, '') as Compatibilidade 

    Esse é o real motivo para ter q setar o ARITHABORT como ON....

    Pq se eu não setar, vai dar o erro dizendo que o ARITHABORT não foi setado.


    quarta-feira, 6 de janeiro de 2021 22:58
  • Webier,

        Estou pensando algo aqui.

        Tem como você disparar um SELECT antes somente para fazer o ARITHABORT ficar ON e depois fazer sua consulta? Tipo isolar uma coisa da outra.

        Exemplo:

    ======================================
    ADO - Trabalhando com múltiplos conjuntos de dados (Multiple Result Sets)

    SELECT au_fname, au_lname FROM authors;SELECT title FROM Titles

    http://www.macoratti.net/mult_rst.htm
    ======================================


    []'s,
    Fabio I.
    quinta-feira, 7 de janeiro de 2021 10:43
  • Webier,

        Estou pensando algo aqui.

        Tem como você disparar um SELECT antes somente para fazer o ARITHABORT ficar ON e depois fazer sua consulta? Tipo isolar uma coisa da outra.

        Exemplo:

    ======================================
    ADO - Trabalhando com múltiplos conjuntos de dados (Multiple Result Sets)

    SELECT au_fname, au_lname FROM authors;SELECT title FROM Titles

    http://www.macoratti.net/mult_rst.htm
    ======================================


    []'s,
    Fabio I.
    Não Deu certo amigo!
    terça-feira, 12 de janeiro de 2021 03:22