var
kadi,ksifre:string;
akpa:integer;
begin
ADOQUERY1.Close;
adoquery1.SQL.Text:='select * from KULLANICIGIRIS where kadi='''+edit1.Text+''' and sifre='''+edit2.Text+''' and DURUM='''+edit3.Text+'''';
adoquery1.Open;
BEGIN
//if ADOQuery1.Fields[3].AsString='YÖNETİCİ'THEN
if adoquery1.RecordCount=1 then
begin
//id:=adoquery1.Fields[0].AsString;
//kadi:=adoquery1.Fields[1].AsString;
//ksifre:=adoquery1.Fields[2].AsString;
form10.CLOSE;
FORM5.SpeedButton5.Visible:=TRUE;
FORM5.SpeedButton3.Visible:=FALSE;
end;
END;
if adoquery1.RecordCount=0 then
begin
ShowMessage('YÖNETİCİ ADI VEYA ŞİFRE YANLIŞ.....');
FORM10.Close;
FORM5.SpeedButton3.Visible:=TRUE;
FORM5.SpeedButton5.Visible:=FALSE;
end;
end;
bu kodlma buton clik olayında ve closed dataset hatası veriyor neden olabilir. Adoquery ler active:=true formun acılısında ama closed dataset diyor.
kodlamanda ikinci begin ni anlayamadım. form10 close demişsin bu formun close olayında query kapanmış olabilirmi. end; end; ile blokları kapatmışsın sonra gelen if yüzünden kapalı diyor olabilirmi. biraz kafama takıldı da. bende uygulamamda yetkiye göre bazı butonları enable:=false yapıyorum ve düzgün çalışıyor o yüzden sizin kodlama kafamı karıştırdı biraz.
procedure TFrmSplash.suiButton1Click(Sender: TObject);
begin
dm1.PrgGirisADOQry.Close;
dm1.PrgGirisADOQry.SQL.Clear;
dm1.PrgGirisADOQry.SQL.Add('select*from PRG_YETKI');
dm1.PrgGirisADOQry.SQL.Add('where KULLANICI_ADI='''+edit1.Text+''' and SIFRE='''+edit2.Text+'''');
dm1.PrgGirisADOQry.Open;
if dm1.PrgGirisADOQry.RecordCount >0 then
begin
frmmenu.show;
frmsplash.Hide;
frmmenu.WindowState:=wsmaximized;
frmmenu.suiForm1.Caption:=' Ana Menü ::: proPersonel - Kullanıcı : '+
dm1.PrgGirisADOQry.fieldbyname('ADI_SOYADI').AsString;
if dm1.PrgGirisADOQry.FieldByName('SEVIYE').AsInteger=1 then
begin
frmmenu.suiButton13.Enabled:=false;
end;
if dm1.PrgGirisADOQry.FieldByName('SEVIYE').AsInteger=2 then
begin
frmmenu.suiButton1.Enabled:=false;
frmmenu.suiButton13.Enabled:=false;
frmmenu.suiButton14.Enabled:=false;
frmmenu.suiButton15.Enabled:=false;
end;
end
else
begin
application.MessageBox('Hatalı Kullanıcı Adı/Şifre Lütfen Kontrol Edip Tekrar Deneyiniz',
'Giriş Hatası', MB_OK+MB_ICONWARNING);
edit1.Clear;
edit2.Clear;
edit1.SetFocus;
end;
end;
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
Kodun başlangıcına kesme (break point)-F5 koyup, nerede, hangi satırda takıldığını takip edebilirsiniz. Ayrıca kodlamanız da pek düzenli değil. Bloklamaya dikkat etmemişsiniz. adoquery1.Open; altındaki BEGIN fazlalık gibi durmakta. Velahsılı okunaklı olması hatayı yakalamak için ve daha sonra kodu incelediğinizde daha kolay anlamanız için olmazsa olmazlardan