Autor Tópico: Conversão v5 e v6 para v8  (Lida 1841 vezes)

fagnervalerio

  • Novato
  • *
  • Mensagens: 17
Conversão v5 e v6 para v8
« Online: Agosto 29, 2014, 09:38:48 am »
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.

Bernhard

  • Administrator
  • Expert
  • *****
  • Mensagens: 1619
Re:Conversão v5 e v6 para v8
« Responder #1 Online: Setembro 11, 2014, 12:20:55 am »
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

fagnervalerio

  • Novato
  • *
  • Mensagens: 17
Re:Conversão v5 e v6 para v8
« Responder #2 Online: Setembro 18, 2014, 11:22:44 am »
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:
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)


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.

Bernhard

  • Administrator
  • Expert
  • *****
  • Mensagens: 1619
Re:Conversão v5 e v6 para v8
« Responder #3 Online: Setembro 18, 2014, 10:58:02 pm »
Boa noite,

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

att,
Bernhard Bernsmann
« Última modificação: Setembro 18, 2014, 10:59:33 pm por Bernhard »

fagnervalerio

  • Novato
  • *
  • Mensagens: 17
Re:Conversão v5 e v6 para v8
« Responder #4 Online: Setembro 22, 2014, 04:53:38 pm »
Os SQL´s são montados através do wizard, que mostra normalmente as tabelas e os campos.

Bernhard

  • Administrator
  • Expert
  • *****
  • Mensagens: 1619
Re:Conversão v5 e v6 para v8
« Responder #5 Online: Setembro 23, 2014, 10:05:25 pm »
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

fagnervalerio

  • Novato
  • *
  • Mensagens: 17
Re:Conversão v5 e v6 para v8
« Responder #6 Online: Setembro 24, 2014, 06:54:55 am »
Não, somente o valor do campo mesmo.

Bernhard

  • Administrator
  • Expert
  • *****
  • Mensagens: 1619
Re:Conversão v5 e v6 para v8
« Responder #7 Online: Setembro 26, 2014, 12:40:33 am »
Boa noite,

Discutirei este problema com nossa equipe de bugs.

att,
Bernhard Bernsmann

Jailton

  • Expert
  • *****
  • Mensagens: 2041
Re:Conversão v5 e v6 para v8
« Responder #8 Online: Setembro 26, 2014, 09:48:41 am »
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.
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

fagnervalerio

  • Novato
  • *
  • Mensagens: 17
Re:Conversão v5 e v6 para v8
« Responder #9 Online: Novembro 17, 2014, 11:33:43 am »
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.