名前 題名 ▼ Syakeさん > ▼ sakiyamaさん > > > たとえば、今のように全部のDLLがデータモジュールを > > 持つのではなく、ADO接続をするDLLを一個作ってそこから > > ConnectionObjectを取得してって感じです。 > > お〜おっ!素晴らしい。 > 完璧です。!(^^)! > 以前、Dll化に挑戦したのですが、何せ未熟者ですので > 挫折いたしました。 > ありがとうございます。 > > //////////////////////////////////////////////////////////////////// > // DLL ------------------------------------- > > (略) > var > dmSqlConnect: TdmSqlConnect; > procedure SqlConnect(out Connection:IUnknown);stdcall; > > implementation > > procedure SqlConnect(out Connection:IUnknown); > begin > if dmSqlConnect = nil then > dmSqlConnect := TdmSqlConnect.Create(nil); > > if not dmSqlConnect.SqlConnect.Connected then > dmSqlConnect.SqlConnect.Open; > dmSqlConnect.SqlConnect.ConnectionObject.QueryInterface(IUnknown, Connection) > end; > > {$R *.dfm} > > procedure TdmSqlConnect.DataModuleDestroy(Sender: TObject); > begin > dmSqlConnect.Free; > end; > end. > > //=====================================================================// > (略) > var > frmADOTest: TfrmADOTest; > procedure SqlConnect(out Connection: IUnknown);stdcall; external 'sqlConnection.dll'; > > implementation > > {$R *.dfm} > > procedure TfrmADOTest.Button1Click(Sender: TObject); > var > conn: IUnknown; > begin > SqlConnect(conn); > if conn = nil then Exit; > adoConect := TADOConnection.Create(Application); > adoConect.ConnectionObject := conn as _Connection; > ADOTable1.Connection := adoConect; > ADOTable1.TableName := 'ABC'; > ADOTable1.Active := True; > end; > > procedure TfrmADOTest.FormClose(Sender: TObject; var Action: TCloseAction); > begin > adoConect.Free; > end; > end. > /////////////////////////////////////////////////////////////////////// > な、感じで・・・すかね。 > > 実行時パッケージは、他の絡みもあり使えません。(^_^;) > > > Firebird情報は > > http://nekomimi.s41.xrea.com/x/firebird/pukiwiki/ > > が詳しいですね。 > これは、知りませんでした。 GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link