# .NET API

# ADO.NET

Подключение к СУБД NitrosBase из C# производится через драйвер ADO.Net с названием Nitros.Net. Он включает в себя две библиотеки: Nitros.Net.Win.dll и nbclient.dll, и реализует подмножество интерфейсов, стандартных для ADO.Net:

  • IDbConnection
  • IDbTransaction
  • IDbCommand
  • IDataReader
  • IDbDataParameter
  • IDataParameterCollection

# IDbConnection: NitrosBaseConnection

Интерфейс IDbConnection реализован в классе NitrosBaseConnection.

Формат строки соединения (connection string):

data source='dbserver';initial catalog='dbname'; userid='username';password='password';

Справка по свойствам и методам интерфейса приведена в документации Microsoft (opens new window).

# IDbTransaction: NitrosBaseTransaction

Интерфейс IDbTransaction реализован в классе NitrosBaseTransaction.

Транзакции в СУБД NitrosBase в настоящее время не поддерживаются.

Справка по свойствам и методам интерфейса приведена в документации Microsoft (opens new window).

# IDbCommand: NitrosBaseCommand

Интерфейс IDbCommand реализован в классе NitrosBaseCommand.

  • Метод ExecuteNonQuery всегда возвращает 0, поскольку СУБД не поддерживает получение числа измененных запросом строк.
  • Метод Cancel не делает ничего, поскольку соответствующий метод отсутствует в API СУБД.
  • Метод Prepare производит фактическую подстановку значений параметров в запрос на стороне клиента.

Справка по свойствам и методам интерфейса приведена в документации Microsoft (opens new window).

# IDataReader: NitrosBaseDataReader

Интерфейс IDataReader реализован в классе NitrosBaseDataReader.

Не поддерживаются (возникает исключение NotImplementedException) следующие методы:

  • GetBoolean
  • GetByte
  • GetBytes
  • GetChars

Свойство RecordsAffected всегда имеет -1, поскольку СУБД не поддерживает определение числа затронутых записей.

Справка по свойствам и методам интерфейса приведена в документации Microsoft (opens new window).

# IDbDataParameter: NitrosBaseDataParameter

Интерфейс IDbDataParameter реализован в классе NitrosBaseDataParameter.

Свойства Scale, Precision, Size, ParameterDirection не поддерживаются или поддерживаются частично:

  • Precision и Scale всегда имеют значение 0, при попытке присвоения значения возникает исключение NotImplementedException.
  • Size всегда возникает исключение NotImplementedException.
  • ParameterDirection всегда имеет значение InputDirection, при попытке присвоения значения возникает исключение NotImplementedException.

Справка по свойствам и методам интерфейса приведена в документации Microsoft (opens new window).

# IDataParameterCollection: NitrosBaseDataParameterCollection

IDataParameterCollection реализован в NitrosBaseDataParameterCollection.

Справка по свойствам и методам интерфейса приведена в документации Microsoft (opens new window).

# Драйвер SSRS

Драйвер Microsoft Reporting Services позволяет строить отчеты на основе данных, хранящихся в СУБД NitrosBase. Регистрация драйвера описана на сайте Microsoft (opens new window).

При регистрации в RSReportDesigner.config:

  • для Visual Studio следует использовать 32-разрядную сборку (nbclient32.dll, Nitros.Net.Win.dll)
  • обе библиотеки (nbclient32.dll, Nitros.Net.Win) нужно скопировать во все указанные в инструкции каталоги
  • теги для RSReportDesigner.config:
<Extension Name="NB"  
Type="NitrosData.Nitros.Net.NitrosBaseConnectionReporting,Nitros.Net.Win"/>
<Extension Name="NB"  
Type="Microsoft.ReportingServices.QueryDesigners.SMQLQueryDesigner,Microsoft.ReportingServices.QueryDesigners.Extensions"/>