質問

Progress 4GL データベースから SQL Server にデータを取得しようとしています。

理想的には、進行中の ODBC ドライバー ゲートウェイはマルチコアをサポートしていないため (少なくとも使用しているバージョンでは)、ODBC ドライバーを介するのではなく、これを .NET 内で直接実行したいと考えています。

.NET から Progress 4GL データベースに接続する方法をご存知ですか (理想的には C# ですが、ここでは柔軟に対応します...);)))?

乾杯

ニック

役に立ちましたか?

解決

あなたが直接4GLプログラムにプログレスOpenEdgeバージョン10.2またはより良いあなたは埋め込むことができます.NETコントロールを使用している場合。しかし、それはsledghammerでハエを叩きのようになります... そして、それがなかった場合でも、プログレス4GL(プログラミング言語)が積極的にシングルスレッドで、マルチスレッド.NETコントロールをサポートしていません。

4GLおよびSQL-92デシベルエンジン(進捗状況は、ストレージエンジンに2つの異なるインタフェースをサポートしています)の両方が、マルチスレッド、あなたが持っている限り多くのコアを利用する完全に満足してます。

あなた ただし、ライセンスの制限を有することができる - 「ワークグループ」のライセンスは、V9、早期V10にセマフォベースの並行処理アルゴリズムを使用しています。 (以降のバージョンは、非常に限られたミューテックス(スピンロック)を使用する。)「企業」DBはそのような制限を有していない。

それとも、ターゲット・システムは、単に複数のODBC接続をサポートするように設定されていない可能性がある(DB管理者が知っておくべき、重要なパラメータは-Mn、-MA及びおそらく-Mpbです)。

私はこれをやっていたなら、私は、私は、データの異なるセグメントに対して複数のセッションを開始することにより、単純に偽のマルチスレッドアクセスだろうと思います。

他のヒント

あなたはそれがOpenEdge DBとの仕事にかなり簡単だJDBCから、Javaの+ JDBCドライバを使用する場合は、それは簡単です。

わからない程度MS-SQL Serverのが、MySQLは喜んでJDBCおよび輸入の選択またはあなたのためにすべてのテーブルを経由してOpenEdgeに接続されていることをデータベースの移行を持っています。

私は常に進歩ODBCドライバは、.NETとバギーと面倒、私は私ができる限りそれらを避けることがわかりました。

これは単に悪いと、それはシングルスレッドですされているがまた、で動作するようにアプリケーション・サーバーを持っている、あなたはマルチスレッドのアクセスのための限られた接続制限があるでしょう。このオプションの設定ステートレスサービスを選択した場合は。

私は遅刻が、何かを示唆するのに便利かもしれないと思った...

あなたはOpenEdge Open Clientのプロキシを使用してデータに.NETとプラグを使用して、ビジネスロジックを記述することができます。あなたがプロキシの周りの素敵な境界(データ・アクセス)層とプロキシを構築する場合、もう少しエキスよりも、.NETでのごBLが使用するデータの操作を行い、その後、いくつかの時点で、あなたはそれを交換することができるはずです。既存のアプリは巨大で、それは難しい、それをレイヤーになりますがっしりしている場合、これは困難になります。これはまた、あなたが進展appserversとで作業していると仮定します。

あなたがappserversとを使用していない場合、あなたはまだ.NETでのデータアクセスを書いて、COM呼び出し可能ラッパーのセットのまわりでそれをラップすることができます。

...これらはあなたの4GL「クライアントコード」から直接呼び出すことができます。このアプローチでは、SQL Serverへの移動は少し難しくなりますが、それでも、それはあなたが望む方向にあなたを移動することがあります。

グッドラック!

私はこれが 少し スレッドの死霊術のようなものですが、もし答えを探している哀れな魂がいるなら、私が CQRS と .NET を使ってそれを行った方法を以下に示します。

  • データ操作を実行するために Progress コマンドとクエリを作成しました。
  • コマンドとクエリは、コマンド ディスパッチャまたはクエリ ディスパッチャを呼び出すことによって .NET からアクセスされました。
    • ディスパッチャーには Webspeed サーバーからアクセスできました。
    • ディスパッチャはコマンドまたはクエリ名とフォーム データを受け取りました。
    • コマンド名またはクエリ名を呼び出し、クエリ ディスパッチャーの場合は一時テーブル ハンドルが返されることを期待しました。
    • クエリが一時テーブル ハンドルを返すと、クエリ ディスパッチャはその内容を JSON として Web ストリームに書き込みました。

JSON を利用できるようになると、データ アクセスが迅速かつマルチスレッドになりました。

あなたが移行する際に、

最初に、あなたは SQL Serverの統合サービスを見てをしている必要がありますMicrosoft SQL Serverへのデータ。あなたは.NETに変換ルールをコーディングしたい場合は、 Npgsqlのプロバイダのを見てみましょう。それも、それゆえ、それが開発するのは非常に簡単なはず、 ADO.NET Entity Frameworkのをサポートしています移行アプリケーションます。

私は非常に遅く、この質問への答えと思いますが、誰もがこれを行うために探している場合、私はopenedgeでsqldumpユーティリティのためにまっすぐに向かうでしょう。テキストに直接テーブルの内容をダンプします。とても早い。あなたはまた、そう、あなたはあなたのSQLテーブル(複数可)にテキストファイルから構成ファイルを尋問するためのコード、およびロード・データを書き込むことができ、他のツールとの構造をダンプすることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top