|
Заблокирован
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Подскажите строку ADODB для подключения к SQL Server с доверенным соединением14.11.2012, 20:23. Показов 9151. Ответов 0
Метки нет (Все метки)
Подскажите строку ADODB для подключения к SQL Server с доверенным соединением. Не могу вспомнить.
Оригинал: http://support.microsoft.com/kb/910696 Добавлено через 42 минуты Пример 1: Открыть дополнительные подключения при явно не закрыть объекты наборов записей При запуске в следующем примере кода в Visual Basic 6.0 не требуется только одно подключение. Это верно, так как объект набора записей , созданный в процедуре ExecuteQuery неявно закрыт, когда попадает в объект набора записей из области действия. В примере кода используется переменная @@SPID SQL Server для представления идентификатор процесса сервера, который используется для выполнения запроса. Если запустить код, можно заметить, что запросы возвращают то же значение в столбце @@spid . Это значит, что запросы были запущены на одном подключении к базе данных.
Это поведение отличается, поскольку объект набора записей , созданный в процедуре ExecuteQuery не был закрыт и будет оставаться открытым, пока сборщик мусора .NET очищает объект набора записей . Сборка мусора в Microsoft платформа.NET Framework происходит асинхронно. Если объект набора записей не был закрыт по времени, процедура ExecuteQuery вызывается снова, SQL Server поставщик OLE DB будет открыть новое подключение для выполнения второго запроса. Если добавить вызов rs.Закрыть команды в процедуре ExecuteQuery , убедитесь, что запросы выполняются на одном подключении. Можно также явно указать SQL Server поставщик OLE DB не используется для открытия дополнительных подключений. Для этого добавьте следующий код сразу после открытия подключения:
Пример 2: Проблемы при работе с транзакциями, если явно не закрыть объекты наборов записей Не удается открыть дополнительные подключения при заблокированных соединений участвует в транзакции. При запуске в следующем примере кода в Visual Basic 6.0 код выполняет несколько запросов для одного соединения с открытой операции. Код вызывает следующие две функции: Метод GetCustomers GetOrders Каждая функция открывает объект набора записей .
Невозможно создать новое подключение, так как в режиме ручной или распределенных транзакций. Чтобы устранить эту проблему, необходимо явным образом закройте объекты набора записей , которые были созданы с помощью функции GetCustomers и GetOrders . Пример 3: Проблемы при неявно создается и затем сбросить объектов наборов записей По умолчанию метод Execute объектов подключения и команды неявно создает и возвращает новый объект набора записей . Этот объект набора записей не сохраняется в переменной объекта в Visual Basic 6.0 объект набора записей выпадает из области и сразу же закрывается. Таким образом в следующем примере кода выполняется успешно в Visual Basic 6.0. Тем не менее, вы получите сообщение об ошибке, описанное в "Пример 2: проблемы при работе с транзакциями, если явно не закрыть объекты наборов записей» раздела при переносе кода на Visual Basic .NET.
Чтобы устранить эту проблему, передайте значение adExecuteNoRecords из ExecuteOptionsEnum значение в параметре Options метода Execute . При этом можно указать, что метод Execute не должны возвращать объект набора записей , как показано в следующем примере кода.
Настоятельно рекомендуется вы не с помощью PIA ADODB в нагрузочных сценариев, например, в многопользовательской компоненты ASP.NET Microsoft или Microsoft COM +. При тестировании ВЗАИМОДЕЙСТВИЯ ADODB тестеров Майкрософт тестирования найти что ADODB PIA не выполняется под нагрузкой. Если код доступа к данным .NET должен работать безотказно под нагрузкой, настоятельно рекомендуется написать код с помощью ADO.NET. Проблема 3: Мы не рекомендуем использовать основную сборку ВЗАИМОДЕЙСТВИЯ ADODB в 64-разрядном режиме Настоятельно рекомендуется вы не с помощью основных сборок ВЗАИМОДЕЙСТВИЯ ADODB в 64-разрядных приложений. ADODB PIA не тестировался в 64-разрядном режиме. В большинстве случаев 64-разрядных включают в себя компоненты высокой нагрузки на стороне сервера, такие как ASP.NET или COM +. ADODB PIA имеет известные проблемы при выполнении под нагрузкой. Ограниченная доступность для 64-разрядных поставщиков OLE DB делает 64-разрядном режиме менее привлекательной для работы с основной сборки ВЗАИМОДЕЙСТВИЯ ADODB. Проблема 4: Сбоев при выполнении запроса с поздним связыванием ADODB поддерживает следующие способы выполнения запросов с поздним связыванием. Выполнение запроса с поздней привязкой позволяет использовать привязку IDispatch COM для выполнения запросов, как будто запросов методов для объекта подключения . ADODB поддерживает следующие два вида выполнение запроса с поздним связыванием. Создайте запрос «с именем» с помощью свойства Name объекта Command . Выполнение вызова хранимой процедуры. При миграции кода из Visual Basic 6.0 до Visual Basic .NET, могут возникнуть проблемы с этими формами. Следующие примеры иллюстрируют эти проблемы. Пример 1: Если создать второй запрос с поздним связыванием, имеет то же имя, запрос завершится В следующем примере кода создается два запроса с поздним связыванием, использующие то же значение для свойства Name объекта Command .
Когда подобный код выполняется в Visual Basic .NET, объект команды не может быть удален сборщиком мусора по времени, связанный с объектом подключения второй объект команды . Таким образом может появиться следующее сообщение об ошибке исключения: Объект уже присутствует в коллекции. Не удается добавить. Чтобы устранить эту проблему, вручную отделить первый объект команды из объекта подключения . Чтобы сделать это, необходимо явно вызовите cmd.ActiveConnection метода очистки объекта команды . Для этого используйте следующий код. 'Visual Basic 6.0 syntax Set cmd.ActiveConnection = Nothing 'Visual Basic .NET syntax cmd.ActiveConnection = Nothing Пример 2: При вызове с поздним связыванием запрос на повторное подключение запрос не В следующем примере кода выполняет следующие задачи в том порядке, в котором они перечислены. Создайте два объекта подключения . Создайте объект команды для каждого объекта подключения . Каждый объект команды имеет то же значение для свойства Name . Выполнение каждой команды с помощью выполнения запроса с поздним связыванием.
Как ADODB подготавливает эти запросы в качестве метода с поздней привязкой Предположения об этих методах выполняется компилятором Visual Basic .NET При установке свойства ActiveConnection объекта Command , ADODB проверяет, имеет ли объект команды задать свойство Name . Если значение свойства Name , ADODB готовит запрос таким образом, запрос может выполняться как с поздним связыванием метода объекта подключения . В этом примере два объекта команд имеют одинаковое значение для свойства CommandText . Тем не менее это очень простой пример. Несмотря на то, что объекты команд имеют одинаковое значение для свойства Name , командных объектов может иметь значения CommandText , которые будут выполнять очень разные запросы. Таким образом ADODB создает уникальный метод подписи для метода с поздней привязкой. Компилятор Visual Basic .NET не делает это отличительные особенности. При первом вызове запрос «GetCount» компилятор Visual Basic .NET кэширует подписи метода в случае, если другой вызов метода GetCount для объекта подключения . Когда код вызывает второй запрос «GetCount», Visual Basic .NET повторно использует кэшированный сигнатуру для второго метода GetCount . Поскольку ADODB создает уникальный метод подписи, сбое вызова во второй запрос с поздним связыванием. Решения этой проблемы не существует для этого сценария. Проблема 5: Можно установить некоторые ADODB варианта типы данных для строковых типов данных Модель объекта ADODB позволяет задать некоторые свойства строки или других объектов ADODB. Например свойства ActiveConnection объекта набора записей отображается в обозревателе объектов Visual Basic 6.0 как тип данных Variant и может быть присвоено объект подключения или строку подключения. Если вы создали свой собственный объект и для поддержки этой функции, необходимо создать отдельный свойствам. Чтобы сделать это, используйте код, аналогичный следующему примеру кода.
Свойство Source объекта набора записей Свойства ActiveConnection объекта команды Эти свойства принимают объекты. Чтобы задать эти свойства строки, необходимо использовать соответствующий метод let_MethodName . Проблема 6: Исключение InvalidCastException возникает при вызове метода Parameters.Append PIA ADODB, поставляемый с Microsoft Visual Studio .NET 2003 и Visual Studio 2005 имеется известная проблема, возникающая при вызове метода Parameters.Append вместе с объектом параметра , который был создан с помощью конструктора по умолчанию. В следующем примере кода вызовет исключение InvalidCastException .
ADODB основную сборку ВЗАИМОДЕЙСТВИЯ, которая входит в состав Visual Studio 2005 — это же компонент, который поставляется вместе с Visual Studio .NET 2003 и был создан с использованием Microsoft платформа.NET Framework 1.1. ADODB был построен для взаимодействия с ADO 2.7 интерфейсов и не был обновлен для работы с ADO 2.8 интерфейсов. Таким образом дополняющая ADODB вместе с компонентами, которые предоставляют 2,8 интерфейсы ADO будет невозможно. Этот сценарий не поддерживается с помощью основных сборок ВЗАИМОДЕЙСТВИЯ ADODB. ВОПРОС ЗАКРЫТ!
0
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14.11.2012, 20:23 | |
|
Ответы с готовыми решениями:
0
Подключение к БД пользователей и ошибка "Пользователь не связан с доверенным соединением с SQL Server" Не видит строку подключения к SQL server Драйвер с++ для подключения к ms sql server |
| 14.11.2012, 20:23 | |
|
Помогаю со студенческими работами здесь
1
Управление записями в БД через интерфейс в Excel(ADODB + MS SQL Server) Ошибка подключения к SQL (SQL Server не существует, или доступ запрещен.) Не получается задать строку для связи с БД SQL Server как сгенерить строку коннекта для MS SQL Server-а? Как получить Record.count в конструкции вида: Set conn = Server.CreateObject('ADODB.Connection')SQL = 'SELECT * FROM tbl' Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла:
Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
|
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
|