Pull メソッド (String, String, String, RdaTrackOption)
リモート SQL Server データベースからデータをダウンロードし、ローカルの SQL Server Compact 3.5 データベース内の単一のテーブルに格納します。
名前空間: System.Data.SqlServerCe
アセンブリ: System.Data.SqlServerCe (System.Data.SqlServerCe.dll)
構文
'宣言
Public Sub Pull ( _
localTableName As String, _
sqlSelectString As String, _
oleDBConnectionString As String, _
trackOption As RdaTrackOption _
)
'使用
Dim instance As SqlCeRemoteDataAccess
Dim localTableName As String
Dim sqlSelectString As String
Dim oleDBConnectionString As String
Dim trackOption As RdaTrackOption
instance.Pull(localTableName, sqlSelectString, _
oleDBConnectionString, trackOption)
public void Pull(
string localTableName,
string sqlSelectString,
string oleDBConnectionString,
RdaTrackOption trackOption
)
public:
void Pull(
String^ localTableName,
String^ sqlSelectString,
String^ oleDBConnectionString,
RdaTrackOption trackOption
)
member Pull :
localTableName:string *
sqlSelectString:string *
oleDBConnectionString:string *
trackOption:RdaTrackOption -> unit
public function Pull(
localTableName : String,
sqlSelectString : String,
oleDBConnectionString : String,
trackOption : RdaTrackOption
)
パラメーター
- localTableName
型: System. . :: . .String
抽出された SQL Server のレコードを受け取る SQL Server Compact 3.5 のテーブルの名前。同名のテーブルが既に存在する場合、エラーが発生します。
- sqlSelectString
型: System. . :: . .String
SQL Server データベースから抽出して SQL Server Compact 3.5 データベースに格納するテーブル、列、およびレコードを指定する任意の有効な Transact-SQL ステートメント。これには SELECT ステートメントやストアド プロシージャが含まれます。
- oleDBConnectionString
型: System. . :: . .String
- trackOption
型: System.Data.SqlServerCe. . :: . .RdaTrackOption
プルされたテーブルに対する変更を SQL Server Compact 3.5 が追跡するかどうか、また、プルされたテーブルに存在するインデックスを PRIMARY KEY 制約と共にデバイスに格納するかどうかを示すオプション。
説明
SQL Server Compact 3.5 サーバー エージェントが置かれている仮想ディレクトリが基本認証または統合 Windows 認証を使用するように構成されている場合は、InternetLogin プロパティと InternetPassword プロパティを指定する必要があります。SQL Server のテーブルからプルするデータは、sqlSelectString によって制御します。結果のレコードセットが Timestamp など、サポートされていないデータ型を含んでいる場合は、エラーが発生します。sqlSelectString で WHERE 句を指定すると、返されるレコードを制御できます。たとえば、SELECT * FROM Customers WHERE State='CA' は、カリフォルニア州在住の顧客だけを返します。sqlSelectString は、行を返すストアド プロシージャまたはビューもサポートしています。TrackingOff オプションを使用している場合は、複数のテーブルから選択した列を 1 つのテーブルにプルすることもできます。
SQL Server 認証を使用する場合は、OLEDBConnectionString で指定したユーザー ID に SQL Server テーブルの読み取り権限が付与されている必要があります。
OLEDBConnectionString に INTEGRATED SECURITY="SSPI" を設定して Windows 認証を使用する場合は、インターネット ユーザーに SQL Server テーブルの読み取り権限が付与されている必要があります。インターネット ユーザーは、次のように認証方法に基づいて識別されます。
Microsoft インターネット インフォメーション サービス (IIS) の仮想ディレクトリが匿名アクセスを使用するように構成されている場合、インターネット ユーザーは、インターネット ゲスト アカウント (IUSR_computername) の ID を使用することになります。別の Windows ユーザー アカウントをインターネット ゲスト アカウントとして構成した場合、インターネット ユーザーはそのアカウントの ID を使用することになります。
IIS の仮想ディレクトリが基本認証を使用するように構成されている場合、インターネット ユーザーは、クライアントから指定されたインターネット ユーザーの名前とパスワードに対応する Windows ユーザー アカウントの ID を使用することになります。
IIS の仮想ディレクトリが統合 Windows 認証を使用するように構成されている場合、インターネット ユーザーは、クライアントから指定されたインターネット ユーザーの名前とパスワードに対応する Windows ユーザー アカウントの ID を使用することになります。
データ アクセスおよび制限事項の詳細については、SQL Server Compact 3.5 オンライン ブックの「サポートされているデータ型およびデータ型マッピング」および「RDA の制限事項」を参照してください。
使用例
SqlCeRemoteDataAccess オブジェクトを作成し、いくつかのプロパティを設定して、Pull メソッドを呼び出す例を次に示します。
' Connection String to the SQL Server
'
Dim rdaOleDbConnectString As String = "Data Source=MySqlServer;Initial Catalog=AdventureWorks; " & _
"User Id=username;Password = <password>"
' Initialize RDA Object
'
Dim rda As SqlCeRemoteDataAccess = Nothing
Try
' Try the Pull Operation
'
rda = New SqlCeRemoteDataAccess( _
"https://www.adventure-works.com/sqlmobile/sqlcesa35.dll", _
"MyLogin", _
"<password>", _
"Data Source=MyDatabase.sdf")
rda.Pull("Employees", "SELECT * FROM DimEmployee", rdaOleDbConnectString, _
RdaTrackOption.TrackingOnWithIndexes, "ErrorTable")
' or, try one of these overloads:
' rda.Pull("Employees", "SELECT * FROM DimEmployee", rdaOleDbConnectString, _
' RdaTrackOption.TrackingOnWithIndexes)
'
' rda.Pull("Employees", "SELECT * FROM DimEmployee", rdaOleDbConnectString)
Catch
' Handle errors here
'
Finally
' Dispose of the RDA object
'
rda.Dispose()
End Try
// Connection String to the SQL Server
//
string rdaOleDbConnectString = "Data Source=MySqlServer;Initial Catalog=AdventureWorks; " +
"User Id=username;Password = <password>";
// Initialize RDA Object
//
SqlCeRemoteDataAccess rda = null;
try
{
// Try the Pull Operation
//
rda = new SqlCeRemoteDataAccess(
"https://www.adventure-works.com/sqlmobile/sqlcesa35.dll",
"MyLogin",
"<password>",
"Data Source=MyDatabase.sdf");
rda.Pull("Employees", "SELECT * FROM DimEmployee", rdaOleDbConnectString,
RdaTrackOption.TrackingOnWithIndexes, "ErrorTable");
// or, try one of these overloads:
//
// rda.Pull("Employees", "SELECT * FROM DimEmployee", rdaOleDbConnectString,
// RdaTrackOption.TrackingOnWithIndexes);
//
// rda.Pull("Employees", "SELECT * FROM DimEmployee", rdaOleDbConnectString);
}
catch (SqlCeException)
{
// Handle errors here
//
}
finally
{
// Dispose of the RDA object
//
rda.Dispose();
}