1

既存の Delphi コードを使用して、SQL Server ストアド プロシージャを記述したいと考えています。

以前は、拡張ストアド プロシージャを使用していました。Delphi でコンパイルされた dll を SQL Server 拡張ストアド プロシージャでラップしたものです。

拡張ストアド プロシージャは非推奨になったため、通常の dll などをラップするサンプル CLR コードなど、「トリック ドメイン」でも解決策があるのではないかと思います。

例を挙げると:

ドキュメントを暗号化してデータベースに挿入し、ドキュメントを挿入または読み取るためのSQL Server関数/プロシージャに基づいて一種のAPIを作成したいので、SQL Serverにアクセスする他の人がそれらの関数を呼び出すことができます。

もちろん、代替ソリューションは Web サービスを使用することですが、最初に SQL Server の方法を試してみたいと思います。

注: Delphi Prism を使用したくありません。私のコードは XE2 用です。

4

2 に答える 2

5

Unsafe SQLCLR assemblies can p-invoke native dlls. A better way would be to expose the native DLL services as a COM interface and use COM interop from SQLCLR, or even call the COM APIs directly from SQL via OLE Automation Procedures. An even better way would be to rewrite the Delphi code as CLR code and invoke it directly as SQLCLR procedure. And the best way would be to use SQL Server native encryption features.

于 2012-08-10T07:59:22.610 に答える
0

言うまでもなく、SQL Server の CLR はパフォーマンスに深刻な打撃を与えることが保証されています。標準の CRUD 演算子を使用すれば問題ありません。もう 1 つの方法は、ファイル システムを暗号化メカニズムとして使用することです。ドキュメントへのカジュアルなアクセスを防止したいだけなら、これは良い方法です。それ以外の場合は、アクセス プロトコルを再考する時期かもしれません。

SQL Server の CLR は便利で悪い考えです。使用する場合は控えめに使用してください。

于 2012-08-10T15:34:10.757 に答える