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

Извлечение сетевых настроек SQL Server с использованием Delphi: альтернатива PowerShell и .NET

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

Вопрос пользователя заключается в необходимости извлечения сетевых настроек протоколов сети SQL Server с помощью языка программирования Object Pascal в среде разработки Delphi. Пользователь уже пытался найти решение, обратившись к реестру Windows или конфигурационным файлам, но единственным найденным примером было использование PowerShell и классов .NET. В связи с этим, задача состоит в том, чтобы предоставить пример кода, который позволит получить необходимую информацию без использования PowerShell и .NET.

Подтвержденный ответ

Для решения поставленной задачи можно использовать класс WMI ServerNetworkProtocol, а также подключение к соответствующему пространству имен, в зависимости от версии SQL Server:

  • SQL Server 2005 = ComputerManagement
  • SQL Server 2008 = ComputerManagement10
  • SQL Server 2012 = ComputerManagement11

Ниже представлен пример кода на Object Pascal, который демонстрирует, как можно извлечь информацию о сетевых протоколах SQL Server:

{$APPTYPE CONSOLE}

uses
  SysUtils,
  ActiveX,
  ComObj,
  Variants;

type
  TMSSQlServerType = (MSSQL2005, MSSQL2008, MSSQL2012);

procedure GetServerNetworkProtocolInfo(SQLServerType: TMSSQlServerType; const InstanceName: string);
const
  WbemUser = '';
  WbemPassword = '';
  WbemComputer = 'localhost';
  wbemFlagForwardOnly = $00000020;
  MSSQLNameSpaces: array[TMSSQlServerType] of string = ('ComputerManagement','ComputerManagement10','ComputerManagement11');
var
  FSWbemLocator: OLEVariant;
  FWMIService: OLEVariant;
  FWbemObjectSet: OLEVariant;
  FWbemObject: OLEVariant;
  oEnum: IEnumVariant;
  iValue: LongWord;
begin
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService := FSWbemLocator.ConnectServer(WbemComputer, Format('root\Microsoft\SqlServer\%s', [MSSQLNameSpaces[SQLServerType]]), WbemUser, WbemPassword);
  FWbemObjectSet := FWMIService.ExecQuery(Format('SELECT * FROM ServerNetworkProtocol Where InstanceName="%s"', [InstanceName]), 'WQL', wbemFlagForwardOnly);
  oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
  begin
    Writeln(Format('Enabled                        %s', [String(FWbemObject.Enabled)])); // Boolean
    Writeln(Format('MultiIpConfigurationSupport    %s', [String(FWbemObject.MultiIpConfigurationSupport)])); // Boolean
    Writeln(Format('ProtocolDisplayName            %s', [String(FWbemObject.ProtocolDisplayName)])); // String
    Writeln(Format('ProtocolName                   %s', [String(FWbemObject.ProtocolName)])); // String
    Writeln;
    FWbemObject := Unassigned;
  end;
end;

begin
  try
    CoInitialize(nil);
    try
      GetServerNetworkProtocolInfo(MSSQL2008, 'MSSQLSERVER');
    finally
      CoUninitialize;
    end;
  except
    on E: EOleException do
      Writeln(Format('EOleException %s %x', [E.Message, E.ErrorCode]));
    on E: Exception do
      Writeln(E.ClassName, ':', E.Message);
  end;
  Writeln('Press Enter to exit');
  Readln;
end.

Этот код можно скомпилировать в консольное приложение в среде Delphi, чтобы получить информацию о сетевых протоколах SQL Server без использования PowerShell и .NET. Пример демонстрирует, как работать с WMI, подключаясь к соответствующему пространству имен, и извлекать данные о статусе протоколов, поддержке мульти-IP и других характеристиках.

Создано по материалам из источника по ссылке.

Вопрос связан с извлечением сетевых настроек SQL Server с помощью языка программирования Object Pascal в Delphi, без использования PowerShell и .NET.


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

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




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


:: Главная :: SQL ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 13:41:54/0.013797044754028/1