ADO ve Invalid object name Hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc » 30 Haz 2004 10:37

Selamlar;
Ben MS-SQL server da daha önceden oluşturulmuş bir veritabanına bağlantı kurmaya ve üzerinde işlem yapmaya çalışıyorum. Bunu ADO bileşenlerini kullanarak yapmaya çalışıyorum formun üzerine bir adet ADOConnection nesnsi koydum sanırım işe ilk önce connectionstringi oluşturarak başlamalıyım. Connectionstringi gelen sihirbaz ile şöyle oluşturdum:

Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=BENIMDATA;Data Source=SUNUCU;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=SUNUCU;Use Encryption for Data=False;Tag with column collation when possible=False

ve bağlantıyı başarılı bir şekilde gerçekleştirdi. Ardından yine ADOConnection nesnesinin DefaultDatabase sini BENIMDATA şeklinde ayarladım. (Benimdata kelimesini misal olarak kullandım)
Daha sonra formun üzerine bir adet ADOquery nesnesi koydum. Onunda SQL cümlesini "select * from TABLOÖRNEK" şeklinde yaptım. ADOQuery sorgusunun active özelliğini true yapmaya çalışınca

Invalid object name "TABLOÖRNEK"

şeklinde hata verdi. Doğrusu MS-SQL ve ADO konusunda çok yeniyim bu MS-SQL deki verileri bağlanıp kullanmanın bir yolu yokmu bana bu konuda çok basit de olsa program örneği verebilecek hiç kimse yokmu? Çünkü Interbase üzerine olduğu kadar MS-SQL altında detaylı türkçe döküman çok kısıtlı. Bu işi temelden anlatan bilgi arıyorum. Yardımcı olursanız sevinirim

Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7506
Kayıt: 09 Haz 2003 11:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek » 30 Haz 2004 10:54

Selam,

sorunuzu diğer mesajdan ayırdım. Eğer direk o konuyla alakalı değilse başka bir başlık şeklinde sormak daha iyi olur.

Sorunuza gelince, birincisi o isimde bir tablo, view vs. olmayabilir. Onu bir kontrol edin.

İkincisi de tablo isminde Türkçe karakter var (Ö). Bunu O yapıp bir deneyin. Bu tip isimlendirme de Türkçe karakterlerden (ı, İ, ğ, ş, ç, ü) kaçının.

Kolay gelsin.

Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc » 30 Haz 2004 10:59

ÖRNEKTABLO kelimesini örnek olarak verdim veritabanının veya tabloloarın içinde türkçe karakter yok

Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7506
Kayıt: 09 Haz 2003 11:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek » 30 Haz 2004 11:09

Merhaba,

bir ADOTABLE bileşeni koyup, ADOConnection'a bağlayın ve Table Name özelliğini bir açın. Orda kullanabileceğiniz tabloların listesi çıkacaktır. Tablo isimlerini orda gördüğünüz gibi yazın.

Mesela dbo.TABLOORNEK ise o şekilde yazın.

SELECT * FROM dbo.TABLOORNEK

gibi.

Kolay gelsin.

Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc » 30 Haz 2004 02:47

Tekrar merhabalar
Az önce tablo olayını denedim evet bahsettiğiniz gibi tabloların isimleri çıktı seçip tabloyu aktif yapmaya çalışınca yine Invalid object name hatası devam etti. Acaba MS-SQL serverdaki yetki ile iligli bir problem olması mümkün mü?

Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7506
Kayıt: 09 Haz 2003 11:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek » 30 Haz 2004 02:56

hocam görmeden çok fazla yardımcı olamıyorum ama birkaç şeyi kontrol edip denemeniz faydalı olur :

1. Tabloları Enterprise manager'da açıp, select * ile satırları görebiliyor musunuz?

2. Tablo isimleri SQL Server'da özel manaya gelen kelimelerden olmasın. reserved words diye aratıp, bir bakın onlar içinden olmasın. Mesela NOT gibi. NOT özel menası olan bir kelimedir.

3. Tablo ismini [] köşeli parantez içinde yazıp bir deneyin.

SELECT * FROM [TABLOORNEK]

gibi.

Kolay gelsin.

Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc » 30 Haz 2004 03:23

