2012-08-07 15 views
11

Crystal Reports XIr2'yi kullanarak raporumuz için bir veritabanından gelen bilgileri rapor etmek için bir rapor hazırladım. Saklı yordamı çalıştırmaktan döndürülen çeşitli veriler hakkında rapor veren bir çapraz sekme raporudur.Tablo [tablename] bulunamadı -2147189180

Bu raporun çalıştırıldığı uygulama hakkında hızlı bir çözüm - VB6'da yazılan bir uygulama, uygulamayı yükledikten sonra SQL oturum açma gibi bir SQL sunucusunda yapılandırılan bir kullanıcı adı ve parola sorulur; Uygulamaya girdiğinizde, SQL sunucu güvenliğine karşı kimlik doğrulaması yapıyorsunuz.

Rapor, Crystal Reports uygulamasında kesinlikle gayet iyi çalışıyor, ancak bu raporda bir müşteri sitesine başvurumuzdan başlatıldığında bazı garip davranışlar yaşıyorum. 'Sa' düzey veritabanı erişimi olan tüm kullanıcılar için iyi çalışıyor ancak başka bir kullanıcı olarak çalıştırıldığında aşağıdaki hatayı veriyor; Ben herhangi bir hata olmadan çalışır elle saklı prosedürler çalışan uygulama içinde yukarıdaki hatayı alan bir kullanıcı olarak doğrudan veritabanı sunucusuna bağlanmak durumunda

Error message

.

SQL sunucusunda 'sa' izinlerimiz dahilinde hatayı alan bir kullanıcı verirseniz, hata gerçekleşir.

Söz konusu saklı yordam için ilgili tüm yürütme izinlerini denetledim, ancak SQL Server'a el ile bağladığım ve yordamı yürüttüğümde belirtildiği gibi yukarıda belirtilen hatayı alamıyorum.

Bu hatayı alan kullanıcı bu rapordan önce başka bir rapor çalıştırırsa, çalışır, ancak bu hatayı aldıktan sonra bir rapor çalıştırırsa, tüm raporlar çalışmayı durdurur ve bir uygulama yeniden başlatılmasını gerektirir.

Herhangi bir fikir lütfen?

+0

raporu açın lütfen Crystal'da ve etkilenen tabloyu Field Explorer'da bulun. Sağ tabloya tıklayın ve "Veri Kaynağı Konumunu Ayarla ..." seçeneğini seçin. Etkilenen tablonun altındaki ağacı genişletin ve özelliklerini görüntüleyin. Kimin sahibidir? – Dorian

+0

@XToro sahibi dbo –

+0

Saklı yordam veritabanına herhangi bir YAZMA yapar mı? Yoksa sadece "Seç" ifadelerini mi kullanıyor? SQL Server'a erişiminiz olduğunu varsayarsak; veritabanı özelliklerinde> İzinler, prosedürü çalıştırmaya çalışan kullanıcı veya rollerin herhangi bir izni var mı? – Dorian

cevap

1

Veritabanı için kullanıcı eşlemesi varsayılan şemasının, sorunu bildiren kullanıcılar için dbo olarak ayarlandığından emin olmanızı öneririm. Bunun için veritabanı rollerini kullanmanızı da öneririz.

0

Yürütme izni verme her zaman burada bitmez - Bazen, içindeki nesnelerin olası izin bloklarını kontrol etmeniz gerekir. Prosedürü manuel olarak çalıştırmak için kullanıcının girişini kullandığını söylediğinizde, kullanıcının kimlik bilgilerinin veritabanına bağlanmak için kullandığınız şey olduğundan emin olmak ister mi?

Belki uygulama kullanacağı bir daha evrensel sql girişi kullanabilirsiniz - (! Sadece bir öneri :)) birden fazla kullanıcı için izinleri takip etmek zorunda kalmazsınız bu şekilde