ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

erro ao gravar dados dbexpress

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
c-guedes
Profissional
Profissional


Registrado: Terça-Feira, 31 de Mai de 2005
Mensagens: 502

MensagemEnviada: Seg Mai 10, 2010 8:10 pm    Assunto: erro ao gravar dados dbexpress Responder com Citação

Saudações, é a primeira vez que uso o dbexpress, e para gravar os dados estou usando os seguintes componentes,
1 - SQLConection
2 - SQLQuery
3 - DataSorce
4 - SQLDataSet

aparece a seguinte mensagem: "cannot modify a read-only dataset"

Código:

procedure TForm1.gravaemail(emailgravar: string);
begin

with dm.Qry_grava do
   begin
   Close;
   SQL.Clear;
   SQL.Add('select *from mail');
   Open;
   Append;
   FieldByName('email').AsString := emailgravar;
   Post;

   end;
end;

_________________
Camargo Felis Guedes
"Posso todas as coisas naquele que me fortalece" flp. 4:13
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
vitor5
Novato
Novato


Registrado: Sábado, 4 de Março de 2006
Mensagens: 84

MensagemEnviada: Seg Mai 10, 2010 8:28 pm    Assunto: Responder com Citação

Boa noite, uso dbExpress, só que uso TSimpleDataSet com um DataSource para as tabelas e consultas.
Ex:
dm.sdsPedidos.Post;
dm.sdsPedidos.ApplyUpdates(-1);
dm2.sdsQryPedidos.Refresh; (Aqui se você quiser atualizar dados de uma consulta após das o comando ApplyUpdates.
Tenta aí .....
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
c-guedes
Profissional
Profissional


Registrado: Terça-Feira, 31 de Mai de 2005
Mensagens: 502

MensagemEnviada: Seg Mai 10, 2010 9:51 pm    Assunto: Responder com Citação

vitor5 escreveu:
Boa noite, uso dbExpress, só que uso TSimpleDataSet com um DataSource para as tabelas e consultas.
Ex:
dm.sdsPedidos.Post;
dm.sdsPedidos.ApplyUpdates(-1);
dm2.sdsQryPedidos.Refresh; (Aqui se você quiser atualizar dados de uma consulta após das o comando ApplyUpdates.
Tenta aí .....


também não funcionou continua com a mesma mensagem!!!
_________________
Camargo Felis Guedes
"Posso todas as coisas naquele que me fortalece" flp. 4:13
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
vitor5
Novato
Novato


Registrado: Sábado, 4 de Março de 2006
Mensagens: 84

MensagemEnviada: Seg Mai 10, 2010 10:16 pm    Assunto: Responder com Citação

Olha eu uso dbExpress com Firebird.
Uso um simpledataset e um datasource.

dm.sdsRecebimento.Append;
dm.sdsRecebimentoREGISTRO.AsInteger:=intRegistro;
dm.sdsRecebimentoNUM_PED2.AsInteger:=dm.sdsPedidosNUMERO_PEDIO.AsInteger;
dm.sdsRecebimentoLIQUIDADO.AsString:='N';


dm.sdsRecebimento.Post;
dm.sdsRecebimento.ApplyUpdates(-1)

Isto é um exemplo.
Qual é o erro que está acontecendo
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Ter Mai 11, 2010 10:41 am    Assunto: Responder com Citação

Somente atente para o fato de que dm.sdsRecebimento.ApplyUpdates(-1) não resultará em mensagem de erro o que pode deixar vc sem saber o que fazer, o melhor seria tratar o erro nesta posição e usar controle de transação....

exemplo:

try
if tabela.state in [dsedit, dsinsert] then
begin
funcaochamatransacaoID;
post;
end
else
exit;

if tabela.ApplyUpdates(0) <> 0 then
begin
conexao.rollback(transacao);
mensagem_avisando_do_erro;
end;
except
on e: edatabaseerror do
begin
conexao.rollback(transacao);
mensagem_avisando_do_erro;
end;
end;



PS.: não sei se o pessoal utiliza assim, mas desta forma me atende, ainda há a tela de reconcile error que tb pode tratar outros erros decorrentes.



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB