Открыть модальное окно

Введите символы на картинке


Скачать

Ошибки SQL сервера

Отказ со стороны Microsoft SQL Server в доступе сервера 1С:Предприятия к базе данных от имени пользователя SQL сервера является наиболее частой причиной сообщения об ошибке, возникающего при попытке подсоединения клиентского приложения 1С:Предприятия к клиент-серверной информационной базе. К таким ошибкам относятся:


Microsoft OLE DB Provider for SQL Server: [DBNETLIB][Connection Write (WrapperWrite()).] General network error. Check your network documentation. HRESULT=80004005, SQLSTATE=08S01, native=11

Ошибка может возникнуть в следующих ситуациях:

  • на SQL сервере установлен режим аутентификации "Windows only";

  • к данным от Microsoft SQL Server 7.0 (MDAC 2.1) применяются клиентские компоненты;

  • на клиентском компьютере используется протокол "Multiprotocol" для доступа к SQL Server.

Чтобы исправить положение, желательно настроить доступ к SQL серверу.

Microsoft OLE DB Provider for SQL Server: Connection failure. HRESULT=80004005, SQLSTATE=08501, native=0

Ошибка могла возникнуть при перезагрузке SQL сервера во время работы сервера 1С:Предприятия. Если данная ошибка появилась, то необходимо перезагрузить также сервер 1С:Предприятия.

Microsoft OLE DB Provider for SQL Server: [DBNMPNTW][ConnectionOpen (CreateFile()).] HRESULT=80004005, SQLSTATE=01000, native=1326

Для начала, обратите внимание на идентификатор библиотеки, который записан в квадратных скобках. Список некоторых возможных значений представлен ниже:

DBNETLIB - библиотека, которая используется на клиенте SQL сервера для доступа к SQL серверу по любому протоколу.
dbnmpntw - протокол Named Pipes для Win32
dbmssocn - протокол Winsock TCP/IP для WIN32
dbmsspxn - протокол SPX/IPX для WIN32
dbmsvinn - протокол Banyan Vines для Win32
dbmsrpcn - протокол Multi-Protocol (Windows RPC) для Win32
dbnmp3 - протокол Named Pipes для Win16
dbmssoc3 - протокол Winsock TCP/IP для Win16
dbmsspx3 - протокол SPX/IPX для Win16
dbmsvin3 - протокол Banyan Vines для Win16
dbmsrpc3 - протокол Multi-Protocol (Windows RPC) для Win16

В данном примере при попытке обращения к серверу 1С:Предприятия по протоколу "Named Pipes" пользователю USER1CV8SERVER (от его имени работает сервер 1С:Предприятия) отказано в доступе системой безопасности того компьютера, на котором установлен SQL сервер. Чтобы исправить ошибку, следует либо использовать другой протокол, либо обеспечить компьютеру с SQL сервером возможность аутентификации пользователя USER1CV8SERVER.

Microsoft OLE DB provider for SQL Server: Cannot open database request in Login "upp". Login fails.

Если у Вас появилось такое сообщение, это говорит о нештатном завершении сервера 1С:Предприятия, когда информационная база находилась в монопольном режиме. В это время база данных SQL сервера остается в однопользовательском режиме, и сервер 1С:Предприятия не может к ней присоединиться. Чтобы исправить данную ошибку, запустите Microsoft SQL Server Enterprise Manager, войдите в свойства базы данных, где располагается информацианная база, и выключите однопользовательский режим.

Microsoft OLE DB provider for SQL Server: The database could not be exclusive locked to perform the operation. HRESULT=80040E14, SQLSTATE=42000, native=5030

Подобная ошибка может возникать, если для выполнения какого-то действия в 1С:Предприятии нужно перевести информационную базу в режим монопольного доступа, а перевод базы данных в однопользовательский режим невозможен из-за того, что к ней, вместе с сервером 1С:Предприятия, подсоединено еще какое-либо приложение. Для выполнения необходимых действий, которые требуют монопольный доступ к информационной базе, необходимо отключиться от соответствующей базы данных всеми другими приложениями. Приложения, которые подсоединены к базе данных, можно найти в Microsoft SQL Server Query Analyzer.


Особенности исполнения запросов SQL сервером

Главная причина возникновения следующих ошибок - особенности исполнения запросов SQL сервером Microsoft SQL Server. Ошибки могут возникать в следующих ситуациях:

  • достижение недокументированных программных ограничений SQL сервера;

  • проявление на конкретном SQL запросе ошибок Microsoft SQL Server.

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


Microsoft OLE DB provider for SQL Server: Cannot perform an aggregate function on an expression containing an aggregate or a subquery. HRESULT=80040E14, SQLSTATE=42000, native=130

