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.