none
Windows XP x SQL Server 2005 RRS feed

  • Pergunta

  • Ola amigos.

    Estou com um problema serio.

    Desenvolvi um programa em VB6 e uso o Windows XP SP2 com a base Access 2000.  Ele roda beleza.   Agora mudei para o SQL Server 2005.   Crie as tabelas com indices igual eu tinha no access....   Agora apareceu um probleminha que ja fundi a cuca e não consigo ver onde esta o problema.

    É o seguinte:

    Tenho varios registros com um campo de data que preciso selecionar um de cada.

    sql= "Select Distinct year(DataInc) from Tabela Order by DataInc"

    agora é que vem...

    se eu conectar no access, ele funciona redondo...  mas se estiver conectado no sql2005, ele roda e diz que nao encontrou nenhum registro.

    No meu programa tenho varias telas para aplicaçoes diferentes e ele so nao roda onde tem o tal "Distinct"....      inclusive, fiz um aplicativo so para abrir o sql 2005 chamando a tabela e rodando o sql acima....    rodou e encontrou 1 reg. em 4000....  ai funcionou...   alguem pode me dar uma luz???...

    Desde ja agradeço.

    Obs.  Ja tentei fazer de varias maneiras conforme li em forums...  mas nada adiantou...

    att,

    Jorge Andrade

    terça-feira, 28 de maio de 2013 00:04

Respostas

  • Bom dia a todos do Forum....

    Consegui resolver a questão...

    Obrigado a todos que contribuiram...

    Resposta:

    o SQL por default usa:

    erro:  CN.CursorLocation=adUseServer

    (Isto significa que o SqlServer usa o seu metodo de pesquisa e ignora o DISTINCT, GROUP)

    correto:  CN.CursorLocation=adUseClient

    (O SqlServer pesquisa conforme o programa manda a string...)

    Foi só trocar e o programa rodou corretamente.

    Att,

    Jorge Andrade

    • Marcado como Resposta JorgeAndrade terça-feira, 28 de maio de 2013 13:39
    terça-feira, 28 de maio de 2013 13:39

Todas as Respostas

  • Jorge, a coluna dataInc é do tipo de dados de data (datetime, smalldatetime, etc) ou é um varchar ?

    faça um teste mudando o order by com a mesma sintaxe que voce usa no select:

    Select Distinct year(DataInc) from Tabela Order by year(DataInc)


    Alexandre Matayosi Conde Mauricio.

    terça-feira, 28 de maio de 2013 11:09
  • Bom dia Alexandre,

    Ja tentei de todas as formas e com todos os tipos de dados e nao obtive o resultado.. ..  nem mensagem de erro ele retorna...   apenas coloquei uma msgbox que me retorna ("nunhum registro encontrado")....

    Estou usando o SQLEXPRESS (SQL Server 9.0.5000) e quando vou desligar o notebook fica HOTFIX prezo na memoria...   ainda nao consegui localizar uma atualização para esta versao....  mas acho que o problema esta ai.....

    Obrigado por sua atenção.....

    Att, Jorge Andrade 

    terça-feira, 28 de maio de 2013 11:30
  • Jorge,

    Tente executar o Profiler e capturar o que está sendo realmente executado no sql server, para garantir que a consulta que está sendo executada conforme você deseja.

    Espero que te ajude.

    []'s!

    terça-feira, 28 de maio de 2013 11:31
  • Bom dia a todos do Forum....

    Consegui resolver a questão...

    Obrigado a todos que contribuiram...

    Resposta:

    o SQL por default usa:

    erro:  CN.CursorLocation=adUseServer

    (Isto significa que o SqlServer usa o seu metodo de pesquisa e ignora o DISTINCT, GROUP)

    correto:  CN.CursorLocation=adUseClient

    (O SqlServer pesquisa conforme o programa manda a string...)

    Foi só trocar e o programa rodou corretamente.

    Att,

    Jorge Andrade

    • Marcado como Resposta JorgeAndrade terça-feira, 28 de maio de 2013 13:39
    terça-feira, 28 de maio de 2013 13:39