-1

これが私の状況です

という名前のサービスがあります。ここで、 という特定のサービスに接続するために使用する をBaseDataService作成します。接続しようとしているサービスには、使用する必要があるすべてのデータ テーブルを含むスキーマが含まれています。LocalDataAdapterDataBaseLayer

次に、 から派生した別のサービスを作成します。BaseDataServiceこれには、LocalDataAdapter前述のものが含まれます。問題は、ローカル データ アダプターを構成した後、サービス内のデータ テーブルを開けないことDataBaseLayerです。コードの投稿:

 Procedure TBaseDataService.ConnectDatabaseLayerToAdapter
 begin
   DataBaseLayerAdapter.ServiceInstance := DatabaseLayerService as IDataAbstractLocalServiceAccess
 end

 Procedure TBaseDataService.DataAbstractServiceCreate(Sender: TObject);
 begin
   DataBaseLayerAdapter.ServiceName := ' ';
 end

 function TBaseDataService.GetDataBaseLayerService: IDataBaseLayerService;
 begin
   if not Assigned(FDatabaseLayerService) then
     FDataBaseLayerService := (CreateAndConnectService('DataBaseLayerService') as IDataBaseLayerService);
   Result := FDataBaseLayerService;
 end


   ConnectDataBaseLayerToAdapter;
   tbl_SA_Receipts.Open;

注: 最後の部分は、接続しようとする場所DataBaseLayerServiceです。

最初にこのエラーが発生しました:

「サーバーで例外が発生しました: モジュール内のアドレス 014FD9C0 へのアクセス違反 .... アドレス 0000098 の読み取り」

私は多くの作業の後にこの部分を修正することができましたが、今私が抱えている問題は、サーバーインスタンスを割り当てたときにnullとして割り当てられ、上記のコードでそれを行っているため、その理由を理解できないことです.しばらくここにいますが、この部分を乗り越えることはできません。

4

1 に答える 1