CM
Campo id não existe ou contém valor NULL
bom dia!
tenho um formulário que busca dados do cadastro de fornecedores de um banco firebird.
A tabela TB_FORNECEDORES não tem o campo ID e sim FD_FORNECEDOR.
Tem substituir o campo ID do meu Active Record mas o sistema mostra erro dizendo: "Campo id não existe ou contém valor NULL"
Como posso resolver esse problema?
Obrigado!
tenho um formulário que busca dados do cadastro de fornecedores de um banco firebird.
A tabela TB_FORNECEDORES não tem o campo ID e sim FD_FORNECEDOR.
Tem substituir o campo ID do meu Active Record mas o sistema mostra erro dizendo: "Campo id não existe ou contém valor NULL"
Como posso resolver esse problema?
Obrigado!
No model vc pode mudar isso!
Veja se funciona.
Marcelo, bom dia!
Obrigado pelo retorno!
Foi isso mesmo que fiz, mas erro persiste. Abaixo, o model alterado:
bom dia!
alguém passou por esse problema?
Pode me ajudar?
Obrigado!
Essa mensagem é exibida pelo TDatagrid quando você aponta alguma ação para um campo inexistente ou nulo:
Bom dia, Nataniel!
na verdade a chamada do método não parte do TDatagrid, mas de um TButton. Abaixo o código da chamada:
$seek_button=new TButton('find');
$seek_button->setAction(new TAction(array('TaylorFornecedoresSeek','onReload')), 'Busca Fornecedor');
$seek_button->setImage('fa:search');
Abaixo o método onReload da classe TWindow TaylorFornecedoresSeek:
function onReload($param = NULL)
{
try
{
// open a transaction with database 'samples'
TTransaction::open('manix_taylor01');
$repository = new TRepository('TaylorFornecedores');
//$limit = 10;
// creates a criteria
$criteria = new TCriteria;
// default order
if (!isset($param['order']))
{
$param['order'] = 'FD_FORNECEDOR';
$param['direction'] = 'asc';
}
// $criteria->setProperties($param); // order, offset
//$criteria->setProperty('limit', $limit);
if (TSession::getValue('TaylorFornecedoresSeek_fd_fornecedor_filter'))
{
// add the filter stored in the session to the criteria
$criteria->add(TSession::getValue('TaylorFornecedoresSeek_fd_fornecedor_filter'));
}
if (TSession::getValue('TaylorFornecedoresSeek_fd_razao_social_filter'))
{
// add the filter stored in the session to the criteria
$criteria->add(TSession::getValue('TaylorFornecedoresSeek_fd_razao_social_filter'));
}
// load the objects according to the criteria
$fornecedores = $repository->load($criteria);
$this->datagrid->clear();
if ($fornecedores)
{
foreach ($fornecedores as $fornecedor)
{
// add the object inside the datagrid
$this->datagrid->addItem($fornecedor);
}
}
// reset the criteria for record count
$criteria->resetProperties();
$count= $repository->count($criteria);
$this->pageNavigation->setCount($count); // count of records
$this->pageNavigation->setProperties($param); // order, page
$this->pageNavigation->setLimit($limit); // limit
// close the transaction
TTransaction::close();
$this->loaded = true;
}
catch (Exception $e) // in case of exception
{
// shows the exception error message
new TMessage('error', $e->getMessage());
// undo all pending operations
TTransaction::rollback();
}
}
A tabela que tento buscar os dados não tem o campo ID, mas ID_FORNECEDOR.
bom dia!
consegui resolver.
Obrigado!
Celio
Excelente.
Por favor, poderia compartilhar a solução, pois assim se houver outro colega com o mesmo problema, possa ser útil.
Sucesso!
Estou com o mesmo problema, Celio Morais você pode postar a solução?
Solução: O método que funcionou na minha aplicação foi tirar os espaços que vem no resultado do select do banco de dados.
No meu caso utilizei rtrim nativo do php.
$item->id = rtrim($row['Id']);
Abraço!