Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Добавляет (модифицирует) указанный пользовательский ODBC DSN-источник для доступа к MS SQL-серверу

Delphi , Базы данных , Alias



Автор: KSergey
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Добавляет (модифицирует) указанный пользовательский
ODBC DSN-источник для доступа к MS SQL-серверу

Модуль управления источниками DSN

Состоит из одной функции добавления (а при наличии - содержимое
модицицируется) пользовательского DSN-источника для доступа к MS
SQL-серверу. Кроме того в клиентских настройках прописывается протокол
TCP/IP и порт 1433 (за эту часть 100% уверенности нет в том смысле, что мне
не удалось найти документированного интерфейса для этих изменений).

Приведено в виде модуля для того, чтобы включить определение ф-ции
SQLConfigDataSource (т.к. не нашел этого описания в поставке Delphi).

Ссылки на источники:
http://www.rsdn.ru/qna/default.asp?db/datasrc.xml
http://www.bbd.net.ru/modules.php?op=modload&name=News&file=article&sid=16
http://www.firststeps.ru/mfc/odbc/r.php?14

Зависимости: Windows, Registry
Автор:       KSergey, s_wr@mail.ru, ICQ:93229204, Новосибирск
Copyright:   В качестве справки по работе с ф-цией
SQLConfigDataSource использовались источники, ссылки на которые есть в описании
Дата:        17 июня 2003 г.
***************************************************** }

interface

uses
  Windows, Registry;

function AddDSNMSSQLSource(const ADSNName, AServer, ADataBase: string;
  ADescription: string = ''): Boolean;
function SQLConfigDataSource(
  hwndParent: HWND; // Указатель на окно вызвавшее функцию
  fRequest: WORD; // Тип запроса
  lpszDriver: PChar; // Пользовательское имя драйвера
  lpszAttributes: PChar // атрибуты
  ): Boolean; stdcall; external 'odbccp32.dll' name 'SQLConfigDataSource';

const
  ODBC_ADD_DSN = 1; // Add data source
  ODBC_CONFIG_DSN = 2; // Configure (edit) data source
  ODBC_REMOVE_DSN = 3; // Remove data source

implementation

{******************************************************************************
 * AddDSNMSSQLSource - добавляет (модифицирует) пользовательский DSN-источник
 * для доступа к MS SQL серверу
 * Дополнительно в клиентских настройках прописывается
 * протокол TCP/IP и порт 1433
 *
 * Вход: ADSNName - имя DSN-источника
 * AServer - имя сервера
 * ADataBase - наименование БД на сервере по умолчанию
 * ADescription - описание источника (необязательный параметр)
 *
 * Выход: TRUE - в случае успеха, FALSE - в противном случае
 ******************************************************************************}

function AddDSNMSSQLSource(const ADSNName, AServer, ADataBase: string;
  ADescription: string = ''): Boolean;
const
  driver = 'SQL Server';
var
  params: string;

  // эта ф-ция прописывает необходимые настройки для доступа к MS SQL по TCP/IP
  // и на порт 1433
  function SetNetLibParam: Boolean;
  begin
    Result := FALSE;
    with TRegistry.Create do
    try
      RootKey := HKEY_LOCAL_MACHINE;
      if OpenKey('\Software\Microsoft\MSSQLServer\Client', TRUE) then
        if not KeyExists('ConnectTo') then
          CreateKey('ConnectTo');
      if OpenKey('ConnectTo', TRUE) then
      begin
        WriteString(AServer, 'DBMSSOCN,' + AServer + ',1433');
        Result := TRUE;
      end;
    finally
      CloseKey;
      Free;
    end;
  end;

begin
  params := 'DSN=' + ADSNName + #0'Server=' + AServer + #0'DataBase= ' +
    ADataBase + #0'Description=' + ADescription + #0#0;
Result := SQLConfigDataSource(0, ODBC_ADD_DSN, PChar(driver), PChar(params));
  Result := Result and SetNetLibParam;
end;

end.

Пример использования:

if not AddDNSMSSQLSource('ServerDSN', 'big_server', 'Clients',
  'Для программы работы с клиентами') then
    DoError;

Модуль Delphi для добавления или изменения пользовательского источника ODBC DSN для доступа к серверу MS SQL. Модуль состоит из единственной функции AddDSNMSSQLSource, которая принимает четыре параметра:

  • ADSNName: имя источника DSN
  • AServer: имя сервера
  • ADataBase: имя по умолчанию базы данных на сервере
  • ADescription: необязательное описание источника (по умолчанию пустая строка)

Функция использует функцию SQLConfigDataSource от ODBC-драйвера для добавления или изменения источника DSN. Она также устанавливает некоторые registry-ключи для настройки соединения использовать протокол TCP/IP и порт 1433.

Разбивка кода:

  • Секция интерфейса определяет функцию AddDSNMSSQLSource, которая возвращает булевое значение, указывающее, была ли операция успешной.
  • Секция реализации содержит фактический код функции. Она использует локальную переменную params для создания строки, представляющей конфигурацию источника DSN.
  • Функция SetNetLibParam используется для установки некоторых registry-ключей для настройки соединения. Она создает объект TRegistry и открывает необходимый registry-ключ. Если ключ не существует, она его создает. Затем она устанавливает значение ключа ConnectTo с именем сервера, протоколом (TCP/IP) и номером порта.
  • Основная часть функции вызывает SQLConfigDataSource, чтобы добавить или изменить источник DSN с помощью строки params в качестве входного параметра. Она также возвращает результат функции SetNetLibParam.
  • Пример использования показывает, как вызывать функцию AddDSNMSSQLSource с некоторыми примерными значениями, а затем проверять, была ли операция успешной перед обработкой ошибок.

В целом, этот модуль предоставляет удобный способ добавления или изменения пользовательских источников ODBC DSN для доступа к серверам MS SQL в приложениях Delphi.

Добавляет или модифицирует указанный пользовательский ODBC DSN-источник для доступа к MS SQL-серверу.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Alias ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-15 23:53:27/0.0037481784820557/0