Top do SQL Server acusado como erro de SQL. (Scriptcase 7)

estou tentando fazer um select no evento on validate e on validate sucess… onde na sql eu tenho um “TOP 1” porém quando vou gerar a aplicação me da o seguinte erro:

SQL ERROR’s:
Event onValidate: “Select top 1 MATRICULA from trabalhador WHERE MATRICULA = {Mat}”
(SQLState: 42000 Error Code: 156 Message: [Microsoft][SQL Server Native Client 10.0][SQL Server]Incorrect syntax near the keyword ‘top’. )

Não funciona top 1 de maneira nenhuma… toda vez que ponho top 1 em algum sql, me da esse problema.
Como resolver isso?

O Sr. já tentou rodar o mesmo comando diretamente no seu BD?

att,
Bernhard Bernsmann

Também tivemos problemas com o comando TOP quando utilizado nas macros sc_select e sc_lookup
A solução aqui foi fazer o SELECT normalmente com todo o resultado, e resgatar somente o primeiro valor.

Desculpem ressucitar o tópico mas também estou com o mesmo problema Com TOP 1 Banco SQL SERVER, se rodar a query no banco funciona perfeitamente. Se eu tirar o TOP 1 roda no SC. Estou usando:
sc_lookup(ds,“SELECT TOP 1 datapedido, totalpedido FROM dbo.Pedido WHERE clientepedido = {codiclie} and datapedido is not null AND empresa = [qualempresa] ORDER BY datapedido ASC”);

mssql_query(): Query failed | Script: C:\Program Files\NetMake\v7\wwwroot\scriptcase\prod\third\adodb\drivers\adodb-mssql.inc.php linha: 842

Recomendo que ative o modo debug e veja qual o SQL que o SC está gerando de seu sc_lookup.

att,
Bernhard Bernsmann

Ola Bernhard,

 Obrigado por me responder. Agora que notei que na hora de compilar está dando erro, tentei Top(1), Top 1 e da esse mesmo erro, se eu tirar o Top 1 ele passa na boa, estou colocando no evento onLoadall, mas não acho que seja esse o problema como falei sem o Top 1 ele funciona.

form_mostra_analise	

Tipo de aplicação: Formulário Estado: Erro

SQL ERROR’s:
Event onLoadAll: “SELECT TOP 1 pedidata FROM dbo.Pedido WHERE pediclie = {cliecodi} AND empresa = [qualempresa] ORDER BY pedidata DESC”
(Incorrect syntax near the keyword ‘TOP’.)

Você está utilizando o sc_lookup ou sc_select? Executando a query diretamente no banco (passando valores fixos no lugar dos campos), a mesma funciona?

att,
Bernahrd Bernsmann

Estamos tendo o mesmo erro, e não consigo soluciona-lo.

Fizemos a migração da versão 5.2 do ScriptCase para a versão 7 do SC, e todas nossas consultas que continham o comando “TOP 1” passaram a acusar erro.

Existe alguma configuração a ser feita que solucione este ERRO DO SCRIPT CASE 7?

Aguardo retorno.
Att,
Pedro Almeida

A única forma que conseguimos aqui “BURLAR” o erro é “encapsulando” a consulta SQL:

EX:
A consulta top1 abaixo apresentava erro na COMPILAÇÃO

select top 1 … from … where … order by …

para solucionar… ou melhor, BURLAR O ERRO DO SC7, bastou fazer o seguinte:

SELECT A.X FROM (select top 1 … from … where … order by …) as a

PRONTO! ASSIM FUNCIONOU…

MAS NÃO CONCORDO EM ALTERAR TODOS NOSSOS FORMULÁRIOS POR CONTA DESTE ERRO…
Favor verificarem e me passar um retorno com uma possível solução

Obrigado,
Pedro Almeida

Se eu executar direto no banco funciona que é uma maravilha !!! e Se tirar o Top 1 o SC aceita, mas gostaria de usar o Top 1 já que não é erro da minha query e sim erro do SC. Por enquanto estou usando sem o TOP 1. Se não tiver solução vou usar a gambiarra acima descontente da vida :’(
sc_lookup(ds,"SELECT TOP 1 datapedido, totalpedido FROM dbo.Pedido WHERE clientepedido = {codiclie} and datapedido is not null AND empresa = [qualempresa] ORDER BY datapedido ASC

Isso que é Foda…
Estou com o SC7… alguém testou o 7.1 para saber se resolveu o problema acima?

Tentei mas não funcionou.

Srs.,

Vou verificar o problema com nossa equipe de bugs.

att,
Bernhard Bernsmann

OK! vamos ficar aguardando a solução…
estou no meio de uma migração do SC5.2 para o SC7 e isso está PHoda…

Já temos alguma posição sobre Sr. Bernhard?

Estou aguardando um retorno seu Sr. Bernhard quanto à correção do Bug neste tópico citado…

Boa noite,

Vou verificar o status do problema com nossa equipe de bugs.

att,
Bernhard Bernsmann

Pedro, você está usando a última release e este erro continua é isso?

nao seria mais interessante neste caso criar uma View no banco e dar uma select nela pelo SC ?
dai no SC fica uma sc_lookup simples…
eu faço tudo assim… nao tenho nenhum problema… e roda que nem uma bala…

Paulo, bom dia!

Estou usando a última versão do SC7.1…
Hoje, quando voltei às minhas migrações aqui atualizei novamente meu SC7.1 com os últimos updates… gerei todos meus 599 formulários e o erro continuou…