Методы взаимодействия с базой данных Pervasive SQL

Я занимаюсь разработкой веб-интерфейса для сервисного приложения для управления бизнесом, которое использует базу данных Pervasive SQL для хранения информации (кстати, это не мой выбор). На данный момент я использую официальную реализацию Pervasive SqlClient с настраиваемым набором классов генерации запросов, поэтому я могу писать такой код, как:

new SelectQuery().From("CUSTOMER").Fields("CUSTOMERNBR", "NAME");

Пока он работает нормально, но тут и там у меня возникают небольшие проблемы. Вместо того, чтобы продолжать двигаться в этом направлении, я бы предпочел использовать проверенный DAL. Однако мне не очень повезло с поиском системы DAL, которая могла бы взаимодействовать с всеобъемлющей базой данных.

У Opf3 есть Pervasive Storage Provider, но я никогда раньше не слышал об этой структуре, и на веб-сайте отображается только логотип Pervasive v8, а мне нужно что-то, что будет работать с v9.5 и, в будущем, v10.

Я попытался написать поставщика NHibernate, но это оказалось еще большей головной болью, чем моя текущая система генерации запросов.

Что ты предлагаешь? Я нахожусь в очень спешке, поэтому мне нужно что-то, что будет интегрировано как можно проще.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
2 925
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы должны быть в состоянии найти драйверы ODBC в Pervasive - они должны быть надежными, иначе Pervasive уже не будет работать. И большинство программ абстракции более высокого уровня могут работать с данными уровня ODBC. Я думаю, что это будет ваш лучший выбор, если вы чувствуете, что вам действительно нужно абстрагироваться от него дальше, чем сам ODBC.

Проблема в том, что DAL / ORM должен знать синтаксис SQL, специфичный для Pervasive. Это проблема, с которой я столкнулся с NHibernate. Он мог нормально использовать Pervasive SqlClient, но я столкнулся с проблемами при попытке заставить NHibernate «говорить» на языке PSQL.

David Brown 02.01.2009 02:14

ODBC должен извлекать общие аномалии - вот для чего он нужен. Он работает на универсальном SQL.

dkretz 02.01.2009 02:16

Многие продукты, на которые полагается малый бизнес, не являются надежными, но компании по-прежнему полагаются на них, поэтому они остаются в бизнесе. Вообще говоря, хотя библиотека ADO будет работать лучше, чем ODBC, и более портативна.

Arcan.NET 21.08.2015 21:20
Ответ принят как подходящий

Pervasive.SQL имеет довольно надежный адаптер ADO и в большинстве случаев уступает ODBC; Я успешно использовал if в течение многих лет, но не без головной боли синтаксиса Pervasive. В защиту Pervasive их реляционный движок действительно соответствует SQL-92 и большей части SQL-99.

Что мне интересно, так это то, с какими частями синтаксиса у вас проблемы, что вызывает ваше горе?

Какую версию движка Pervasive вы используете?

Я использую Pervasive v9.5 (в настоящее время единственная версия, которую поддерживает наше настольное приложение). Проблемы с синтаксисом в основном возникают из-за того, что системы ORM хотят использовать LIMIT вместо TOP или скобки вместо кавычек. Однако поставщик OPF3 PSQL решает эти проблемы, и он отлично работает.

David Brown 07.01.2009 06:42

Другие вопросы по теме