Интерфейс доступа к словарю Solarix.IDataAccessLayer

Этот .NET класс инкапсулирует средства для работы с конкретной СУБД, скрывая от остального кода особенности реализации, ограничения или диалектные отличия используемого хранилища грамматического словаря, к примеру способ генерации уникальных первичных ключей или технологию подключения.

Для каждой версии СУБД и программного способа работы с ней необходим класс, унаследованный от IDataAccessLayer - см. далее. Так как в состав SDK входят исходные тексты всех классов библиотеки, можно написать интерфейс доступа для других СУБД на основе имеющихся, либо модифицировать имеющиеся. Кроме того, благодаря поддержке ODBC, можно начать работу с новыми СУБД с минимальными усилиями.

Исходный текст - файл IDataAccessLayer.cs

MSSQL_DataAccessLayer - провайдер для MS SQL через ADO.NET

Конструктор получает единственный аргумент - объект класса System.Data.SqlClient.SqlConnection для используемого соединения. Обратите внимание на свойство MultipleActiveResultSets=true в строке подключения. Без него работа с грамматическим словарем может приводить к ошибкам и генерации исключительных ситуаций.

Пример подключения к MS SQL:

   SqlConnection cnx = new SqlConnection(
                                         "Data Source=localhost;"+
                                         "Initial Catalog=solarix;"+
                                         "Integrated Security=True;"+
                                         "MultipleActiveResultSets=true;"
                                        );
   cnx.Open();
   
   MSSQL_DataAccessLayer dal = new MSSQL_DataAccessLayer(cnx);
   Solarix.Dictionary dict = new Solarix.Dictionary(dal);

   // ...

MySQL_DataAccessLayer - доступ к словарю в MySQL через официальный .NET Provider.

Конструктор получает единственный аргумент - объект класса MySql.Data.MySqlClient.MySqlConnection для используемого соединения.

Пример подключения к MySQL:

   string cnx_string = "server=localhost;user id=root; password=; database=solarix; pooling=false;";
   MySql.Data.MySqlClient.MySqlConnection cnx = new MySql.Data.MySqlClient.MySqlConnection(cnx_string);
   cnx.Open();
   MySQL_DataAccessLayer dal = new MySQL_DataAccessLayer(cnx);
   Solarix.Dictionary dict = new Solarix.Dictionary(dal);

   // ...

Альтернативный способ подключения к морфологическому словарю в MySQL - использование "неуправляемой" Win32 DLL с процедурным API, скомпилированной в варианте с поддержкой MySQL. В конфигурационном файле словаря есть механизм задания строки подключения к базе данных, при этом используется самый низкоуровневый API сервера БД.

FireBird_DataAccessLayer - доступ к словарю в FireBird через официальный .NET provider.

Конструктор получает единственный аргумент - объект класса FirebirdSql.Data.FirebirdClient.FbConnection для используемого соединения.

Пример подключения к FireBird:

   FirebirdSql.Data.FirebirdClient.FbConnectionStringBuilder cs = new FirebirdSql.Data.FirebirdClient.FbConnectionStringBuilder();
        
   cs.DataSource = "localhost";
   cs.Database = "e:\\db\\solarix.fdb";
   cs.UserID = "SYSDBA";
   cs.Password = "masterkey";
   cs.Dialect = 3;
   cs.Charset = "UTF8";
        
   string cnx_string = cs.ToString();

   FirebirdSql.Data.FirebirdClient.FbConnection cnx = new FirebirdSql.Data.FirebirdClient.FbConnection(cnx_string);
   cnx.Open();
   FireBird_DataAccessLayer dal = new FireBird_DataAccessLayer(cnx);
   Solarix.Dictionary dict = new Solarix.Dictionary(dal);

   // ...

Oracle_DataAccessLayer - доступ к словарю в Oracle через официальный .NET provider.

Конструктор получает единственный аргумент - объект класса Oracle.DataAccess.Client.OracleConnection для используемого соединения.

Пример подключения к Oracle:

   string cnx_string = "Data Source=TEST;User Id=USERNAME;Password=masterkey;";
   Oracle.DataAccess.Client.OracleConnection cnx = new Oracle.DataAccess.Client.OracleConnection(cnx_string);
   cnx.Open();
   Oracle_DataAccessLayer dal = new Oracle_DataAccessLayer(cnx);

   // ...

ODBC_DataAccessLayer - обобщенный провайдер для доступа к словарю через ODBC

Конструктор получает единственный аргумент - объект класса System.Data.Odbc.OdbcConnection для используемого соединения. Реализация доступа к грамматическому словарю через ODBC имеет особенности, связанные главным образом с редактированием. Дело в том, что для этого варианта нет общего, не зависимого от конкретной модели БД, способа генерации первичных ключей. Вместо этого в коде этого класса зашит универсальный, но недопустимый во многих случаях способ через Coalesce(Max(...)+1,0). Поэтому перед использованием данного класса следует убедиться, что это не вступит в противоречие с архитектурой клиент-серверного приложения.

Пример подключения:

   System.Data.Odbc.OdbcConnection cnx = new System.Data.Odbc.OdbcConnection("Dsn=solarix_firebird;");
   cnx.Open();
   ODBC_DataAccessLayer dal = new ODBC_DataAccessLayer(cnx);

   // ...

Навигация

Вернуться к описанию ORM

English version of the page

Подключение к словарной базе в процедурном API грамматического словаря

  © Elijah Koziev 2010
прикладные проекты на основе грамматического словаря API грамматической машины компоненты для доступа к грамматическому словарю условия получения SDK токенизатор и сегментатор морфологический анализ и синтез лемматизатор база N-грамм синтаксический анализатор словоформы морфология и синтаксис русского языка падеж число род совершенный и несовершенный вид экспорт в SQL формат экспорт в XML формат скрипт SQL словаря структура SQL словаря структура XML словаря компоненты для доступа к грамматическому словарю ORM Persistent Dictionary Library лемматизация стемминг примеры использования грамматического словаря склонение существительных в русском языке склонение русских прилагательных спряжение глаголов в русском языке поиск текста с учетом морфологии OCR подсистема расширенные регулярные выражения генератор текста генератор случайного текста и имитатор рандомизатор синонимизатор перефразировщик Статистика буквенных паттернов

Грамматический словарь русского языка



Грамматический словарь
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
требования: 512 Mb свободной памяти, 300 Мб на диске
размер:         34 Мб

  скачать грамматический словарь купить грамматический словарь SDK грамматического словаря
грамматический словарь русского языка



SDK Грамматического словаря



SDK Грамматического Словаря
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
размер:         13 Мб

SQL словарь (демо):
sqlite mysql oracle firebird mssql

скачать демо-версию SDK купить SDK API грамматического словаря



Поисковая система



Integra
настольная и сетевая поисковая система 

платформа:  Windows XP ... Windows 7
требования: 512 Mb свободной памяти
размер:         21 Мб

Дополнительные компоненты:
MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать поисковую систему SDK поисковой системыописание поисковой системы



SDK Поисковой системы



SDK Поискового движка
API для настольной и сетевой поисковая система 

платформа:  Windows XP ... Windows 7
размер:         17 Мб

Дополнительные компоненты:

MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать SDK SDK поисковой системы



Экранный переводчик



Translator
экранный переводчик

платформа:  Windows XP ... Windows 7
требования: 256 Mb свободной памяти
размер:         4.4 Мб

Дополнительные компоненты:
расширенный англо-русский словарь 6.4 Мб


скачать экранный переводчикописание экранного переводчика



изменено 13-Mar-11