Fórum IBdataset não altera registro #271236

07/03/2005

0

Crio um banco de dadoos no Interbase 6.0 como o abaixo:
connect ´c:\usr\wemprestimo\emprestimo.gdb´ user ´SYSDBA´ password ´masterkey´;

/* cria tabela empresas */
Create table Empresa
(ECodemp integer not null,
ENome varchar(60),
EEndereco varchar(60),
EBairro varchar(30),
ECidade varchar(30),
Erua integer,
ECep varchar(9),
EEstado char(2),
ETel varchar(13),
ETel2 varchar(13),
EFax varchar(13),
ECnpj varchar(18),
EInscr varchar(18),
ECrm varchar(8),
EEmail varchar(30),
EHP varchar(30),
primary key (ECodemp));

Create table cliente
(Clcodigo integer not null,
clnome varchar(50),
clendereco varchar(50),
clnumero integer,
clbairro varchar(25),
clcidade varchar(25),
clcep varchar(9),
primary key (clcodigo));

e crio um projeto no delphi 6.0 com os componentes IBX:
coloco um
IBDatabase
IBTransaction
IBDataSet
DataSource
e ligo todos eles.

O problema é o seguinte: a inserção de registros funciona ok. mas quando vou alterar um registro dou um edit, depois
altero e clico na botão gravar que tem os comandos post e commit. só que quando abro o banco de dados de novo o
registro não foi alterado, como se tivesse sido dado um rollback e cancelado aquela edição.
Conferi várias vezes as ligações entre os componentes, mudei o nome do banco de dados, o nome das tabelas e da
sempre o mesmo problema, a inserção funciona mas a alteração não.
Outro detalhe. Se colocar o componente IBTable no lugar do IBdataset a alteração funciona, não consigo entender porque.
Se puder me ajudar, desde já agradeço.
:?:


Pradosoft

Pradosoft

Responder

Posts

07/03/2005

Maurício Santos

Olá!!!

No lugar do post não seria melhor vc utilizar um ApplyUpdate????


Maurício


Responder

Gostei + 0

07/03/2005

Aroldo Zanela

Colega,

Clique com o botão direito sobre o dataset e selecione Dataset Editor, certifique-se que a chave primária está selecionada em Key Fields e ss demais campos estejam em Update Fields. Verifique se há código gerado na aba ´SQL´ e se estão corretos.
No evento AfterPost, coloque uma chamada para o método CommitRetaining do objeto IBTransaction.


Responder

Gostei + 0

08/03/2005

Pradosoft

verifiquei o código novamente e deixei apenad a chave no key fields e os outros campos no update fields, inclusive a chave e parece que funcionou.


Responder

Gostei + 0

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

Aceitar