ADO ve Invalid object name Hatası
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
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
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
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.
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.
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
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.
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.
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
Ozaman
olarak yapın
Kod: Tümünü seç
select * from FIN.ORNEKTABLO
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
Re: ADO ve Invalid object name Hatası
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.
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.
Re: ADO ve Invalid object name Hatası
connection string'e default schema=sitem; yazarak olur. ama benim tavsiyem sitem isimli yeni bir user acarak onun default schema sini sitem yapmak.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.
Re: ADO ve Invalid object name Hatası
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.
Re: ADO ve Invalid object name Hatası
Kod: Tümünü seç
create login sitem with password = 'asdsadsad'
create user sitem with default_schema = sitem
Re: ADO ve Invalid object name Hatası
malesef sorun bu şekilde çözülmedi
Re: ADO ve Invalid object name Hatası
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.