adoquery de seçim esnasında olmayan dbedit nesne hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

adoquery de seçim esnasında olmayan dbedit nesne hatası

Mesaj gönderen kazimates »

selamlar, data modulde adoconnection, datasource ve adoquery ile modulumu kurdum bu arada aşağıdaki koda bakacak olursanız ve dbgrid in üzerinde çift tıklarsak bizlere hata veriyor. bu hatayı bir türlü çözemiyorum hata bendemi yoksa delphidemi analayamadım. dikkat edecek olursanız formda DBedit1 diye bir nesne yok vardı sildim ama o ısrarla bunu bulmaya çalışıyor. bu arada hatayı verdikten sonra cursor querynin altında showmessage('TEST22222222222'); kodunda bekliyor.

sağlık, başarı ve mutluluk dileklerimle...

Resim

Resim

Kod: Tümünü seç

unit DoktorHesapSecim;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrls, ExtCtrls, Grids, DBGrids;

type
  TDoktorHesapSecimForm = class(TForm)
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  DoktorHesapSecimForm: TDoktorHesapSecimForm;

implementation
uses AnaMenu, DM, DoktorTanimlama;

{$R *.dfm}

procedure TDoktorHesapSecimForm.FormCreate(Sender: TObject);
begin
   Dm1.ADOQDOKTOR.Active:=True;
   DM1.ADOQDOKTOR.First;

   DM1.ADOQCARI.Active:=True;
   DM1.ADOQCARI.First;

   DM1.ADOQBRANS.Active:=True;
   DM1.ADOQBRANS.First;

   DbGrid1.Refresh;
end;

procedure TDoktorHesapSecimForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
   Action:=caFree;
   DoktorHesapSecimForm:=Nil;
end;

procedure TDoktorHesapSecimForm.DBGrid1DblClick(Sender: TObject);
var
   carihesun:string;
begin
Edit2.Text:=Dm1.ADOQDOKTOR.fieldbyname('CARIHESAPKODU').AsString;

showmessage('TEST');

   with Dm1.ADOQCari do
   begin
      close;
      sql.Clear;
      sql.add('select CARIHESAPUNVANI as cariun from CARI where CARIHESAPKODU=:carhes');
      Parameters.ParamByName('carhes').value:= Edit2.text;
      if not Prepared then
            Prepared;

       Active :=True;


   end;

   showmessage('TEST22222222222');

   Edit3.text:=Dm1.adoqcari.fieldbyname('cariun').Value;


   DoktorTanimlamaForm.EKayitID.Text:=Dm1.ADOQDoktor.FieldByName('KAYITID').AsString;
   DoktorTanimlamaForm.EKodu.Text:=Dm1.ADOQDoktor.FieldByName('DOKTORHESAPKODU').AsString;
   DoktorTanimlamaForm.EUnvani.Text:=Dm1.ADOQDoktor.FieldByName('DOKTORHESAPUNVANI').asstring;
   DoktorTanimlamaForm.EDiplomaNo.Text:=Dm1.ADOQDoktor.FieldByName('DIPLOMANO').Asstring;
   DoktorTanimlamaForm.ESicilNo.Text:=Dm1.ADOQDoktor.FieldByName('SICILNO').AsString;




   DoktorTanimlamaForm.CBCHUnvani.Text:=Dm1.ADOQCari.fieldbyname('cariun').asstring;
   DoktorTanimlamaForm.ECariHesKodu.Text:=Dm1.ADOQDOKTOR.FieldByName('CARIHESAPKODU').AsString;

   with Dm1.ADOQBrans do
   begin
      close;
      sql.Clear;
      sql.add('select BRANSADI as bransi from BRANSTANIM where BRANSKODU=:bran');
      Parameters.ParamByName('bran').value:=Dm1.ADOQDOKTOR.FieldByName('BRANSID').AsString;
      Prepared:=True;
      active:=true;
   end;

   DoktorTanimlamaForm.CBBransIsmi.Text:=Dm1.ADOQBrans.fieldbyname('bransi').AsString;
   DoktorTanimlamaForm.EBransKodu.Text:=Dm1.ADOQDoktor.FieldByName('BRANSID').AsString;

   with Dm1.ADOQUnite do
   begin
      close;
      sql.Clear;
      sql.add('select UNITEADI as unitesi from UNITETANIM where UNITEKODU=:un');
      Parameters.ParamByName('un').value:=Dm1.ADOQDoktor.FieldByName('UNITEID').Asstring;
      Prepared:=True;
      active:=True;
   end;
   DoktorTanimlamaForm.CBUniteIsmi.Text:=Dm1.ADOQUnite.fieldbyname('unitesi').AsString;

   DoktorTanimlamaForm.EUniteKodu.Text:=Dm1.ADOQDoktor.FieldByName('UNITEID').AsString;

   with Dm1.ADOQSagKur do
   begin
      close;
      sql.Clear;
      sql.add('select SAGLIKKURADI as skadi from SAGLIKKURULUSUTANIM where SAGLIKKURKODU=:skkodu');
      Parameters.ParamByName('skkodu').value:=Dm1.ADOQDoktor.FieldByName('SAGLIKKURULUSID').AsString;
      Prepared:=True;
      active:=true;
   end;

   DoktorTanimlamaForm.CBSagKurUnvani.Text:=Dm1.ADOQSagKur.fieldbyname('skadi').AsString;
   DoktorTanimlamaForm.EKurulusKodu.Text:=Dm1.ADOQDoktor.FieldByName('SAGLIKKURULUSID').AsString;

   DoktorTanimlamaForm.EVergiDairesi.Text:=Dm1.ADOQDoktor.FieldByName('VERGIDAIRESI').AsString;
   DoktorTanimlamaForm.EVergiNo.Text:=Dm1.ADOQDoktor.FieldByName('VERGINOSU').AsString;
   DoktorTanimlamaForm.EAdres1.Text:=Dm1.ADOQDoktor.FieldByName('ADRES1').AsString;
   DoktorTanimlamaForm.EAdres2.Text:=Dm1.ADOQDoktor.FieldByName('ADRES2').AsString;
   DoktorTanimlamaForm.EIlcesi.Text:=Dm1.ADOQDoktor.FieldByName('ILCE').AsString;
   DoktorTanimlamaForm.EIli.Text:=Dm1.ADOQDoktor.FieldByName('ILI').AsString;
   DoktorTanimlamaForm.EPostaKodu.Text:=Dm1.ADOQDoktor.FieldByName('POSTAKODU').AsString;
   DoktorTanimlamaForm.EIsTel.Text:=Dm1.ADOQDoktor.FieldByName('TELEFON1').AsString;
   DoktorTanimlamaForm.EEvTel.Text:=Dm1.ADOQDoktor.FieldByName('TELEFON2').AsString;
   DoktorTanimlamaForm.ECepTel.Text:=Dm1.ADOQDoktor.FieldByName('CEPTEL').AsString;
   DoktorTanimlamaForm.EFaxNo.Text:=Dm1.ADOQDoktor.FieldByName('FAX').AsString;
   DoktorTanimlamaForm.EEMail.Text:=Dm1.ADOQDoktor.FieldByName('EMAIL').AsString;
   DoktorTanimlamaForm.EWebAdres.Text:=Dm1.ADOQDoktor.FieldByName('WEBADRES').AsString;
   DoktorTanimlamaForm.MNotlar.Text:=Dm1.ADOQDoktor.FieldByName('NOTLAR').AsString;
   DoktorHesapSecimForm.Close;
    
