私はDelphi 7で作業しています。異なるDelphiアプリケーション間でADO接続オブジェクトを共有したいと思います。どのようにタイプライブラリを使用してそれを行うには?COM(タイプライブラリ)からTADOConnectionを返す方法
私はString/integer/someデータ型だけを返すことができますが、私はTADOConnectionを見ませんでした。 tADOConnectionを返すには?
私はDelphi 7で作業しています。異なるDelphiアプリケーション間でADO接続オブジェクトを共有したいと思います。どのようにタイプライブラリを使用してそれを行うには?COM(タイプライブラリ)からTADOConnectionを返す方法
私はString/integer/someデータ型だけを返すことができますが、私はTADOConnectionを見ませんでした。 tADOConnectionを返すには?
A TADOConnectionのは、AdoDB.PASで定義されている他のすべてのTAdoxxxオブジェクトとともに、 は「の上に座って」とWindowsのADOサブシステムで作成されたオブジェクトを使用しています。 D7ソースユニットAdoInt.Pasを見ると、これはC:\ PROGRAM FILES \ COMMON FILES \ SYSTEM \ ADO \ MSADO15.DLLのタイプライブラリインポート です。オブジェクトインターフェイス の1つが_Connectionであり、これはTAdoConnectionのすべての作業 を実行するインスタンスです。
AdoInt.Pasで定義されたオブジェクトは、プロセスの境界を越えて動作するインターフェースの一部、TAdoQuery様サーバとDelphi側AdoCustomDataset子孫間 を仲介ADOレベルのオブジェクトである 最も顕著RecordSet
オブジェクト、 これについての章はDavid Sceppaの "Programming ADO"(Microsoft Press) であり、COMを介してRecordSetオブジェクトを利用できるようにするテストCOMサーバーを作成しています。
ただし、私が実験で確立できた限り、 は、TAdoConnectionまたはその基礎となるConnectionObjectをCOMを使用してプロセス の境界を越えて処理することはできません。
しかし、もともとこの方向へのあなたの考えを動機付けたのは、単に新しいプロジェクトで同じ方法でAdoConnectionsを設定しなければならないという単純なものであれば、個人的に私はTAdoConnectionのカスタム子孫を派生させるだけです常にコードで使用するプロパティを作成し、Delphiに登録してコンポーネントパレットに表示させます。
DelphiクラスをCOMオブジェクトにすることはできません。 COMはそれがサポートする特定の型だけを返し、Delphiクラスはそれらのうちの1つではありません。それに直面して、あなたがしようとしていることは、それが価値があるよりはるかに多くの問題を抱えているようです。アプリケーション間でAdoConnectionを「共有」する必要があると思われるのはなぜですか?あなたはそれが何を期待していますか? – MartynA
@MartynA:私たちは常時実行する必要のあるベースアプリケーションを持っています。だから私は、TADOConnectionオブジェクトを作成し、ベースアプリケーションのDataBaseに接続し、他のすべてのアプリケーションで同じ接続を使用したいと思います。 – DelphiLearner
COM "マーシャル"について知っていますか? – MartynA