Não vi se por um acaso alguém já postou essa dica, mas todo caso...
Gravar dados de um form automaticamente em uma tabela
Ps.: Parâmetros são o nome da tabela, nome do índice e o formulário usado. As TEdits também tem que ter o mesmo nome dos campos, depois dos dois primeiros caracteres (Nome da edit = 'edNome', campo da tabela = 'Nome').
Ps2: Neste caso, estou usando tabelas DBaseIV e TEdits, não TDBEdits. Porém creio que esta procedure possa ser ajustada para outras necessidades. Caso alguém tenha algum comentário ou correção, por favor, me digam!
procedure PGravaDados(tabela:ttable; indice:string; formulario:tform);
Var
i: Integer;
nome:string;
begin
pabretabela(tabela, indice);
{Inclusao}
if OpGrava='inclui' then
begin
if tabela.State<>dsInsert then tabela.Insert;
for i := 0 to formulario.ComponentCount - 1 do
if (formulario.Components[i] is TCustomEdit) then
begin
nome:=copy((formulario.Components[i] as TCustomEdit ).name,3,
length((formulario.Components[i] as TCustomEdit).name));
try
tabela[nome]:=(formulario.Components[i] as TCustomEdit).Text
except
on EDatabaseError do end;
end;
end
{Alteracao}
else if OpGrava='altera' then
begin
if tabela.State<>dsEdit then tabela.edit;
for i := 0 to formulario.ComponentCount -1 do
if (formulario.Components[i] is TCustomEdit) then
begin
nome:=copy((formulario.Components[i] as TCustomEdit).name,3,
length((formulario.Components[i] as TCustomEdit).name));
try
tabela[nome]:=(formulario.Components[i] as TCustomEdit).Text;
except
on Exception do end;
end;
end;
{Tentativa de post na tabela}
try
begin
tabela.Post;
tabela.indexname:='';
DbiSaveChanges(tabela.Handle);
MessageBeep(0);
end
except
on Exception do
begin
application.messagebox('Dados não puderam gravados.', 'Erro', MB_ICONERROR);
exit;
end
end;
end;
Pergunta
Solid Snake
Olá!
Não vi se por um acaso alguém já postou essa dica, mas todo caso...
Gravar dados de um form automaticamente em uma tabela
Ps.: Parâmetros são o nome da tabela, nome do índice e o formulário usado. As TEdits também tem que ter o mesmo nome dos campos, depois dos dois primeiros caracteres (Nome da edit = 'edNome', campo da tabela = 'Nome').
Ps2: Neste caso, estou usando tabelas DBaseIV e TEdits, não TDBEdits. Porém creio que esta procedure possa ser ajustada para outras necessidades. Caso alguém tenha algum comentário ou correção, por favor, me digam!
Abs[]
Snake.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.