Диалект команд не поддерживается поставщиком 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.