end;

procedure TDoktorHesapSecimForm.FormActivate(Sender: TObject);
begin
   DM1.ADOQDOKTOR.Active:=True;
   DBGrid1.Refresh;
end;

end.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Dm1.ADOQCari'nin onBefore/onAfter Close ve OnBefore/After Open olaylarına da bakar mısın
Resim
Resim ....Resim
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

before/after open ve close

Mesaj gönderen kazimates »

datamodule1 den adoqcariye baktım ve ozelliklerinde before after open veya close da herhangi bir code yazmamışım. Bu arada aşağıdaki kouda inceleyecek olursanız tabiiki bu delphi7 ve mssqlserver 2000 içindir bunlar arasındaki farklılıklar nelerdir hangisi doğru hangisi yanlıştır?

Kod: Tümünü seç

with Dm1.ADOQCari do
   begin
      close;
      sql.Clear;
      sql.text:='select * from CARI where CARIHESAPKODU=:carhes ' ;
      Parameters.ParamByName('carhes').value:= Edit2.text;
      if not Prepared then
            Prepared;

       Active :=True;
   end;

   DoktorTanimlamaForm.CBCHUnvani.Text:=Dm1.adoqcari.fieldbyname('CARIHESAPUNVANI').Value;

Kod: Tümünü seç

with Dm1.ADOQCari do
   begin
      close;
      sql.Clear;
      sql.text:='select CARIHESAPUNVANI as carun from CARI where CARIHESAPKODU=:carhes ' ;
      Parameters.ParamByName('carhes').value:= Edit2.text;
      if not Prepared then
            Prepared;

       Active :=True;
   end;

   DoktorTanimlamaForm.CBCHUnvani.Text:=Dm1.adoqcari.fieldbyname('carun').Value;

Kod: Tümünü seç

with Dm1.ADOQCari do
   begin
      close;
      sql.Clear;
      sql.text:='select CARIHESAPUNVANI as "carun" from CARI where CARIHESAPKODU=:carhes ' ;
      Parameters.ParamByName('carhes').value:= Edit2.text;
      if not Prepared then
            Prepared;

       Active :=True;
   end;

   DoktorTanimlamaForm.CBCHUnvani.Text:=Dm1.adoqcari.fieldbyname('carun').Value;
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Başka formlarında olan nesnelerinden kaynaklı sorun olabilir. Eğer bunu bulamayacakan bu tablo nesnesini silip projeni çalıştır sonra başka isimde oluştur onu kullanmaya devam et.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Parameters.ParamByName('carhes').value:= Edit2.text; yi
Parameters.ParamByName('carhes').AsString := Edit2.text; şeklinde değiştirir misiniz?

DBEdit1 i silerken bir hata olmuş olabilir :!: pas içinde ve Forum un üzerinde ALT+F12 ile kaynak koduna girip arat varsa o kısmı sil. Sonra tekrar Alt+F12 ile normal tasarım konumuna getir :idea: Belki başka bir unit ten referans vermiş olabilirsin :?:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla