Fórum Como faço inserção/browse? #355221
12/03/2008
0
Sl4sh
Curtir tópico
+ 0Posts
12/03/2008
Edineidaniel
Bom vamos aos passos...
1 - Ter um função boolean que consulte no banco de dados se o código já exista e retorne True ou False...
2 - Conforme o Resultado da função, vc pode definir o que o sistema deverá executar, carregar todos os registros ou iniciar um formulário em branco para inserir...
Quais os componentes que vc está utilizando?
Qual o banco de vc usa?
t+
Edinei
Gostei + 0
12/03/2008
Sl4sh
Estou usando o Firebird com os componentes IB, IBTable, IBDatabase etc...
Gostei + 0
12/03/2008
Sl4sh
Gostei + 0
12/03/2008
Jpauloss
Uso o DBExpress com FireBird 2.0
Uso o IsEmpty para verificar se o código já existe. Vai Aí um exemplo de como eu faço
procedure TF_MATERIAIS.codExit(Sender: TObject); begin dm.sdsMaterial.Close; dm.sdsMaterial.CommandText:=´select * from MATERIAL where cod_ordenado= :pcod_ordenado´; dm.sdsMaterial.ParamByName(´pcod_ordenado´).AsString:=cod.Text; dm.sdsMaterial.Open; if not dm.sdsMaterial.IsEmpty then begin descricao.Text:=dm.sdsMaterial.FieldByName(´descricao´).AsString; un.Text:=dm.sdsMaterial.FieldByName(´un´).AsString; unitario.Text:=dm.sdsMaterial.FieldByName(´preco_unitario´).AsString; ShowMessage(´Código já existente! Tente Outro!´); LimparClick(Sender); cod.SetFocus; end else qualquer coisa.........
Tente aí e me diga.
Gostei + 0
12/03/2008
Hall 9000
pode ser assim:
function CampoChaveExiste(pIBDtBase: TIBDatabase; pCod: string): Boolean;
var qry: TIBQuery; // declare na 1ª cláusula uses a unit IBQuery;
begin
try
Result:= True;
qry:= TIBQuery.Create(Nil);
qry.Database:= pIBDtBase;
with qry do
begin
qry.close;
qry.SQL.Clear;
qry.SQL.Add(´ SELECT ´);
qry.SQL.Add(´ CODIGO ´);
qry.SQL.Add(´ FROM CLIENTE ´);
qry.SQL.Add(´ WHERE CODIGO = ´+pCod);
qry.Open;
end;
finally
if qry.IsEmpty then
Result:= False;
qry.close;
qry.Free;
end;
end;
Aí vc coloca um Edit (não dbEdit) para o campo chave e no OnExit desse EDIT vc chama a função:
procedure TForm1.EditCodigoExit(Sender: TObject);
begin
if CampoChaveExiste(IBDatabase1, EditCodigo.Text) then
begin
// já existe o código digitado.
// faz uma consulta do codigo digitado no edit.
end
else
begin
// NÃO existe o código digitado.
// coloca a query em estado de Inserção
end;
end;
Espero que ajude..
Gostei + 0
13/03/2008
Sl4sh
é que quando no campo chave eu coloco um valor inexistente automaticamente muda o status pra insert... mas ja quando eu coloco um código já existente ele muda pra edit... mas na verdade era pra continuar browser.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)