友達1C 7.7とPostgresの作り方

1C:Enterpriseのような一般的なソフトウェア製品の場合、開発者はクロスプラットフォームと多数のアプリケーションとの互換性を提供する必要があります。 特に、新しいバージョンごとに、すべての新しいDBMSのサポートが追加されています。



多くの企業(主に中小企業)は、バージョン7.7から8.xへの切り替えを急いでいません。 この場合、開発者が提供する互換性のあるDBMSはMicrosoft SQLのみです。 このオプションは、小規模企業にとって非常にコストがかかります。ワークステーションおよびMS SQL Serverのライセンスに加えて、MS Serverも購入する必要があります。



代替ソリューションは、サンクトペテルブルクの企業Etersoftが開発したSELTA @ Etersoftテクノロジーです。 SELTAは無料のPostgre SQL DBMSと組み合わせて使用​​され、1C 7.7がSQLデータベースを操作できるようにします。 この製品は市販されており、開発者によって手頃な価格で提供されています(ソリューションのコストは15,000 pからです)。MSSQL Serverの代替品。



SELTA @ Etersoftは、Postgre SQL用のMS SQL Serverエミュレーターです。 T-SQLダイアレクトからpgSQLへのSQLクエリの翻訳。 クライアントPCにSELTA @ Etersoftをインストールして設定するのは簡単です。インストーラを起動し、Postgre SQLへの接続を設定し、数回のマウスクリックでGUIを介してデータベースを作成します。 内部からテクノロジーを検討することは、はるかに興味深いです。 一見、SELTA @ Etersoftは、各リクエストを処理するときに、次のアクションを実行します。



ソフトウェアがリクエストを送信



SELECT TOP 2 * FROM tab;

.

.

.








要求はPostgre SQLによって受信、ブロードキャスト、および送信されます



SELECT * FROM tab LIMIT 2;

.








Postgre SQLはリクエストを受け入れ、処理し、結果を返しました。結果はリクエストを行ったソフトウェアに返されます。



これらすべてのアクションは、SQLの方言から別の方言への変換と呼ばれます。

レジストリ内のMS SQLサーバーのODBCドライバーがPostgresドライバーに変更されます。 このドライバーの要求はキャッチされ、解析され、Postgre SQL形式に変換されます。



画像



このエミュレーションを可能にするために、SELTA @ Etersoftは2つのDBMSの相違点、特にロックの違いとPostgresの動的カーソルの欠如に関連する多くの問題を解決します。 たとえば、動的クエリが見つからないという問題は、すべての変更を修正し、すべてのテーブルにトリガーを自動的に作成し、変更を加えたテーブルによって解決されました。 これにより、ドライバーは、ダイナミックによって作成されたカーソルを再作成する必要があるかどうかを確認します。



一方、このようなスキームは、SELTA @ Etersoftの使用に制限を課し、コンパイラが完全に汎用的になることを許可しません。 現在、ODBCドライバーを介して実行されるプログラムのみをサポートしています。 ただし、開発者はSELTA @ Etersoftをサーバーとして実装する予定です。これにより、MS SQLを使用するすべてのアプリケーションとの互換性が確保されます。



PostgresおよびMS SQL Serverのロックシステムは非常に重要です。 しかし、この問題はテクノロジーに関する最初の知識を超えており、読者の興味をそそる場合は、記事の続きでより詳細に検討することができます。



All Articles