Çalışma anında database'i assign etme hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
vampir261
Üye
Mesajlar: 298
Kayıt: 23 Kas 2004 03:22
Konum: Denizli

Çalışma anında database'i assign etme hatası

Mesaj gönderen vampir261 »

Kod: Tümünü seç

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var qr: TQuery;
    ibdt:TIBDataSet;
begin
    if DBGrid1.DataSource.DataSet.ClassName='TIBDataSet' then
    begin
        ibdt:=TIBDataSet(FindComponent(DBGrid1.DataSource.DataSet.Name));
        with DBGrid1.DataSource.DataSet.Owner do
        begin
            ibdt.Close;
            ibdt.SelectSQL.Clear;
            ibdt.SelectSQL.Add('select *from ogrenci order by '''+Column.FieldName+'''asc ');
            ibdt.Open;
        end;
    end;
end;

Bu kodla çalışma anında title kısmına tıkladığım field'a göre sıralama yapmak istiyorum ve karşıma şu tür bi hata geliyor.
raised exception class EIBclientError with message 'Database not assigned'
bunu aşmak için nasıl bir kod yazmalıyım bilgisi olan varsa yardım bekliyorum. burada sql kodu yazmadan önce findcomponent ile bulduğum componentin ismini yazdırıyorum ismi doğru çıkıyor.. yani ShowMessage(ibdt.Name); ile ama içine kod gönderince çakılıp kalıyor.

Kod: Tümünü seç

ibdt.Assign(DBGrid1.DataSource.DataSet);
böyle birşey olabilir mi :?: şimdiden çok sağolun
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

database not assigned hatası

Mesaj gönderen vedatkaba »

yukarıdaki hatanın aynısını bende alıyorum...

interbasi kaldırdım gds32.dll dosyasını sildim firebirdi kurdum..ibexpertte bir sorun olmuyor database bağlanıyorum hrşey normal.formda tasarımı yapıyorum ibdatabase de bağlanıyor ama uygulamayı run ettiğimz zaman form açılmadan
database not assigned
hatası veriyor uygulama çalışmıyor..interbase de böyle bir sorun yoktu..bu sorunu nasıl aşarız bilen arkadaşlardan yardım rica ediyorum..

herkese kolay gelsin
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

yukarıdaki hatayı formda ibtable varken master-detail ilşkisi kurduktan sonra vermşti.ibtable ları sildim formdan bu kezde firebird sorumsuz oldu.

yukarıdaki mesajı yazdıktan sonra başıma extradan bir olay daha geldi..

tasarım anında gridlerde alanları vs. görüyorum ama uygulama çalışınca gridler bomboş sanki hiç bir şey olmamış..firebird umursamaz davranmaya başladı napmak lazım arkadaşlar.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Kod: Tümünü seç

 
database not assigned //veritabanı seçili değil
aksini bilemem ama bu hata çoğunluk IBDatabase nesnesini vt ye bağlamadan,aktif etmeden herhangi bir IBQuery,IBDataseti aktif yapmaya çalıştığımız zaman olur benim bildiğim...

iyi günler..
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

hocam yukarıda bahsettiğim gibi tasarım anında hiç bir hata yoktu normal çalışıyordu ama run ederken sorun çıkıyordu..bu sorunu ise ibtable kullandığım zaman verdi ama ibtablelaerı sildikten sonra bu kezde run oluyor fakat gridlerde saçmalık vvar.anlamsız birşey ama
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

dataset,datasource,grid bağlantıların doğrumu.

ayrıca ne hatası veriyor onuda yazarzan olay anlaşılır.ve herkes yardım eder.
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

hocam ilk hata bu
database not assigned
bu hatayı iki tabloyu ibtable larla birleştirdikten sonra verdi run olunca alıyordum birde..daha sonra ibtable ları sildim bağlantıları tekrar yaptım form tasarım halinde gridlerde herşey normal ama run olunca form açılıyor ama bu kez gridler hiç birşey yok ..sorun bu hocam
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

buradan anladığım

* ya vt sıfır hiç kayıt girilmemiş
*ya dbgiride fieldler eklenmemiş
*ya da yazdığın SQL kodunda bir eksiklikler var

bunların hepsi tamam doğru diyorsan o zaman form üzerinde ne varsa kaldır bir daha koy bir daha bağla yine sorun çözülemedi ise ben olsam ya delphiyi yeniden kurur yada bilgisayara format atardım :)

iyi günler...
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Re: Çalışma anında database'i assign etme hatası

Mesaj gönderen fduman »

vampir261 yazdı: Bu kodla çalışma anında title kısmına tıkladığım field'a göre sıralama yapmak istiyorum ve karşıma şu tür bi hata geliyor.
raised exception class EIBclientError with message 'Database not assigned'
bunu aşmak için nasıl bir kod yazmalıyım bilgisi olan varsa yardım bekliyorum.
TIBDataset'in Database ve Transaction property'lerini doldurmalısın.

Kod: Tümünü seç

ibdt.Database:= IBDatabase;
ibdt.Transaction:= IBTransaction;
Burada IBDatabase ve IBTransaction yerlerine kendi Database Connection ve transaction nesnelerini yaz.
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Re: Çalışma anında database'i assign etme hatası

Mesaj gönderen true_false »

merhabalar
ayı sorundan bende muzdaribim
design time anında ibsql'i active yaptığım zaman kayıtları görüyorum
fakat runtime anında formun showunda ibsql'i open yaptığım zaman
database not assigned hatasını alıyorum.
@coderlord
cevabını biraz daha açarmısın
coderlord yazdı:

Kod: Tümünü seç

ibdt.Database:= IBDatabase;
ibdt.Transaction:= IBTransaction;
Burada IBDatabase ve IBTransaction yerlerine kendi Database Connection ve transaction nesnelerini yaz.
yazdığın kodu nerde uyarlıcam.
ben hatayı ilk olarak formun showunda alıyom

Kod: Tümünü seç

if not DS_WORKER.DataSet.Active then DS_WORKER.DataSet.Open;
kolay gelsin
type
Tform1 = class(Tform)
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Kod: Tümünü seç

ibdt.Database:= IBDatabase;
ibdt.Transaction:= IBTransaction;
kullandığınız datasetin yukarıdaki özelliklerini doldurmazsanız o hatayı alırsınız.Örnek olarak Form üzerine 1 IBSQL koyun. kod olarak;

Kod: Tümünü seç

IBSQL.ExecQuery;
yazın çalıştırın.ve aynı hata çünkü ne Database,ne Transaction seçili.

iyi günler...
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

demek istediğim şudur
bir transaction
bir query
bir datasource
ve birtanede ibupdate 'im var
database ise datamodulde
bağlantılarım doğru kontrolunu yaptım sorun sadece run time anında.
run time anında queryim açılmıyo database not assigned hatası alıyorum.
type
Tform1 = class(Tform)
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;
true_false yazdı: run time anında queryim açılmıyo database not assigned hatası alıyorum.
peki Runtime esnasındaki Query'nizin özellikleri yukarıdaki gibi dolu mu? O özellikleri kod olarak yazdınız mı daha doğrusu :?:
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

sevgili
@ugur1982 bundan önceki mesajımda yazdığım gibi
true_false yazdı: bir transaction
bir query
bir datasource
ve birtanede ibupdate 'im var
database ise datamodulde
bağlantılarım doğru kontrolunu yaptım .
nesnelerimin bağlantılarını kod ile yapmıyorum seninde neden bahsettiğini anlamadım kod ile bir işim yok yane ib queryim databasini transactionunu seçiyorum datasourcemin datasetini (ibquerymi) transactionunmunda default databasini seçiyom
işlemler tamam yane çalışması lazım vede design time anında çalışıyor.
seninle anlaşamadığım konu şu sorun sadece runtime anı yani programı çalıştırdığım an
burda formun showunda querym open olmuyo halbuki design timde oluyodu sorun budur kardeş umarım anlamışındır. veya anlatabilmişimdir
type
Tform1 = class(Tform)
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

Şimdi burada bi çelişki var gibime geliyor.Design time Query'i akfif ediyor,sorun çıkmıyor ve hiç kodla da müdahale etmiyor.Programı RUN yapıyorsunuz ve o hatayı veriyor.Bu beni aşar. :) Çünkü ben böyle bir şey yaşamadım,görmedim.Bilen birisi bir cevap verir.Bizde öğrenmiş oluruz :)
Cevapla