NÃO CONSIGO SALVAR NA TABELA

Delphi

25/02/2015

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

Curtidas 0

Melhor post

Renato Rubinho

Renato Rubinho

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.
GOSTEI 1

Mais Respostas

Randrade

Randrade

25/02/2015

Qual a mensagem de erro?
GOSTEI 0
Jander Sales

Jander Sales

25/02/2015

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

Jander Sales

25/02/2015

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');
GOSTEI 0
Jander Sales

Jander Sales

25/02/2015

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.
GOSTEI 0
Thiago Santana

Thiago Santana

25/02/2015

Além do POST você irá precisar do COMMIT.
GOSTEI 0
Jander Sales

Jander Sales

25/02/2015

Como funciona o comando commit?
GOSTEI 0
Thiago Santana

Thiago Santana

25/02/2015

É um método existente do seu clientDataSet.
Dependendo pode ser Commit ou ApplyUpdates!
GOSTEI 1
Itamar Souza

Itamar Souza

25/02/2015

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
GOSTEI 0
Jander Sales

Jander Sales

25/02/2015

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

Jander Sales

25/02/2015

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!
GOSTEI 0
Jander Sales

Jander Sales

25/02/2015

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!
GOSTEI 0
Thiago Santana

Thiago Santana

25/02/2015

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


Que bom poder ter ajudado Jander!
GOSTEI 0
POSTAR