DbSeekbutton + criteria + Sql Server Boa noite pessoal. Estou utilizando um DbSeekbuton com criteria. Conectando o mesmo no mysql funcionava correta, agora que mudei pro banco sql server o mesmo me retorna mensagem: Erro SQLSTATE[42S22]: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Invalid column name 'id'. Não possuo nenhum campo ID no mesmo. Estranho que os outros DbSeekbutton que nao possuem criteria funcionam corret...
AR
DbSeekbutton + criteria + Sql Server  
Fechado
Boa noite pessoal.
Estou utilizando um DbSeekbuton com criteria. Conectando o mesmo no mysql funcionava correta, agora que mudei pro banco sql server o mesmo me retorna mensagem:
Erro SQLSTATE[42S22]: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Invalid column name 'id'.
Não possuo nenhum campo ID no mesmo.
Estranho que os outros DbSeekbutton que nao possuem criteria funcionam corretamente.
 
  1. <?php
  2. $critfunc = new TCriteria;
  3. $critfunc->add(new TFilter('id_cliente', '=', TSession::getValue('id_cliente')));
  4. 1612_funcionario = new ">TDBSeekButton('id_funcionario', 'permission', 'form_System_user', h'Funcionario', 'nm_funcionario', 'id_funcionario', 'nome_funcionario', $critfunc);
  5. $nome_funcionario = new TEntry('nome_funcionario');
  6. ?>

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (2)


FC

Tem o drive SQL server cliente onde VC está rodando a aplicação?
AR

Opa Felipe tudo certo?
Cara descobri o problema, e na verdade acho que é um bug. Quando não passo um criteria no componente, ele funciona corretamente, porém quando é passado, ele da esse retorno.
Na verdade ele esta tentando ordernar por um campo que não existe, no caso o ID. Esse comportamento não é o mesmo por exemplo no banco MySql.
A solução foi passar o campo de ordenação para o critério.

 
  1. <?php
  2. $crit = new TCriteria;
  3. $crit->add(new TFilter('id_cliente', '=', TSession::getValue('id_cliente')));
  4. $param = array();
  5. $param['order'] = 'id_funcionario';
  6. $crit->setProperties($param);
  7. $id_funcionario = new ">TDBSeekButton('id_funcionario', 'permission', 'form_FuncionarioCargos', 'Funcionario', 'nm_funcionario', 'id_funcionario', 'nome_funcionario', $crit);
  8. $nome_funcionario = new TEntry('nome_funcionario');
  9. ?>