Fórum Erro usando dbExpress #283684

02/06/2005

0

Estou usando dbExpress para acessar um bd Firebird.
Tenho uma tabela mestre ´Usuario´ com os dados dos usuários que podem acessar o sistema, e uma tabela de detalhes ´Opcao_Us´ com os direitos de acesso.
Uso o seguinte esquema de acesso:

SQLQuery -> DataSetProvider -> ClientDataSet -> DataSource

O componente SQLQuery fica em um DataModule e os outros ficam no formulário.

No DataModule, a tabela ´Opcao_US´ esta relacionada com a tabela ´Usuario´ atavés da propriedade DataSource do SQLQuery:
SQLQuery(Usuario) -> DataSource(Usuario) -> SQLQuery(Opcao_Us)

No formulário, onde estão o DataSetProvider, ClientDataSet e DataSource, tenho um conjunto para a tabela ´Usuario´ e apenas o ClientDataSet e o DataSource para a tabela ´Opcao_Us´. Esta tabela é ligada à tabela ´Usuario´ através da propriedade DataSetField do ClientDataSet.

Na inclusão de registro não ocorre erro, mas quando altero mais de uma opção do usuário, tabela ´Opcao_Us´ ocorre um erro com a seguinte mensagem:
´Update affected more than 1 record´

Se algum souber como resolver, agradeço.


Lab

Lab

Responder

Posts

02/06/2005

A.paiva

Já tive problemas com Dbexpress nesse sentido e principalmente quando utilizava um sql utilizando mais de um tabela (join), nesse caso tive q verificar as opções do providerflags dos campos:
campos chaves [pfInUpdate,pfInKey]
demais campos da tabela a ser atualizada [pfInUpdate,pfInWhere]
campos provenientes do join e q nao sao atualizaveis [] (nenhum),
e nao esquecer as conf. do DatasetProvider;
Option = poAllowcommandtext
Updatemode = upWhereKeyOnly
alem do evento ongettablename com o nome da tabela.
Espero ter ajudado.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar