これが私の状況です
という名前のサービスがあります。ここで、 という特定のサービスに接続するために使用する をBaseDataService
作成します。接続しようとしているサービスには、使用する必要があるすべてのデータ テーブルを含むスキーマが含まれています。LocalDataAdapter
DataBaseLayer
次に、 から派生した別のサービスを作成します。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として割り当てられ、上記のコードでそれを行っているため、その理由を理解できないことです.しばらくここにいますが、この部分を乗り越えることはできません。