FAQ
スクラッチ ワークスペースの作成

ナレッジ番号:5285 | 登録日:2023/07/26 | 更新日:2024/10/09

概要

ScratchWorkspaceFactory と FileGDBScratchWorkspaceFactory クラスは、スクラッチ ワークスペースとして知られている、一時的なファイル ジオデータベースまたはパーソナル ジオデータベースに接続するために使用されます。これらのワークスペースは、複数のステップを要する操作過程での中間結果を保存するためによく使われます。これらのファクトリは FileGDBWorkspaceFactory や AccessWorkspaceFactory クラスとは以下の 2 つの理由で基本的に異なります。

  • このファクトリはスクラッチ ワークスペース特有のインタフェースを実装しています(IScratchWorkspaceFactory と IScratchWorkspaceFactory2)。これらのインタフェースのメソッドとプロパティは一時的なジオデータベース用に設計されています。
  • スクラッチ ワークスペースは単一セッション内で作成され、使用されるように設計されています。
    もしアプリケーションが後で再び開始された場合、前回スクラッチワークスペースに保存されたデータを取り出す確実な方法はありません。

2 つの型のスクラッチ ワークスペース ファクトリは同じような方法で使用できますが、ファイル ジオデータベースとして作成されたスクラッチ ワークスペースの方がクロス プラットフォームであるその特性を生かしたり、より大きなデータを扱うことができます。

スクラッチ ワークスペース ファクトリはデフォルトのスクラッチ ワークスペースを保持しています。デフォルトのスクラッチ ワークスペースが初めて要求されると、スクラッチ ワークスペースが作成されて返されます。同じセッション内で続けて要求された場合は、同じスクラッチ ワークスペースが返されます。

サンプル コード

以下のサンプル コードではデフォルト スクラッチ ワークスペースを取得する方法を示しています。

スクラッチ ワークスペース ファクトリの作成

public static IWorkspace OpenScratchWorkspace() 
{ 
    // スクラッチ ワークスペース ファクトリの作成 
    Type factoryType = Type.GetTypeFromProgID( 
        "esriDataSourcesGDB.ScratchWorkspaceFactory"); 
    IScratchWorkspaceFactory scratchWorkspaceFactory = (IScratchWorkspaceFactory) 
        Activator.CreateInstance(factoryType); 

    // デフォルトのスクラッチ ワークスペースを取得 
    IWorkspace scratchWorkspace = scratchWorkspaceFactory.DefaultScratchWorkspace; 
    return scratchWorkspace; 
}
Public Shared Function OpenScratchWorkspace() As IWorkspace 
     'スクラッチ ワークスペース ファクトリの作成 
     Dim factoryType As Type = Type.GetTypeFromProgID("esriDataSourcesGDB.ScratchWorkspaceFactory") 
     Dim scratchWorkspaceFactory As IScratchWorkspaceFactory = CType(Activator.CreateInstance(factoryType),      IScratchWorkspaceFactory) 

     'デフォルトのスクラッチ ワークスペースを取得 
     Dim scratchWorkspace As IWorkspace = scratchWorkspaceFactory.DefaultScratchWorkspace 
     Return scratchWorkspace 
End FunctionThe following code example shows how to get the default scratch workspace based on a file geodatabase: 

FileGDB スクラッチ ワークスペース ファクトリの作成

 public static IWorkspace OpenFileGdbScratchWorkspace() 
{ 
    // FileGDB スクラッチ ワークスペース ファクトリの作成 
    Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBScratchWorkspaceFactory"); 
    IScratchWorkspaceFactory scratchWorkspaceFactory = (IScratchWorkspaceFactory) 
    Activator.CreateInstance(factoryType); 

    // デフォルトのスクラッチ ワークスペースを取得 
    IWorkspace scratchWorkspace = scratchWorkspaceFactory.DefaultScratchWorkspace; 
    return scratchWorkspace; 
}
Public Shared Function OpenFileGdbScratchWorkspace() As IWorkspace 
    'FileGDB スクラッチ ワークスペース ファクトリの作成
     Dim factoryType As Type = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBScratchWorkspaceFactory") 
   Dim scratchWorkspaceFactory As IScratchWorkspaceFactory = CType(Activator.CreateInstance(factoryType),IScratchWorkspaceFactory) 

    'デフォルトのスクラッチ ワークスペースを取得 
     Dim scratchWorkspace As IWorkspace = scratchWorkspaceFactory.DefaultScratchWorkspace 
    Return scratchWorkspace 
End Function 

メタデータ

機能

種類

製品