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.
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.