Я занимаюсь разработкой веб-интерфейса для сервисного приложения для управления бизнесом, которое использует базу данных Pervasive SQL для хранения информации (кстати, это не мой выбор). На данный момент я использую официальную реализацию Pervasive SqlClient с настраиваемым набором классов генерации запросов, поэтому я могу писать такой код, как:
new SelectQuery().From("CUSTOMER").Fields("CUSTOMERNBR", "NAME");
Пока он работает нормально, но тут и там у меня возникают небольшие проблемы. Вместо того, чтобы продолжать двигаться в этом направлении, я бы предпочел использовать проверенный DAL. Однако мне не очень повезло с поиском системы DAL, которая могла бы взаимодействовать с всеобъемлющей базой данных.
У Opf3 есть Pervasive Storage Provider, но я никогда раньше не слышал об этой структуре, и на веб-сайте отображается только логотип Pervasive v8, а мне нужно что-то, что будет работать с v9.5 и, в будущем, v10.
Я попытался написать поставщика NHibernate, но это оказалось еще большей головной болью, чем моя текущая система генерации запросов.
Что ты предлагаешь? Я нахожусь в очень спешке, поэтому мне нужно что-то, что будет интегрировано как можно проще.





Вы должны быть в состоянии найти драйверы ODBC в Pervasive - они должны быть надежными, иначе Pervasive уже не будет работать. И большинство программ абстракции более высокого уровня могут работать с данными уровня ODBC. Я думаю, что это будет ваш лучший выбор, если вы чувствуете, что вам действительно нужно абстрагироваться от него дальше, чем сам ODBC.
ODBC должен извлекать общие аномалии - вот для чего он нужен. Он работает на универсальном SQL.
Многие продукты, на которые полагается малый бизнес, не являются надежными, но компании по-прежнему полагаются на них, поэтому они остаются в бизнесе. Вообще говоря, хотя библиотека ADO будет работать лучше, чем ODBC, и более портативна.
Pervasive.SQL имеет довольно надежный адаптер ADO и в большинстве случаев уступает ODBC; Я успешно использовал if в течение многих лет, но не без головной боли синтаксиса Pervasive. В защиту Pervasive их реляционный движок действительно соответствует SQL-92 и большей части SQL-99.
Что мне интересно, так это то, с какими частями синтаксиса у вас проблемы, что вызывает ваше горе?
Какую версию движка Pervasive вы используете?
Я использую Pervasive v9.5 (в настоящее время единственная версия, которую поддерживает наше настольное приложение). Проблемы с синтаксисом в основном возникают из-за того, что системы ORM хотят использовать LIMIT вместо TOP или скобки вместо кавычек. Однако поставщик OPF3 PSQL решает эти проблемы, и он отлично работает.
Проблема в том, что DAL / ORM должен знать синтаксис SQL, специфичный для Pervasive. Это проблема, с которой я столкнулся с NHibernate. Он мог нормально использовать Pervasive SqlClient, но я столкнулся с проблемами при попытке заставить NHibernate «говорить» на языке PSQL.