Диалект команд не поддерживается поставщиком SQLNCLI11 SQL Server 2012

Мы используем классический ASP и SQL Server 2012 Standard Edition.

Наша строка подключения, как показано ниже

provider=SQLNCLI11;Data Source=xxx; MultiSubnetFailover=True; Initial Catalog=xxx; User ID = xxx; Password =xxxxxx; DataTypeCompatibility=80; Integrated Security=SSPI; MARS Connection=true;

Мы использовали поставщика SQLOLEDB, и он отлично работал в нашем приложении. Когда мы попытались изменить провайдера на собственный клиент SQL (SQLNCLI 11), возникла ошибка

Диалект команд не поддерживается поставщиком SQLNCLI11 SQL Server 2012

в нижней строке

set ocmd = server.CreateObject("ADODB.Command")  'created command object
oCmd.Dialect = "{5D531CB2-E6Ed-11D2-B252-00C04F681B71}"  ' assigned dialect
oCmd.Execute , , 1024     'Error line

1 ответ

Пришлось искать это, не видел его некоторое время.

Dialect собственность ADODB.Command объект имеет это описание

Из ADO API Reference - Свойство Диалект
Указывает на диалект CommandText или же CommandStream свойства. Диалект определяет синтаксис и общие правила, которые провайдер использует для разбора строки или потока.

Итак Dialect специфичен для провайдера, теперь, когда вы сменили провайдера, командный диалект больше не поддерживается для этой конкретной ссылки GUID, это не означает, что SQLNCLI11 не будет поддерживать других.

Конкретные Dialect

{5D531CB2-E6Ed-11D2-B252-00C04F681B71}

Предоставляет поддержку для применения XSL-преобразования с поставщиком SQLXMLOLEDB.

Я сомневаюсь, что есть эквивалентный параметр в собственном клиенте SQL Server, потому что SQL Server 2012 поддерживает FOR XML пункт для возврата данных XML.

Другие вопросы по тегам