none
Identificar os tipos de variáveis de uma string que representa uma query RRS feed

  • Pergunta

  • Prezados,

    Boa tarde!

    Estou com a seguinte dúvida: Eu tenho, no meu código C#, uma string que contém um código T-SQL:

    string queryToSelect = "SELECT CAMPO1, CAMPO2 FROM TABELA WHERE CAMPO2 = @FILTRO2 AND CAMPO3 = @FILTRO3";

    Há algum meio de eu passá-la ao SQL Server e o mesmo analisá-la e me devolver as variáveis da query e quais os seus SqlDbTypes?

    Conseguir quais são as variáveis da string é possível através do uso de RegularExpressions, ou mesmo através das classes de parser TSql, porém, ainda continuo com o problema de desconhecer os tipos das variáveis.

    Grato desde já,

    Guilherme

    sexta-feira, 7 de outubro de 2016 17:14

Respostas

  • Olá,

    Você consegue retornar o tipo de dados das colunas do banco de determinada tabela. Até porque as variáveis deverão ser do mesmo tipo de dados das colunas correspondentes.

    A Query a seguir retorna duas colunas (Nome da coluna e tipo):

    SELECT COLUMN_NAME, DATA_TYPE
    FROM information_schema.columns
    WHERE TABLE_NAME = 'NOME_DA_TABELA'

    OBS: Capture o resultado dessa query na sua aplicação e terás o tipo de dados de cada coluna da tabela informada.

    Espero ter ajudado!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    sexta-feira, 7 de outubro de 2016 17:46

Todas as Respostas

  • Olá,

    Você consegue retornar o tipo de dados das colunas do banco de determinada tabela. Até porque as variáveis deverão ser do mesmo tipo de dados das colunas correspondentes.

    A Query a seguir retorna duas colunas (Nome da coluna e tipo):

    SELECT COLUMN_NAME, DATA_TYPE
    FROM information_schema.columns
    WHERE TABLE_NAME = 'NOME_DA_TABELA'

    OBS: Capture o resultado dessa query na sua aplicação e terás o tipo de dados de cada coluna da tabela informada.

    Espero ter ajudado!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    sexta-feira, 7 de outubro de 2016 17:46
  • Sim.. voce pode analisar o consultar a tabela  information_schema.columns, mas existe uma forma mais simples:

    Analise o dataset retornado. A coleçcao Dataset.Table.Columns possui uma descriçao completa de cada uma das colunas, contendo o tipo , tamanho, etc... 

    Naso precisa fazer nenhuma outra operaçao.

    Olhe a descriçcao de um objeto DataColumn:

    https://msdn.microsoft.com/en-us/library/system.data.datacolumn(v=vs.110).aspx

    Tem alguma coisa ali que nao te atende? 

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    sexta-feira, 7 de outubro de 2016 18:03
    Moderador