HJ
DataGrid de tabela com Constraint
Fechado
Boa noite Senhores,
Estou precisando criar uma datagrid se baseando numa tabela com alguns campos como constraint, porém, devido a existir registros nos quais a pk informada na classe model estar se repetindo, está dando mensagem de erro ao tentar carregá-la.
Sabem se existe algum ajuste que preciso fazer para que ele reconheça que a tabela tem mais de um campo como pk, não considerando o registro duplicado? Preciso alterar a classe model desta tabela, informando os campos que fazem parte da constraint?
Obrigado
Estou precisando criar uma datagrid se baseando numa tabela com alguns campos como constraint, porém, devido a existir registros nos quais a pk informada na classe model estar se repetindo, está dando mensagem de erro ao tentar carregá-la.
Sabem se existe algum ajuste que preciso fazer para que ele reconheça que a tabela tem mais de um campo como pk, não considerando o registro duplicado? Preciso alterar a classe model desta tabela, informando os campos que fazem parte da constraint?
Obrigado
www.adianti.com.br/forum/pt/view_910?chave-primaria-composta
Pessoal, mesmo alterando a minha tabela, usando Unique index ao invés de constraint, conforme link de outro post informado acima, o erro que eu estava encontrando permaneceu o mesmo. Peço desculpas se eu não poderia ter postado novamente aqui neste meu post original, mas como postei lá no outro e não vi o post subir para os últimos comentados, fiquei na duvida se ele seria visualizado por alguém. Estou precisando muito concluir esta pendencia. Agradeço se responderem. Caso eu não possa proceder desta forma, por favor me avisem.
Criação da tabela:
FifinList.class.php
Mensagem de erro ao carregar Fifinlist.class.php('You have already added a field called "checkSALARIO" inside the form')
Onde estou errando?
Hélio, acho que no link que passei não ficou muito clara essa questão, mas sua tabela precisa obrigatoriamente ter uma chave primária do tipo integer.
Quanto ao erro mencionado, não tenho certeza se tem relação com a sua tabela.
Poste todo o código para que possamos verificar.
Nataniel, obrigado pelo retorno.
Só pelo seu comentário, já suspeito que o problema seja realmente o fato de minha tabela não ter uma chave primária do tipo integer.
Mas acho estranho essa constatação, pois já tenho outras tabelas, bem mais simples(com apenas uma pk), em que a chave primária não é integer, e sim varchar.
Exemplo:
Código: 01
Descrição: Mensalista
Código:02
Descrição: Horista
...
De qq forma, segue o código completo da listagem:
Hélio, na verdade o framework até funciona com uma chave primária varchar, desde que esse campo seja sempre informado. E teria que adicionar algumas validações para saber quando deve fazer update ou insert.
Acredito que a solução mais simples no seu caso seja mesmo adicionar uma coluna integer, até para identificar mais facilmente os registros. Isso evitaria também o erro mencionado, pois cada check seria criado com o nome 'check_'+id, e nesse caso o id seria diferente para cada registro.
Ok Nataniel. Obrigado. Entendi a questão agora. Vou adicionar. Seria legal se eu pudesse adicionar esta coluna id, mas que pudesse deixa-la invisível para o usuário, pois ela será apenas para que a questão seja resolvida e não uma necessidade em nível de banco de dados. Você sabe se é possível deixa-la invisível no grid?
De qq forma, já te agradeço pela atenção dispensada!
Pensando melhor aqui, cheguei a conclusão de que não poderei incluir esse campo id como pk, visto que se fizer isso, quando eu me referenciar a determinado registro desta tabela pelo nome da conta, como a chave seria o id e não mais a "conta", o framework vai interpretar aquele registro sempre como não existente e adicionará outro registro, ao invés de sobrepô-lo.
Mas pelo que entendi, esse problema só se dá na apresentação da tela, na composição do datagrid. Sendo assim, se eu filtrar o datagrid, de modo que ele não precise mostrar todas as ocorrencias(campo rotina) de 1 só vez de um colaborador, o problema na teoria ficaria resolvido tbm.
Vou tentar aqui.