Fórum Não grava no banco com DateTimePiker #370884

31/05/2009

0

to tentando usar o datetimerpicker pela primeira vez, mas nao to conseguindo gravar no banco. Tenho um formulario e quero gravar a data selecionada neste componente. To usando o firebird, dbexpress. Abaixo o codigo:

no evento onchange do datetimerpicker:

procedure TfrmPrincipal.DateTimePicker1Change(Sender: TObject);
begin
DataModule1.ClientDataSet1.Edit;
DataModule1.ClientDataSet1DATA_ENTREGA.Value:= DateTimePicker1.Date;
DataModule1.ClientDataSet1.Post;
end;

Alguem me ajuda? Obrigado.


Caube

Caube

Responder

Posts

01/06/2009

Developer1978

Depois da linha DataModule1.ClientDataSet1.Post coloque
DataModule1.ClientDataSet1.ApplyUpdate(0);


Responder

Gostei + 0

01/06/2009

Caube

esse comando já existe quando eu clico em gravar.


Responder

Gostei + 0

01/06/2009

Developer1978

Fiz esse teste aqui com DBExpress e firebird e gravou normalmente.
procedure TFormCadProdutos.DateTimePicker1Change(Sender: TObject);
begin
DM.cds_Cad_Produtos.Edit;
DM.cds_Cad_ProdutosDTALT.AsDateTime := DateTimePicker1.Date;
DM.cds_Cad_Produtos.Post;
DM.cds_Cad_Produtos.ApplyUpdates(0);
end;

procedure TFormCadProdutos.btnGravarClick(Sender: TObject);
begin
if DM.cds_Cad_Produtos.State = dsEdit then
begin
DM.cds_Cad_ProdutosDTALT.AsDateTime := DateTimePicker1.Date;
DM.cds_Cad_Produtos.Post;
DM.cds_Cad_Produtos.ApplyUpdates(0);
end;
end;


Responder

Gostei + 0

03/06/2009

Henrique Rodrigues

tenho o mesmo problema, o pior é que tenho um exmplo de um livro aqui e funciona, mas no que eu fiz não.

faz o post mas não o update, conferi os componentes com os do expemplo que funciona e está tudo igual.


Responder

Gostei + 0

04/06/2009

Danielrsanches

tente verificar o comando ´update´ ou ´insert´ se este campo específico está incluso ...

abraço !!



Responder

Gostei + 0

05/06/2009

Henrique Rodrigues

dmreceitas.ClientDataSet1.insert;
dmreceitas.ClientDataSet1.Post;
dmreceitas.ClientDataSet1.ApplyUpdates(-1); //já tentei -1, 0, 1


Estão aí os comandos que usei, acho que não há nada errdo com eles, mas não sei o que o ocorre.


Responder

Gostei + 0

05/06/2009

Danielrsanches

digo o insert do seu clientdataset ... verifique o código SQL para inserir no banco de dados...
o comando ´dmreceitas.ClientDataSet1.insert´ nada mais é do que um comando que executa uma sequencia de comandos SQL ... o mesmo ocorre com o comando ´dmreceitas.ClientDataSet1.post´ ... e é esses comandos SQL que vc tem que verificar ...

espero q tenha entendido algo !! rsrsrsrs

qq coisa é só postar ...

abraço !!


Responder

Gostei + 0

05/06/2009

Woinch

Você por acaso não iniciou uma transação e esqueceu de dar Commit?


Responder

Gostei + 0

10/06/2009

Aroldo Zanela

Colega,

Tem como você colocar a sequência de componentes utilizados e as suas respectivas ligações?

Fiz um teste aqui com Delhi 6 Pro e FB 2.1 e funcionou normalmente:

/*==============================================================*/
/* Table: PEDIDO                                                */
/*==============================================================*/
create table PEDIDO (
PEDI_ID              INTEGER                        not null,
PEDI_ENTREGA         DATE                           not null,
constraint PK_PEDIDO primary key (PEDI_ID)
);


Por crença, utilizei o OnCloseUp:

[code]
procedure TForm1.cds1AfterPost(DataSet: TDataSet);
begin
cds1.ApplyUpdates(0);
end;

procedure TForm1.cds1AfterDelete(DataSet: TDataSet);
begin
cds1.ApplyUpdates(0);
end;

