Inserir dados automaticamente
Alguém sabe me dizer como faço para que um campo de minha tabela receba a data do sistema automaticamente, ou seja, quando eu cadastrar um cliente fique gravado a data (do sistema) em que ele foi cadastrado.
Também como faço para que um campo dessa mesma tabela o código do cliente seja gravado automaticamente.
Também como faço para que um campo dessa mesma tabela o código do cliente seja gravado automaticamente.
Denysk
Curtidas 0
Respostas
Ilanocf
17/07/2003
No evento OnClick do botão Novo:
Crie uma variável:
Vamos supor q o campo q vc quer q conte automático se chame CodigoDoCadastro e o campo q vc quer q seja inserida a data se chame DataDoCadastro.
procedure TForm1.Button1Click(Sender: TObject);
Var
VCodigo:Integer;
begin
Tabela.Last;
VCodigo:=TabelaCodigoDoCadastro.Value + 1;
Tabela.Append;
TabelaCodigoDoCadastro.Value:=VCodigo;
TabelaDataDoCadastro.Text:=DateToStr(Date);
end;
Crie uma variável:
Vamos supor q o campo q vc quer q conte automático se chame CodigoDoCadastro e o campo q vc quer q seja inserida a data se chame DataDoCadastro.
procedure TForm1.Button1Click(Sender: TObject);
Var
VCodigo:Integer;
begin
Tabela.Last;
VCodigo:=TabelaCodigoDoCadastro.Value + 1;
Tabela.Append;
TabelaCodigoDoCadastro.Value:=VCodigo;
TabelaDataDoCadastro.Text:=DateToStr(Date);
end;
GOSTEI 0
Midas
17/07/2003
No evento OnClick do botão Novo:
Crie uma variável:
Vamos supor q o campo q vc quer q conte automático se chame CodigoDoCadastro e o campo q vc quer q seja inserida a data se chame DataDoCadastro.
procedure TForm1.Button1Click(Sender: TObject);
Var
VCodigo:Integer;
begin
Tabela.Last;
VCodigo:=TabelaCodigoDoCadastro.Value + 1;
Tabela.Append;
TabelaCodigoDoCadastro.Value:=VCodigo;
TabelaDataDoCadastro.Text:=DateToStr(Date);
end;
CORRIGINDO A ULTIMA LINHA
editdatacadastro.text:=date();
tabeladatadocadastro.value:=strtodate(editdatacadastro.text);
GOSTEI 0
Jairroberto
17/07/2003
Olá, amigo!
É bastante aconselhado que este tipo de ação faça parte das rotinas que compõem as regras de acesso ao banco de dados no seu aplicativo. Sendo assim, uma solução adequada seria executar estas ações no evento BeforePost da tabela, que ocorre imediatamente antes da tentativa do sistema de gravar as informações do registro que está sendo incluído ou editado no banco de dados. Veja um exemplo:
Observe que, no exemplo, ´NovoCodigo´ pode ser uma propriedade ou função onde é calculado o novo código para o novo registro da tabela a partir de uma tabela ´sombra´ ou de um SELECT ou Stored Procedure.
Veja que calculando o código no momento da gravação, o risco de ocorrer um erro por tentar incluir dois códigos iguais em um ambiente de rede com dois ou mais usuário simultâneos são bem menores do que se o código for gerado logo no início do processo de inclusão. Há também a vantagem de você gerar este código em um Data Module, sendo que qualquer formulário que usar o Data Module e fizer uma inclusão não terá que conter nenhum código de tratamento desta mesma situação, pois todos estarão seguindo a mesma ´Regra de Negócio´ do banco de dados.
A propósito, em bancos de dados SGDB, como o Firebird ou Interbase, este tipo de ação pode ser realizada por Triggers dentro do próprio banco, o que é ainda mais recomendado.
Um abraço,
Jair
É bastante aconselhado que este tipo de ação faça parte das rotinas que compõem as regras de acesso ao banco de dados no seu aplicativo. Sendo assim, uma solução adequada seria executar estas ações no evento BeforePost da tabela, que ocorre imediatamente antes da tentativa do sistema de gravar as informações do registro que está sendo incluído ou editado no banco de dados. Veja um exemplo:
procedure TForm1.Table1BeforePost(DataSet: TDataSet); begin if Table1.State = dsInsert then Table1DataHoraCadastro.Value := Now; if Table1Codigo.IsNull then Table1Codigo.Value := NovoCodigo; end;
Observe que, no exemplo, ´NovoCodigo´ pode ser uma propriedade ou função onde é calculado o novo código para o novo registro da tabela a partir de uma tabela ´sombra´ ou de um SELECT ou Stored Procedure.
Veja que calculando o código no momento da gravação, o risco de ocorrer um erro por tentar incluir dois códigos iguais em um ambiente de rede com dois ou mais usuário simultâneos são bem menores do que se o código for gerado logo no início do processo de inclusão. Há também a vantagem de você gerar este código em um Data Module, sendo que qualquer formulário que usar o Data Module e fizer uma inclusão não terá que conter nenhum código de tratamento desta mesma situação, pois todos estarão seguindo a mesma ´Regra de Negócio´ do banco de dados.
A propósito, em bancos de dados SGDB, como o Firebird ou Interbase, este tipo de ação pode ser realizada por Triggers dentro do próprio banco, o que é ainda mais recomendado.
Um abraço,
Jair
GOSTEI 0
R3yz0r
17/07/2003
æ faz o seguinte quando for pra salvar ou mostrar ou sei la oq:
[b:1a05355df2]variével:=timetostr(time); [/b:1a05355df2]//hora do sistema
[b:1a05355df2]variável:=datetostr(date); [/b:1a05355df2]//data do sistema
simples rapido e eficiente
tu pode por exemplo adicionar diratemante a propriedade *.value do caompo desejado que funciona.
Falow e boas compilações!! :)
[b:1a05355df2]variével:=timetostr(time); [/b:1a05355df2]//hora do sistema
[b:1a05355df2]variável:=datetostr(date); [/b:1a05355df2]//data do sistema
simples rapido e eficiente
tu pode por exemplo adicionar diratemante a propriedade *.value do caompo desejado que funciona.
Falow e boas compilações!! :)
GOSTEI 0
Denysk
17/07/2003
æ galera valeu mesmo, deu certo, funcionou direitinho como eu queria!
Brigadão.
Brigadão.
GOSTEI 0