Данная ошибка означает, что выражение, вложенное в агрегатные функции или использованное в разделе СГРУППИРОВАТЬ ПО, содержит вложенные запросы. Начиная с 1С:Предприятия 8.0.9.32, данную ошибку диагностирует компилятор языка запросов.

Microsoft OLE DB provider for SQL Server: only text pointer are allowed in work tables, never text, text or image column. The query processor produced a query plan that reqied text, ntext or image column in work table. HRESULT=80040E14, SQLSTATE=42000, native=8226

Ошибка может возникнуть при построении планов запросов, которые включают вложенные запросы и операцию объединения таблиц. Чтобы предотвратить данную ошибку, избегайте объединения полей типа Строка ограниченной длины с полями типа Строка неограниченной длины, если при этом они являются результатами вложенных запросов. Начиная с версии 8.0.11.3, платформа 1С:Предприятия не накладывает каких-либо ограничений на пользовательские запросы.

Microsoft OLE DB Provider for SQL Server: SqlDumpExceptionHandler: Process 52 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process. HRESULT=80040E14, SQLSTATE=42000, native=0

Ошибка может возникать при исполнении сложных запросов. Если у Вас выскочило сообщение о такой ошибке, попробуйте видоизменить запрос.

Microsoft OLE DB provider for SQL Server: Too many table names in the query. The maximum allowable is 256. HRESULT=80040E14, SQLSTATE=42000, native=106

Microsoft SQL Server 2000 и 2005 позволяют использовать в простом запросе не более 256 таблиц базы данных. Если количество таблиц превышает 256, то выдается сообщение об ошибке. Начиная с версии 8.0.11.3 платформа 1С:Предприятия выдает диагностику без завершения работы клиентского приложения.

Microsoft OLE DB provider for SQL Server: ORDER BY items must appear in the select list if the statement contains a UNION operator. HRESULT=80040E14, SQLSTATE=42000, native=104

  Во избежание возникновения данной ошибки не используйте вложенных запросов с разделами "УПОРЯДОЧИТЬ ПО", если исходный запрос содержит операцию "ОБЪЕДИНИТЬ".

Microsoft OLE DB provider for SQL Server: Warning: The query processor could not produce a query plan from the optimizer because the total length of all the columns in the GROUP BY or ODER BY clause exceeds 8000 bytes. Resubmit your query without the ROBUST PLAN hint. HRESULT=80040E14, SQLSTATE=42000, native=8618

Данная ошибка возникает в случае группировки записей и вычисления агрегатных функций, если при этом группировка выполняется над результатом вложенного запроса, и длина записи результата этого запроса превышает 4000 байт. Причиной такой ошибки является неправильное вычисление Microsoft SQL Server 2000 максимальной длины результата операции SUBSTRING над полем неограниченной длины.


Ошибки при выполнении операций над данными

Такие ошибки могут возникать при выполнении запросов сервером в случае, если значениями выражений оказываются данные, которые недопустимы для объявленных типов.

Microsoft OLE DB provider for SQL Server: Adding a value to a 'datetime' column caused overflow. HRESULT=80040E07, SQLSTATE=22077, native=517

Данная ошибка возникает при выполнении функций над датами в том случае, когда в качестве результата получается слишком большая или слишком маленькая дата. Минимально допустимой датой является 1 января 1753 года, а максимально допустимой - 31 декабря 9999 года.


Ошибки размещения базы данных

Причинами сообщений об ошибках из этой группы является аварийная ситуация на компьютере, на котором установлени сервер SQL.

Microsoft OLE DB provider for SQL Server: Could not allocate space for object '_AccumReg224NG' in database '...' because the 'PRIMARY' filegroup is full. HRESULT=80004500, SQLSTATE=42000, native=1105

Подобное сообщение может возникнуть при загрузке информационной базы или при ее реструктуризации в том случае, если диск с базой данных SQL сервера имеет недостаточно свободного места.


Ошибки исполнения транзакций

Сообщения данного типа могут возникнуть при высокой загрузке сервера 1С:Предприятия из-за возникших конфликтов транзакционных блокировок записей. Если у Вас возникло подобное сообщение, повторите выполнение того же самого интерактивного действия.

Microsoft OLE DB provider for SQL Server: Transaction (Process ID 53) was deadlocked on lock resources with another process and has been chosen as the deadlock vitim. Rerun the transaction. HRESULT=80004005, SQLSTATE=40001, native=1205

Сообщение означает взаимную блокировку транзакций, начатых двумя или большим количеством пользователей. Если такое сообщение появляется часто, это свидетельствует о неудачных решениях, реализованных в конфигурации. Чтобы бороться со взаимной блокировкой, используют ключевое слово "ДЛЯ ИЗМЕНЕНИЯ" в языке запросов.


Статьи на схожую тематику:
Занимательно о сервере,
Самое главное о SQL сервере