共用方式為


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 Compact 3.5 資料表的名稱,此資料表將接收擷取的 SQL Server 資料錄。如果資料表已經存在,便會發生錯誤。
  • sqlSelectString
    型別:System. . :: . .String
    任何有效的 Transact-SQL 陳述式 (包括 SELECT 陳述式和預存程序),這種陳述式會指定要從 SQL Server 資料庫中擷取哪些資料表、資料行和資料錄,以便儲存於 SQL Server Compact 3.5 資料庫中。
  • trackOption
    型別:System.Data.SqlServerCe. . :: . .RdaTrackOption
    這個選項會指出 SQL Server Compact 3.5 是否要追蹤對提取之資料表所做的變更,以及是否要將提取之資料表上的索引傳到具有 PRIMARY KEY 條件約束的裝置。

備註

如果包含 SQL Server Compact 3.5 伺服器代理程式的虛擬目錄設定為使用基本驗證或整合式 Windows 驗證,則必須指定 InternetLoginInternetPassword 屬性。sqlSelectString 可以控制從 SQL Server 資料表所提取的資料。如果產生的資料錄集含有不支援的資料類型 (例如 Timestamp),就會發生錯誤。sqlSelectString 可以指定 WHERE 子句控制所要傳回的資料錄。例如,SELECT * FROM Customers WHERE State='CA' 會只擷取居住於加州 (California) 的客戶。此外,sqlSelectString 還支援資料列傳回的預存程序或檢視表。在使用 TrackingOff 選項時,它還可以將多個資料表中所選取的資料欄提取至單一資料表中。

如果使用 SQL Server 驗證,則 OLEDBConnectionString 中指定的使用者識別碼必須具有讀取 SQL Server 資料表的權限。

如果在 OLEDBConnectionString 中設定 INTEGRATED SECURITY="SSPI" 來使用 Windows 驗證,則網際網路使用者必須具有讀取 SQL Server 資料表的權限。下列各項作業將根據驗證方法識別網際網路使用者:

  • 當 Microsoft Internet Information Services (IIS) 虛擬目錄設定為使用匿名存取時,網際網路使用者會在「網際網路來賓帳戶」(IUSR_computername) 的識別之下執行。如果您將另一個 Windows 使用者帳戶設定為「網際網路來賓帳戶」,網際網路使用者會在該帳戶的識別之下執行。

  • 當 IIS 虛擬目錄設定為使用基本驗證時,網際網路使用者會在 Windows 使用者帳戶 (用戶端已提供網際網路使用者和密碼) 的識別之下執行。

  • 當 IIS 虛擬目錄設定為使用整合式 Windows 驗證時,網際網路使用者會在 Windows 使用者帳戶 (用戶端已提供網際網路使用者和密碼) 的識別之下執行。

如需有關資料存取及限制的詳細資訊,請參閱《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();
}

請參閱

參考

SqlCeRemoteDataAccess類別

SqlCeRemoteDataAccess 成員

Pull 多載

System.Data.SqlServerCe 命名空間