Fórum NÃO CONSIGO SALVAR NA TABELA #511923

25/02/2015

0

BOTÃO INSERIR
procedure TFcaixa.BitBtn2Click(Sender: TObject);
begin
Contdados.Clientdscaixa.close;
Contdados.Clientdscaixa.Open;
contdados.Clientdscaixa.Edit;
edit1.Text:=Contdados.Clientdscaixa.FieldByName('idcaixa').AsString;
edit2.Text:=Contdados.Clientdscaixa.FieldByName('datacaixa').AsString;
edit3.Text:=Contdados.Clientdscaixa.FieldByName('totalent').AsString;
edit4.Text:=Contdados.Clientdscaixa.FieldByName('totalsaida').AsString;
edit5.Text:=Contdados.Clientdscaixa.FieldByName('saldoinicial').AsString;
edit6.Text:=Contdados.Clientdscaixa.FieldByName('saldofinal').AsString;
edit1.SetFocus;

end;
BOTAO SALVAR
contdados.Clientdscaixa.Close;
contdados.Clientdscaixa.open;
if CheckBox1.Checked then
Contdados.Clientdscaixa.FieldByName('statuscaixa').AsString:='true';
Contdados.Clientdscaixa.FieldByName('statuscaixa').AsString:='';
Contdados.Clientdscaixa.FieldByName('statuscaixa').Clear;
contdados.Clientdscaixa.Post;
showmessage('Caixa Aberto');

alguem pode me ajudar?
Jander Sales

Jander Sales

Responder

Post mais votado

26/02/2015

Buenos,

Neste trecho você marca como True quando o CheckBox1 estiver marcado, mas após isso o "clear" altera o valor para nulo.

if CheckBox1.Checked then
Contdados.Clientdscaixa.FieldByName('statuscaixa').AsBoolean:=true;
Contdados.Clientdscaixa.FieldByName('statuscaixa').Clear;  // remova essa linha.

Renato Rubinho

Renato Rubinho
Responder

Gostei + 1

Mais Posts

25/02/2015

Randrade

Qual a mensagem de erro?
Responder

Gostei + 0

25/02/2015

Jander Sales

clientdataset: dataset not in edit or insert mode.
E quando coloco ela em edição
field ' ' must have a value
Responder

Gostei + 0

25/02/2015

Jander Sales

consegui consertar os erros mais não altero nenhum registro na tabela

contdados.Clientdscaixa.Close;
contdados.Clientdscaixa.open;
contdados.Clientdscaixa.Insert;
contdados.Clientdscaixa.FieldByName('idcaixa').AsString:=Edit1.Text;
Contdados.Clientdscaixa.FieldByName('datacaixa').AsString:=Edit2.Text;
Contdados.Clientdscaixa.FieldByName('totalent').AsString:=Edit3.Text;
Contdados.Clientdscaixa.FieldByName('totalsaida').AsString:=Edit4.Text;
Contdados.Clientdscaixa.FieldByName('saldoinicial').AsString:=Edit5.Text;
Contdados.Clientdscaixa.FieldByName('saldofinal').AsString:=Edit6.Text;
contdados.Clientdscaixa.FieldByName('statuscaixa').AsBoolean:=CheckBox1.Checked=true;
contdados.Clientdscaixa.Post;
if contdados.Clientdscaixa.FieldByName('statuscaixa').AsBoolean=true then
showmessage('Caixa Aberto');
Responder

Gostei + 0

25/02/2015

Jander Sales

contdados.Clientdscaixa.Close;
contdados.Clientdscaixa.open;
contdados.Clientdscaixa.Insert;
contdados.Clientdscaixa.FieldByName('idcaixa').AsString:=Edit1.Text;
Contdados.Clientdscaixa.FieldByName('datacaixa').AsString:=Edit2.Text;
Contdados.Clientdscaixa.FieldByName('totalent').AsString:=Edit3.Text;
Contdados.Clientdscaixa.FieldByName('totalsaida').AsString:=Edit4.Text;
Contdados.Clientdscaixa.FieldByName('saldoinicial').AsString:=Edit5.Text;
Contdados.Clientdscaixa.FieldByName('saldofinal').AsString:=Edit6.Text;
contdados.Clientdscaixa.FieldByName('statuscaixa').AsBoolean:=CheckBox1.Checked=true;

if CheckBox1.Checked then
Contdados.Clientdscaixa.FieldByName('statuscaixa').AsBoolean:=true;
Contdados.Clientdscaixa.FieldByName('statuscaixa').Clear;
contdados.Clientdscaixa.Post;
showmessage('Caixa Aberto');

erro field statuscaixa must have value.
Responder

Gostei + 0

26/02/2015

Thiago Santana

Além do POST você irá precisar do COMMIT.
Responder

Gostei + 0

26/02/2015

Jander Sales

Como funciona o comando commit?
Responder

Gostei + 0

26/02/2015

Thiago Santana

É um método existente do seu clientDataSet.
Dependendo pode ser Commit ou ApplyUpdates!
Responder

Gostei + 1

26/02/2015

Itamar Souza

Jander
Você está desenvolvendo de uma forma que não é muito usada, você está deixando de lado o melhor que o Delphi lhe oferece.
O comando para inserir não é “contdados.Clientdscaixa.Edit;” é sim “Append”
Estas informações ficaria ao contrário:
Contdados.Clientdscaixa.FieldByName('idcaixa').AsString := edit1.Text;
Neste caso você está jogando o conteúdo do edit1 dentro do Clientdscaixa
Eu aconselho você buscar na internet uma forma melhor de desenvolver para que você possa evitar possíveis dores de cabeça. Pesquisa na internet “medeiros delphi” aprender a desenvolver de uma forma melhor é você vai entender com o tempo o porque você não deve fazer da forma que está fazendo.
att
Responder

Gostei + 0

26/02/2015

Jander Sales

rrubinho vlw tbm tirei a linha de codigo clear
Thiago Santana consegui usar o ApplyUpdates e funcionou!
vlw!
Responder

Gostei + 0

26/02/2015

Jander Sales

Itamar P Sousa mas:
Contdados.Clientdscaixa.FieldByName('idcaixa').AsString := edit1.Text;
não informando a tabela através do edit.
qual seria outra forma me dê um exemplo
vlw pela att!
Responder

Gostei + 0

26/02/2015

Jander Sales

Itamar P Sousa mas:
Contdados.Clientdscaixa.FieldByName(''idcaixa'').AsString := edit1.Text;
não estou informando a tabela através do edit.
qual seria outra forma me dê um exemplo
vlw pela att!
Responder

Gostei + 0

26/02/2015

Thiago Santana

rrubinho vlw tbm tirei a linha de codigo clear
Thiago Santana consegui usar o ApplyUpdates e funcionou!
vlw!


Que bom poder ter ajudado Jander!
Responder

Gostei + 0

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

Aceitar