Nesta parte do artigo vou exibir um pequeno tutorial sobre como criar uma tela de cadastro. Devo lembrar que nestes tutoriais explano apenas o básico para o funcionamento do cadastro, deixando os detalhes para cada um fazer da maneira que achar melhor.

 

Primeiramente crie uma tela parecida com a da figura abaixo.




O componente TDataSource (DataDados), deverá estar ligado ao componente TClientDataSet do Data Module criado anteriormente, pois ele será o canal entre os campos da tela criada com os componentes de conexão com o banco de dados. Para efetuar esta ligação, basta indicar na propriedade “Dataset” do componente TDataSource o componente TCientDataSet.

 

O Data Module deverá estar informado na clausula uses do formulário, para que seja possível esta ligação. Veja o exemplo:

 

var

  Form1: TForm1;

 

implementation

 

Uses DataModulo;

 

{$R *.dfm}

 

Efetue a ligação dos campos do formulário com os campos da tabela do banco de dados através das propriedades “DataSource” e “DataField” de cada campo. Veja figura:




Agora vamos codificar os botões do formulário da seguinte forma:

 

Botão Incuir:

 

  DataDados.DataSet.Append;

  DbID.SetFocus;

 

Botão Confirmar

 

  DM.Grava_Dados;

 

Observação: Abaixo estará os códigos da procedure “Grava_Dados”.

 

Botão cancelar

 

  DataDados.DataSet.Cancel;

 

Botão Excluir

 

  if MessageDlg('Confirma Exclusão?',mtConfirmation,[mbYes,mbno],0) = mrYes then

     DataDados.DataSet.Delete;

 

Botão Fechar

 

  if (DataDados.DataSet.State in [dsInsert, dsEdit]) then

  begin

    ShowMessage('É necessário Conformar ou cancelar os dados!');

    Abort;

  end;

  Close;

 

No evento OnShow do formulário adicione o seguinte código:

 

  DataDados.DataSet := DM.CdsDados;

  DM.AbreTabela(0);

 

E no evento OnClose adicione o código:

 

  DataDados.DataSet.Close;

 

No Data Module crie as procedures:

 

procedure TDM.IniciaTransacao;

begin

  Transc.TransactionID  := Random(65635);

  Transc.IsolationLevel :=  xilREADCOMMITTED;

  SQLConnection1.StartTransaction(Transc);

end;

 

procedure TDm.Grava_Dados;

begin

  Randomize;

  IniciaTransacao;

  if CdsDados.Active then

  begin

    if (CdsDados.State in [dsInsert,dsEdit]) then

       CdsDados.Post;

    if (CdsDados.ChangeCount > 0) then

       CdsDados.ApplyUpdates(0);

  end;

  SQLConnection1.Commit(Transc);

 

end;

 

procedure TDM.AbreTabela(pID: Integer);

begin

  CdsDados.Close;

  CdsDados.Params.ParamByName('pID').AsInteger := pID;

  CdsDados.Open;

 

end;

 

Será necessário criar uma variável privada para auxiliar as rotinas de gravação dos dados no banco de dados:

 

    Transc: TTransactionDesc;

 

Com isso concluímos a criação da tela de cadastro. Qualquer dúvida, postem os comentários.