Conversão v5 e v6 para v8

Bom dia.
Temos muitas aplicações desenvolvidas com o SC desde a versão 2, por isso as conversões são ótimas para mantermos nossas aplicações atualizadas.
Entretando, desde a versão 7 o SC não vem atendendo nossas necessidade devido a um erro recorrente no lookup dos campos.
Desde que passou a validar o SQL no lookup dos campos, quano é feita a conversão de uma versção antiga para a mais nova a aplicação não é gerada, obrigando o programadora a refazê-la (o que muitas vezes não adianta).
Como trabalhamos com MySQL e SQLServer nossos projetos possuem sempre 2 conexões, e o problema aparece sempre nas conexões com o SQL Server.
Alguém sabe como corrigir este problema, afinal os projetos possuem inúmeras aplicações e o uso do SC fica inviável se tiver de refazer.
Dese a v7 relato este problema e tinha esperanças que a v8 o corrigisse.


erro_sc8_convert_sc6.png

O problema ocorre em formulários que contém lookups? Caso sim, isto acontece para todos os forms?

Você poderia detalhar um pouco mais no que vem causando o problema?

att,
Bernhard Bernsmann

Sim, todos os form´s, sempre que ocorre um lookup apontando para a conexão SQLServer (ODBC).
Testei em formulários: controle, único registro e múltiplos registros, todos apresentaram o problema.
Inclusive, ao criar um projeto novo, conexões novas e aplicações novas na versão 8, ocorre o mesmo problema.

Na hora de fazer o lookup, o assistente de geração de sql encontra as tabelas e lista os campos normalmente, o problema
aparece na hora de gerar o código fonte.

Informa o seguinte erro:
[b]SQL ERROR’s:
Field:login SELECT NOME FROM SCHEMA.TABELA WHERE CPFNUM = ‘$this->login’ ORDER BY NOME
(Table ‘schema.tabela’ doesn’t exist)

SQL ERROR’s:
Field:login SELECT NOME FROM SCHEMA.TABELA WHERE CPFNUM = ‘$this->login’ ORDER BY NOME
(Table ‘schema.tabela’ doesn’t exist)[/b]

Como disse anteriormente, trabalhamos com 2 sgdb e a maioria das aplicações feitas com o SC são integradoras (necessitam de dados de ambos SGDB).

Este problema vem ocorrendo desde a versão 7, tanto que não foi criada nenhuma aplicação nesta versão.

Desde já agradeço a atenção.

Boa noite,

Como o Sr. está montando o SELECT nos lookups?

att,
Bernhard Bernsmann

Os SQL´s são montados através do wizard, que mostra normalmente as tabelas e os campos.

Neste select em questão o Sr. está utilizando alguma variável interna do SC para retornar um valor para a consulta? Me refiro ao: $this->login

att,
Bernhard Bernsmann

Não, somente o valor do campo mesmo.

Boa noite,

Discutirei este problema com nossa equipe de bugs.

att,
Bernhard Bernsmann

Tira a variável: $this->login da string do SQL

Faz assim:
$login_x=$this->login;

$SQL=“SELECT NOME FROM SCHEMA.TABELA WHERE CPFNUM = ‘$login_x’ ORDER BY NOME”;

Se você usar globais também fazer a mesma coisa, eu nunca coloca as globais em SQL.

Converta em local primeiro.

Exemplo com GLOBAL:
$NomeUsuario_x=[glo_NomeUsuario];

$SQL=“SELECT NOME FROM SCHEMA.TABELA WHERE USUARIO= ‘$NomeUsuario_x’ ORDER BY NOME”;

É que toda a versão o SC adiciona um novo macete heheeh, ai desde a versão 7 ele esta conferindo as SQL, com o banco,
por isso que esta tendo este monte de erro no seu projeto, antigo, como eu sempre atualizo meus projetos com cada
versão nova já passei por tudo isso, quando mais a versão do projeto for antigo mais antiga mais vai ter que remendar, eheeh,
tem aplicações que você vai ter que refazer o ZERO também para poder funcionar novamente.

Olá Jailton, tirar o “$thius->login” fica por contao do SC, pois o erro acontece no LOOKUP e utilizo a referência do SC para pegar o valor do campo.

Bernhard, outra curiosidade é que mesmo apresentando o erro na geração o lookup funciona qdo executamos a aplicação.
Não sei até que ponto o erro influencia noo funcionamento da aplicação.