sexta-feira, 29 de junho de 2007

Rotina em DELPHI para inserção de Tuplas


O artefato de software abaixo descreve uma rotina de inserção de uma nova Turma na tabela de Turmas. Quando o usuário escolhe inserir uma nova Turma por meio de um botão adequado, a inserção de fato somente é confirmada se o sistema retorna um Boolean "Verdadeiro" para a operacção denominada "Tuma inserida com sucesso". Caso contrário, trata-se a exceção e mantém-se a interface para as devidos ajustes. Veja abaixo:

//------------------------------------------------------------------------------
function TF_Turmas.Alx_Turma_Inserido_Com_Sucesso(): Boolean;
var
alx_str_sql_texto : TStrings;
alx_boo_apoio : Boolean;
alx_int_turma_id : Integer;
alx_str_turma_apelido : String;
alx_str_turma_nome : String;
begin
alx_str_sql_texto:= TStringList.Create();
try
alx_int_turma_id := self.Alx_Get_Turma_Id();
alx_str_turma_apelido:= self.Edit2.Text;
alx_str_turma_nome := self.Edit3.Text;
//-----------------------------------------------
alx_str_sql_texto.Add('INSERT INTO TURMAS VALUES ( :, :, : ) ');
F_Data_Module.ADOQuery_Cadastro_Turmas.Active:= False;
F_Data_Module.ADOQuery_Cadastro_Turmas.SQL:= alx_str_sql_texto;
F_Data_Module.ADOQuery_Cadastro_Turmas.Parameters[0].Value:= alx_int_turma_id;
F_Data_Module.ADOQuery_Cadastro_Turmas.Parameters[1].Value:= alx_str_turma_apelido;
F_Data_Module.ADOQuery_Cadastro_Turmas.Parameters[2].Value:= alx_str_turma_nome;
F_Data_Module.ADOQuery_Cadastro_Turmas.ExecSQL;
//------------------------------------------------
alx_str_sql_texto.Clear();
alx_str_sql_texto.Add('SELECT * FROM TURMAS ORDER BY TURMA_NOME ');
F_Data_Module.ADOQuery_Cadastro_Turmas.SQL:= alx_str_sql_texto;
F_Data_Module.ADOQuery_Cadastro_Turmas.Active:= True;
//------------------------------------------------
self.Alx_Turma_Set_Focus(alx_int_turma_id);
self.Alx_Atualizar_Turma();
alx_boo_apoio:= True;
except
on E: Exception do
begin
alx_str_sql_texto.Clear();
alx_str_sql_texto.Add('SELECT * FROM TURMAS ORDER BY TURMA_NOME ');
F_Data_Module.ADOQuery_Cadastro_Turmas.SQL:= alx_str_sql_texto;
F_Data_Module.ADOQuery_Cadastro_Turmas.Active:= True;
self.Alx_Atualizar_Turma();
showmessage('Ôpa, ocorreu um erro ao INSERIR um novo Turma! Veja: ' + E.Message);
alx_boo_apoio:= False;
end;
end;
result:= alx_boo_apoio;
end;
//---------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------
procedure TF_Turmas.Alx_Preparar_Para_Inserir();
begin
if(self.BitBtn1.Caption = 'inserir') then
begin
self.Alx_Limpar_Caixas_Texto_Turma(); //...limpar as caixas de texto
self.Alx_Liberar_Componentes_Para_Insercao(True); //...libera o groupbox das caixas de texto
self.BitBtn1.Caption:= 'salvar';
end
else if( (self.BitBtn1.Caption = 'salvar') and (self.Alx_Turma_Inserido_Com_Sucesso()) ) then
begin
self.Alx_Liberar_Componentes_Para_Insercao(False);
self.BitBtn1.Caption:= 'inserir';
end;
end;
//------------------------------------------------------------------------------

A interface se Turmas é apresentada abaixo:

Nenhum comentário: