Erros

Delphi

12/08/2003

Boa tarde pessoal,
estou com duas dúvidas e ficaria grato se vcs me ajudassem..
A primeira é a seguinte..
tenho um formulario de login em que digito a senha .. ele abre um formulário principal.. tenho nele varios menus..
qdo clico por exemplo em cadastro de clientes ele me abre o referido formulário em showmodal, qdo fecho este formulario(no evento onclose do formulario (action:=cafree;) ele volta o controle para o formulário principal, acontece que se eu tento abrir novamente o formulario cadastro de clientes, ele me dá erro de violação... não queria que esse formulário principal fosse do tipo mdiform.. onde está meu erro..

o outro erro é qdo eu quero inserir um registro eu tento verificar se o código já existe, mas sempre dá que já existe mesmo não tendo nenhum registro..
meu código.
if edcodass.Text <> ´´ then
begin
if not dtmd.Local.Locate(´CodLocal´,edcodlocal.text,[]) then
begin
dtmd.Assistente.Post;
dtmd.dsassistente.AutoEdit:= false;
btnincluir.Enabled:= true;
btnexcluir.Enabled:= true;
btnalterar.Enabled:= true;
btnsair.visible:= true;
navassistente.Enabled:= true;
btnabortar.Enabled:= false;
btngravar.visible:= false;
edcodass.SetFocus;
end
else
begin
application.MessageBox(´Código já existente. Tente outro!´,´Alerta!´,mb_ok+mb_iconerror);
edcodlocal.Text:= ´´;
edcodlocal.SetFocus;
end;

end
else
begin
application.MessageBox(´Preencha o campo Código do Assistente.´,´Alerta!´,mb_ok+mb_iconerror);
edcodass.SetFocus;
end;
end;


Eric.miranda

Eric.miranda

Curtidas 0

Respostas

Joilson_gouveia

Joilson_gouveia

12/08/2003

Bom,
O Primeiro ERRO:
- Se vc usou ACTION := CAFREE, o form foi totalmente eliminado da memória. Nesse caso, vc deve recriá-lo:
(SeuForm) := T(SeuForm).Create(self)
(SeuForm).ShowModal;

O Segundo ERRO:
- Verifique se o tipo de dado de codpass não é um inteiro e vc não está passando um string para pesquisa;
- Eu sugiro trocar por uma função de pesquisa em SQL, com parãmetro = codpass, cfe exemplo abaixo:
function ExisteCodPass(Cod:Integer):Boolean;
var
qry:TQuery;
begin
qry := TQuery.Create(self);
qry.DataBaseName := seudatabasename;
qry.SQL.Text := ´SELECT CODPASS FROM TB1 WHERE CODPASS=:CODPASS´;
qry.ParamByName(´CODPASS´).AsInteger := Cod;
qry.Open;
if qry.FieldByName(´CODPASS´).IsNull then
Result := false
else
Result := True //Registro Existe!
qry.Close;
qry.Free;
end;


GOSTEI 0
POSTAR