SQL Server 2005: недопустимое исключение имени объекта - PullRequest
2 голосов
/ 26 апреля 2010

В VS2005 я использую DLL, которая обращается к SQL Server. DLL возвращает SQLException

Неверное имя объекта 'tableXYZ'

но tableXYZ - это таблица в базе данных.

Стоит ли искать dbo.tableXYZ? Это проблема с разрешениями при использовании логина?

Ответы [ 4 ]

1 голос
/ 26 апреля 2010

Использование dbo.tableXYZ делает яснее то, что вы хотите - tableXYZ в схеме dbo по умолчанию. Может быть tableXYZ и в другой схеме - тогда SQL Server может не знать, какую вы хотите.

И это вполне может быть проблема с разрешениями. Если вы подключитесь к этой базе данных в SQL SErver Mgmt Studio от имени этого пользователя - вы увидите эту tableXYZ таблицу ??

ОБНОВЛЕНИЕ: требуется ли для DLL определенная строка подключения, которую вы, возможно, не скопировали в файл app.config вызывающего приложения ?? DLL в .NET на самом деле не могут иметь свои собственные mylibrary.dll.config - они не будут считываться .NET по умолчанию.

1 голос
/ 26 апреля 2010

Это может быть проблема с владельцем таблицы и прав доступа.

например, владельцем таблицы может быть dbo, поэтому полное имя таблицы будет dbo.TableXYZ Пользователь, к которому вы подключаетесь, может быть, например, SQLUser, может не иметь доступа к схеме dbo. Таким образом, можно получить доступ только к таким таблицам, как SQLuser.TableXYZ

Я бы проверил разрешения, которые вы используете для подключения к базе данных.

0 голосов
/ 29 апреля 2010

В качестве отправной точки вы можете включить трассировку SQL Server Profiler, чтобы увидеть как DLL подключается к базе данных. например Вы должны быть в состоянии увидеть, какие учетные данные используются. Вы также можете подтвердить, что код подключается к нужной базе данных и т. Д.

0 голосов
/ 26 апреля 2010

вы должны использовать имя базы данных в вашей строке подключения - в противном случае оно просто подключится и вам придется использовать dbo.databasename.tableXYZ.

Вы можете найти различные строки подключения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...