SqlCeRemoteDataAccess.Pull 方法 (String, String, String, RdaTrackOption)

从远程 Microsoft SQL Server 数据库下载数据,并将这些数据存储在本地 Microsoft SQL Server Compact Edition 数据库的一个表中。

命名空间: 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
)
public void Pull (
    String localTableName, 
    String sqlSelectString, 
    String oleDBConnectionString, 
    RdaTrackOption trackOption
)
public function Pull (
    localTableName : String, 
    sqlSelectString : String, 
    oleDBConnectionString : String, 
    trackOption : RdaTrackOption
)
不适用。

参数

  • localTableName
    一个 SQL Server Compact Edition 表的名称,该表将接收提取出的 SQL Server 记录。如果该表已经存在,则会发生错误。
  • sqlSelectString
    任何有效的 Transact-SQL 语句,包括 SELECT 语句和存储过程,它们指定从 SQL Server 数据库中提取哪些表、列和记录以存储在 SQL Server Compact Edition 数据库中。
  • oleDBConnectionString
  • trackOption
    该选项指示 SQL Server Compact Edition 是否跟踪对提取的表所做的更改,以及提取的表上存在的索引是否转到具有主键约束的设备。

备注

如果包含 SQL Server Compact Edition Server Agent 的虚拟目录被配置为使用基本身份验证或集成 Windows 身份验证,则必须指定 InternetLoginInternetPassword 属性。sqlSelectString 控制着从 SQL Server 表中提取什么数据。如果结果记录集包含不受支持的数据类型(如 Timestamp),则将发生错误。sqlSelectString 可以指定 WHERE 子句来控制返回的记录。例如,SELECT * FROM Customers WHERE State='CA' 只检索居住在加利福尼亚的客户。sqlSelectString 还支持以行形式返回存储过程或视图。使用 TrackingOff 选项时,还可以将选定的列从多个表提取到单个表中。

如果使用 SQL Server 身份验证,则在 OLEDBConnectionString 中指定的用户 ID 必须具有读取 SQL Server 表的权限。

如果通过 OLEDBConnectionString 中设置 INTEGRATED SECURITY="SSPI" 来使用 Windows 身份验证,则 Internet 用户必须具有读取 SQL Server 表的权限。下面根据身份验证方法来标识 Internet 用户:

  • 当将 Microsoft Internet 信息服务 (IIS) 虚拟目录配置为使用匿名访问时,则 Internet 用户在 Internet 来宾帐户(IUSR_计算机名称)的标识下运行。如果其他 Windows 用户帐户被配置为 Internet 来宾帐户,则 Internet 用户在该帐户的标识下运行。

  • 当 IIS 虚拟目录配置为使用基本身份验证时,Internet 用户将在 Windows 用户帐户的标识下运行,客户端为该帐户提供了 Internet 用户名和密码。

  • 当 IIS 虚拟目录配置为使用集成 Windows 身份验证时,Internet 用户将在 Windows 用户帐户的标识下运行,客户端为该帐户提供了 Internet 用户名和密码。

有关数据访问和限制的更多信息,请参见 SQL Server Compact Edition Books Online(《SQL Server Compact Edition 联机丛书》)中的“Supported Data Types and Data Type Mappings”(受支持的数据类型和数据类型映射)及“RDA Limitations”(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/sqlcesa30.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/sqlcesa30.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();
}

平台

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Windows Vista、Microsoft Windows XP SP2 和 Windows Server 2003 SP1 支持 Microsoft .NET Framework 3.0。

版本信息

.NET Framework

受以下版本支持:3.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

SqlCeRemoteDataAccess 类
SqlCeRemoteDataAccess 成员
System.Data.SqlServerCe 命名空间