procedure TForm1.dtp1CloseUp(Sender: TObject);
begin
cds1.Append;
cds1PEDI_ID.Value := 1;
cds1PEDI_ENTREGA.Value := dtp1.DateTime;
cds1.Post;
end;
[/code;


Responder

Gostei + 0

10/06/2009

Aroldo Zanela

Colega,

Tem como você colocar a sequência de componentes utilizados e as suas respectivas ligações?

Fiz um teste aqui com Delhi 6 Pro e FB 2.1 e funcionou normalmente:

/*==============================================================*/
/* Table: PEDIDO                                                */
/*==============================================================*/
create table PEDIDO (
PEDI_ID              INTEGER                        not null,
PEDI_ENTREGA         DATE                           not null,
constraint PK_PEDIDO primary key (PEDI_ID)
);


Por crença, utilizei o OnCloseUp:

[code]
procedure TForm1.cds1AfterPost(DataSet: TDataSet);
begin
cds1.ApplyUpdates(0);
end;

procedure TForm1.cds1AfterDelete(DataSet: TDataSet);
begin
cds1.ApplyUpdates(0);
end;

procedure TForm1.dtp1CloseUp(Sender: TObject);
begin
cds1.Append;
cds1PEDI_ID.Value := 1;
cds1PEDI_ENTREGA.Value := dtp1.DateTime;
cds1.Post;
end;
[/code;


Responder

Gostei + 0

10/06/2009

Aroldo Zanela

Colega,

Tem como você colocar a sequência de componentes utilizados e as suas respectivas ligações?

Fiz um teste aqui com Delhi 6 Pro e FB 2.1 e funcionou normalmente:

/*==============================================================*/
/* Table: PEDIDO                                                */
/*==============================================================*/
create table PEDIDO (
PEDI_ID              INTEGER                        not null,
PEDI_ENTREGA         DATE                           not null,
constraint PK_PEDIDO primary key (PEDI_ID)
);


Por crença, utilizei o OnCloseUp:

procedure TForm1.cds1AfterPost(DataSet: TDataSet);
begin
  cds1.ApplyUpdates(0);
end;

procedure TForm1.cds1AfterDelete(DataSet: TDataSet);
begin
  cds1.ApplyUpdates(0);
end;

procedure TForm1.dtp1CloseUp(Sender: TObject);
begin
  cds1.Append;
  cds1PEDI_ID.Value := 1;
  cds1PEDI_ENTREGA.Value  := dtp1.DateTime;
  cds1.Post;
end;
;


Responder

Gostei + 0

10/06/2009

Henrique Rodrigues

Fiz uma coisa que funcionou.

No SQLDataSet o comando sql coloqueis os campos ao invés de ´*´ e funcionou. mas...


na mesma tabela tem um campos para colocar imagem, aí quando eu insiro um registro sem a imagem ele funciona, se eu colocar a imagem ele não registro no banco.


Usando o componente OpenPictureDialog. Usei um modelo ue tenho aqui

IF OpenPictureDialog1.execute then
   Begin
    imagem:=Tpicture.create();
    imagem.loadfromfile(OpenPictureDialog1.filename);
     clipboard.Assign(imagem);
     DBImage1.PasteFromClipboard;
    imagem.Free;
   end;



Responder

Gostei + 0

10/06/2009

Henrique Rodrigues

testei de novo, só a foto que não vai, está estranho, pq a cada momento ele se comporta de uma maneira


Responder

Gostei + 0

10/06/2009

Henrique Rodrigues

outra dúvida, nesse mesmo form, que é aberto em showmodal, quando chamo a caixa abrir imagem ela abre atrás do form.


Responder

Gostei + 0

11/06/2009

Danielrsanches

IF OpenPictureDialog1.execute then Begin imagem:=Tpicture.create(); imagem.loadfromfile(OpenPictureDialog1.filename); clipboard.Assign(imagem); DBImage1.PasteFromClipboard; imagem.Free; end;


porque vc não carrega direto no dbimage ???

IF OpenPictureDialog1.execute then 
   Begin 
        dbimage1.Picture.LoadFromFile(OpenPictureDialog1.filename); 
   end;


abraços !!!


Responder

Gostei + 0

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

Aceitar