2017-02-14 16 views
1

Я работаю над Delphi 7, SQL Server 2008 R2, и я использую ADO для подключения к базе данных.Совместное использование ADOConnectionString по нескольким приложениям - Delphi

Моя Строка подключения:

Provider = SQLOLEDB.1; Integrated Security = SSPI; Упорство Security Info = False; Initial Catalog = TESTDataBase; Data Source = TestDataSource

, когда я сделать мой TADOconnection.Connected to True Connectin string изменяет его на

Провайдер = SQLOLEDB.1; Встроенная безопасность = SSPI; Персистентная информация о безопасности = False; Начальный каталог = TESTDataBase; Источник данных = TestDataSource; Порядок использования для подготовки = 1; Auto Перевести = True; Packet Size = 4096; Workstation ID = MYMachineName, использование шифрования данных = False; Tag с колонкой сортировки, когда это возможно = False

Есть более чем 10 приложений, и я планирую использовать тот же строка соединения во всех приложениях. поэтому, когда я подключаюсь к FirstApplcation, я создаю строку подключения ADO, сохраняя ее в реестре или где-то, где я могу использовать ту же строку соединения для других приложений.

Один и тот же пользователь может запускать несколько приложений (это может быть 2 или 3 или 5 приложений).

Вот у меня есть 3 вопроса

1), когда мне нужно использовать подключение?

я имею в виду создать строку подключения и один и ту же строку соединения (запись в реестр или где-)

или

создать строку подключения, подключение к базе данных и обмену ту же строке подключения (написать реестра или где-нибудь)

2) В моем приложении, когда я получаю общую строку соединения, мне нужно снова подключиться к базе данных (TADOConnection.Connected = true)? я думаю, что я должен подключить его снова, так как это другое приложение :)

3) Для всех моих приложений я открываю соединение в форме приложения (основная форма) и я закрываю соединение при закрытии приложения (основная форма) . Соединение будет закрываться только при закрытии приложения и TADOCOnnection.KeepConnection = True. это создает проблемы производительности или нагрузки на сервер базы данных?

+1

Просто сохраните необходимые свойства (каталог, сервер, данные для входа, ...) где-нибудь (файл конфигурации, реестр, ..) и создайте строку соединения самостоятельно. – whosrdaddy

ответ

2

Общий файл UDL может быть полезно для совместного использования. Используйте необходимые свойства только для строки подключения, то есть:

Provider = SQLOLEDB.1; Integrated Security = SSPI; Упорство безопасности Info = False; Initial Catalog = TESTDataBase; Data Source = TestDataSource

Не беспокойтесь о дополнительных свойствах, которые добавлены ADO после подключения. это свойства по умолчанию для конкретного поставщика, которого вы используете (SQLOLEDB.1).Те же свойства будут установлены во всех ваших других приложениях, если вы используете точную строку соединения или файл UDL (с общим поставщиком). Соединения ADO к SQL Server по умолчанию объединены.

Вы можете просто установить, например.

MyConnection.ConnectionString := 'FILE NAME=c:\my_shared_path\shared.udl'; 
MyConnection.Open; 

Хорошее место, чтобы провести общий объект подключения (TADOConnection) находится в общем модуле данных для всего приложения. Откройте его в модуле данных или в основной форме OnCreate. Соединение автоматически закрывается после уничтожения TADOConnection.

+0

Можете ли вы ответить на третий вопрос? есть ли какие-либо проблемы с производительностью или нагрузкой на сервер базы данных? Я не закрываю соединение до закрытия приложения? поэтому, если 100 пользователей используют эти приложения, будет открыто 100 подключений. поэтому для 5 приложений 5 * 100 пользователей = 500 открытых подключений – DelphiLearner

+0

По умолчанию SQL-сервер допускает максимум 32 767 пользовательских подключений. большую часть времени в «спящем» состоянии. это достаточно для вас? – kobik

+0

, поэтому не будет проблем с производительностью или нагрузки на сервер. Спасибо. – DelphiLearner

 Смежные вопросы

  • Нет связанных вопросов^_^