[delphi-br] SOCORRO: Gravar dados no Banco de Dados

2007-12-11 Por tôpico william.designer
tenho os seguintes componentes em um Data module, um SQLConection,
um SQLDataSet{SQLcadLista}, um DataSetProvider{DSPcadLista} e um
ClientDataset{CDScadLista}

Criei um formulario a partir dos campos do meu ClienteDataset...
e Criei um botão para Salvar e coloque o seguinte código no Onclick
do botão..

if DNNConexao.CDScadListaProgCOD.IsNull then
begin
DNNConexao.CDScadListaProgCOD.Value := 0;
DNNConexao.CDScadListaProg.ApplyUpdates(-1);
DNNConexao.CDScadListaProg.Open;
DNNConexao.CDScadListaProg.Close;
end
else
DNNConexao.CDScadListaProg.ApplyUpdates(-1);
Fechar:=true;
Close;

O primeiro registro ele salva normal...mas quando tenho cadastrar um
novo registro ele dá a seguinte mensagem...

Project NomeProjeto.exe raised exception class EDBClient with
message 'KeyViolation.'. Process stop. Use step or run to continue.

Será que alguem pode me ajudar onde eu estou errando...




RES: [delphi-br] SOCORRO: Gravar dados no Banco de Dados

2007-12-11 Por tôpico Vitor Redes
Não sei como seu banco está configurado, mas se você gravar dois
registros com o valor 0, o banco com certeza vai retornar violação de chave
né...

Dê mais informações, está utilizando trigger? Algum tipo de
função no banco?

 

Vitor.

 

 

  _  

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de william.designer
Enviada em: terça-feira, 11 de dezembro de 2007 11:39
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] SOCORRO: Gravar dados no Banco de Dados

 

tenho os seguintes componentes em um Data module, um SQLConection,
um SQLDataSet{SQLcadLista}, um DataSetProvider{DSPcadLista} e um
ClientDataset{CDScadLista}

Criei um formulario a partir dos campos do meu ClienteDataset...
e Criei um botão para Salvar e coloque o seguinte código no Onclick
do botão..

if DNNConexao.CDScadListaProgCOD.IsNull then
begin
DNNConexao.CDScadListaProgCOD.Value := 0;
DNNConexao.CDScadListaProg.ApplyUpdates(-1);
DNNConexao.CDScadListaProg.Open;
DNNConexao.CDScadListaProg.Close;
end
else
DNNConexao.CDScadListaProg.ApplyUpdates(-1);
Fechar:=true;
Close;

O primeiro registro ele salva normal...mas quando tenho cadastrar um
novo registro ele dá a seguinte mensagem...

Project NomeProjeto.exe raised exception class EDBClient with
message 'KeyViolation.'. Process stop. Use step or run to continue.

Será que alguem pode me ajudar onde eu estou errando...

 



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] SOCORRO: Gravar dados no Banco de Dados

2007-12-11 Por tôpico eu_sossego
vc ta inserindo zero duas vezes como disse o colega abaixo assim da erro msm 
qualquer codigo repetido da erro

este codigo para o botao novo(ou inserir )
Cdstabela.Close;
Cdstabela.Params[0].AsInteger := (-1);
Cdstabela.Open;
Cdstabela.Append;

Cdstabelacd_chave.asinteger := cd_novoquegereidealgumaforma ;

este para o botao gravar
   Cdstabela.Post;
   Cdstabela.ApplyUpdates(0);

obs esta minha tabela nao esta com campo auto incremento e eu coloquei um 
auxilio pra gerar codigo novo
e so pensar na tua forma de gerar o codigo novo que nao podera se repetir
espero ter ajudado


- Original Message - 
From: Vitor Redes [EMAIL PROTECTED]
To: delphi-br@yahoogrupos.com.br
Sent: Tuesday, December 11, 2007 2:48 PM
Subject: RES: [delphi-br] SOCORRO: Gravar dados no Banco de Dados


Não sei como seu banco está configurado, mas se você gravar dois
registros com o valor 0, o banco com certeza vai retornar violação de chave
né...

Dê mais informações, está utilizando trigger? Algum tipo de
função no banco?



Vitor.





  _

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de william.designer
Enviada em: terça-feira, 11 de dezembro de 2007 11:39
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] SOCORRO: Gravar dados no Banco de Dados



tenho os seguintes componentes em um Data module, um SQLConection,
um SQLDataSet{SQLcadLista}, um DataSetProvider{DSPcadLista} e um
ClientDataset{CDScadLista}

Criei um formulario a partir dos campos do meu ClienteDataset...
e Criei um botão para Salvar e coloque o seguinte código no Onclick
do botão..

if DNNConexao.CDScadListaProgCOD.IsNull then
begin
DNNConexao.CDScadListaProgCOD.Value := 0;
DNNConexao.CDScadListaProg.ApplyUpdates(-1);
DNNConexao.CDScadListaProg.Open;
DNNConexao.CDScadListaProg.Close;
end
else
DNNConexao.CDScadListaProg.ApplyUpdates(-1);
Fechar:=true;
Close;

O primeiro registro ele salva normal...mas quando tenho cadastrar um
novo registro ele dá a seguinte mensagem...

Project NomeProjeto.exe raised exception class EDBClient with
message 'KeyViolation.'. Process stop. Use step or run to continue.

Será que alguem pode me ajudar onde eu estou errando...





[As partes desta mensagem que não continham texto foram removidas]



-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

Links do Yahoo! Grupos




-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.503 / Virus Database: 269.17.1/1181 - Release Date: 11/12/2007 
17:05