Erro no SC5

Desculpe-me, não sei se é exatamente erro do SC5, mas criei esse tópico para que pudéssemos concentrar as informações de possíveis bugs com a nova versão. Vamos lá!

Após a instalação do SC5, o erro abaixo começou a aparecer (tanto no SC5 quanto SC4) no uso das macros SC_SELECT e SC_LOOKUP, quando tentei acessar uma view (com uma filtragem por um campo do tipo data) criada no banco de dados e montar a expressão SQL com o SQLBuilder. A selecionar a view, o SC pára e não deixa seguir adiante na escolha dos campos que comporão a expressão SQL:

Mensagem de erro:

odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value., SQL state 22008 in SQLExecDirect | Script: C:\Program Files\netmake\v4\wwwroot\scriptcase\prod\third\adodb\drivers\adodb-odbc.inc.php linha: 540

Meu ambiente: SQL SERVER 2000, conexão ODBC, Windows Vista Home Premiun

A view criada tem a expressão abaixo:

SELECT TOP 100 PERCENT dbo.Clínicas.Clínica, dbo.Ambulatórios.Sigla_clínica, dbo.Same_agenda.[Data da consulta], dbo.Same_agenda.Periodo, dbo.Same_agenda.[Situação da consulta], dbo.Clínicas.[Grupo de agendamento], dbo.Same_agenda.Horário
FROM dbo.Same_agenda FULL OUTER JOIN
dbo.Ambulatórios ON dbo.Same_agenda.Codigo_da_clinica = dbo.Ambulatórios.Codigo_da_clinica FULL OUTER JOIN
dbo.Clínicas ON dbo.Ambulatórios.Sigla_clínica = dbo.Clínicas.Sigla_clínica
WHERE (dbo.Same_agenda.[Situação da consulta] = ‘D’) AND (dbo.Same_agenda.[Data da consulta] = { fn CURDATE() }) AND (dbo.Clínicas.[Grupo de agendamento] = ‘SAME’)
ORDER BY dbo.Clínicas.Clínica, dbo.Same_agenda.Periodo, dbo.Same_agenda.Horário

O campo [Data da consulta] eu uso para fazer uma filtragem nos dados, com a sintaxe .[Data da consulta] = { fn CURDATE() }), para trazer apenas os registros com a data do servidor.

Fiz teste acessando uma view e também diretamente uma tabela do banco de dados que contivessem um campo do tipo data. Funcionou normalmente até o momento em que eu acrescentei uma filtragem pelo campo data, tanto diretamente no banco de dados quanto acrescentando a filtragem nas condições de filtragem do SQL Builder.

Acontece com mais alguém?

1 Curtida

Pesquisando na Internet, achei a causa do problema. Quando se trabalha com conexão ODBC no SQL SERVER (não sei se também em outros bancos), a definição da linguagem de retorno das mensagens influencia no formato de campos do tipo data. Na minha conexão, havia definido como “português”, mas não é o padrão correto para os nosso tipos de data.

Eis a solução:

1 - Alterei a default language do usuário para Brazilian;
2 - Alterei a default language da DSN para Brazilian.

Valeu?

Espero que isso sirva de ajuda aos colegas que, eventualmente, venham a passar pelo mesmo problema.

1 Curtida

Olá Pessoal,

Tenho recebido a mensagem abaixo todas as vezes que faço login no scriptcase:

simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Malformed declaration expecting version | Script: D:\scriptcasev5\wwwroot\scriptcase\devel\class\xmlparser\nmXmlparserConnFilters.class.php linha: 101

Acontece com mais alguém?

Abraços,
Antonio CP Júnior

Bom Dia Valter,

De fato, pode acontecer isto. Já me ocorreu estes erros quando estive utilizando o SQL Server há pouco tempo. Grande dica para futuros problemas.

Rodrigo Lins.

Bom Dia,

O erro está sendo mostrado como “Warning” ou é um pop-up que está aberto com o erro?

Qual o ambiente que está sendo executado? O sistema operacional…

Rodrigo Lins.

Caro Rodrigo,

Aparece como popup e ao clicar, abre o html com a mensagem.

Meu ambiente é Windows7 + Pacote Scripcase5+Apache+PHP (do instalador baixado do site) + MySQL. Roda bem! diga-se de passagem! Melhor quando era Vista Enterprise.

Detalhe: A mensagem surgiu após migração dos projetos da versão 4. Acho que esse é o ponto chave.

Abraços,
Antonio CP Júnior

Bom Dia Antonio,

Falei com o suporte aqui da NetMake, e este problema aconteceu com algumas poucas pessoas, e o problema já acontece no momento da conversão.

Será melhor você entrar em contato com o suporte para conversar sobre o problema, ele já está sendo corrigido, mas é bom confirmar se ocorreu da mesma forma e se de fato é o mesmo. Caso não queira entrar no suporte, pode enviar um email para bugs@netmake.com.br

Rodrigo Lins.