Enterprinse manageri açtım ve veritabanı owner kısmında dbo değil "FIN" yazıyor. acaba owner ile ilgili bir sorun olabilirmi. Çünkü "select * from ORNEKTABLO" yazınca queryanalyzer içinde de aynı hatayı veriyor

Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 09:11

Mesaj gönderen naile » 30 Haz 2004 03:43

Ozaman

Kod: Tümünü seç

select * from FIN.ORNEKTABLO
olarak yapın

Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc » 01 Tem 2004 02:31

Evet sorunu düzelttim çok teşekkürler.

nodetail
Üye
Mesajlar: 53
Kayıt: 04 Eki 2008 09:30

Re: ADO ve Invalid object name Hatası

Mesaj gönderen nodetail » 30 Haz 2009 09:20

Selamlar,
benzer bi problemim var bir sql server kurdum ve başka serverdaki veritabanımı buraya aldım. ancak daha önce çalışan programım yeni serverda çalışmıyor. bütün tablo bağlantılarım select * from TABLO olarak geçmektedir. ama şimdiki veritabanımda select * from sitem.TABLO yazarsam çalışıyor programımın bütün kodlarını değiştiremeyeceğime göre bu sitem schemas 'ını nasıl default yapabilirim. yani ben sadece select * from TABLO yazarak çalışmasını istiyorum bunu nasıl sağlarım sql server 2005 enterprise kullanıyorum. Şimdiden teşekkürler.

Ertugrul
Üye
Mesajlar: 136
Kayıt: 09 May 2009 11:05

Re: ADO ve Invalid object name Hatası

Mesaj gönderen Ertugrul » 30 Haz 2009 09:48

nodetail yazdı:Selamlar,
benzer bi problemim var bir sql server kurdum ve başka serverdaki veritabanımı buraya aldım. ancak daha önce çalışan programım yeni serverda çalışmıyor. bütün tablo bağlantılarım select * from TABLO olarak geçmektedir. ama şimdiki veritabanımda select * from sitem.TABLO yazarsam çalışıyor programımın bütün kodlarını değiştiremeyeceğime göre bu sitem schemas 'ını nasıl default yapabilirim. yani ben sadece select * from TABLO yazarak çalışmasını istiyorum bunu nasıl sağlarım sql server 2005 enterprise kullanıyorum. Şimdiden teşekkürler.
connection string'e default schema=sitem; yazarak olur. ama benim tavsiyem sitem isimli yeni bir user acarak onun default schema sini sitem yapmak.

nodetail
Üye
Mesajlar: 53
Kayıt: 04 Eki 2008 09:30

Re: ADO ve Invalid object name Hatası

Mesaj gönderen nodetail » 30 Haz 2009 10:16

bende tam bunu yapmak istiyorum ama açtığım yeni kullanıcıların default schema'sı sitem olmasına rağmen sanıyorum user açarken bir hata yapıyorum sorun çözülmüyor. bunu tam olarak nasıl yapabileceğimi anlatabilir ve/veya bir yazılı yre yönlendirebilirseniz çok sevinirim.

Ertugrul
Üye
Mesajlar: 136
Kayıt: 09 May 2009 11:05

Re: ADO ve Invalid object name Hatası

Mesaj gönderen Ertugrul » 30 Haz 2009 10:33

Kod: Tümünü seç

create login sitem with password = 'asdsadsad'
create user sitem with default_schema = sitem

nodetail
Üye
Mesajlar: 53
Kayıt: 04 Eki 2008 09:30

Re: ADO ve Invalid object name Hatası

Mesaj gönderen nodetail » 30 Haz 2009 05:36

malesef sorun bu şekilde çözülmedi :(

Ertugrul
Üye
Mesajlar: 136
Kayıt: 09 May 2009 11:05

Re: ADO ve Invalid object name Hatası

Mesaj gönderen Ertugrul » 30 Haz 2009 05:54

ilginç. management studio'da sitem userıyla sorgulama yapmayı denediniz mi peki? management studio da userın özelliklerini değiştirirseniz çözülür gibime geliyor. bu arada management studionun arka planda yaptığını görmek için script butonuna tıklayabilirsiniz.

Cevapla