从远程 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 数据库中。
- oleDBConnectionString
类型:System. . :: . .String
- trackOption
类型:System.Data.SqlServerCe. . :: . .RdaTrackOption
该选项指示 SQL Server Compact 3.5 是否跟踪对提取的表所做的更改,以及提取的表上存在的索引是否转到具有 PRIMARY KEY 约束的设备。
注释
如果将包含 SQL Server Compact 3.5 服务器代理的虚拟目录配置为使用基本身份验证或集成 Windows 身份验证,则必须指定 InternetLogin 和 InternetPassword 属性。sqlSelectString 控制从 SQL Server 表中提取哪些数据。如果结果记录集包含不支持的数据类型(例如 Timestamp),将出现错误。 sqlSelectString 参数可以指定 WHERE 子句来控制返回哪些记录。例如,SELECT * FROM Customers WHERE State='CA' 只检索居住在加利福尼亚 (CA) 的客户。sqlSelectString 还支持以行形式返回的存储过程或视图。使用 TrackingOff 选项时,还可以将选定的列从多个表提取到单个表中。
如果使用 SQL Server 身份验证,则在 OLEDBConnectionString 中指定的用户 ID 必须拥有读取 SQL Server 表的授权。
如果通过在 OLEDBConnectionString 中设置 INTEGRATED SECURITY="SSPI" 来使用 Windows 身份验证,则 Internet 用户必须拥有读取 SQL Server 表的授权。下面根据身份验证方法来标识 Internet 用户:
将 Microsoft Internet 信息服务 (IIS) 虚拟目录配置为使用匿名访问时,Internet 用户使用 Internet Guest 帐户(IUSR_计算机名)标识来运行。如果将其他 Windows 用户帐户配置为 Internet Guest 帐户,则 Internet 用户将使用该帐户的标识来运行。
将 IIS 虚拟目录配置为使用基本身份验证时,Internet 用户将使用 Windows 用户帐户的标识来运行,客户端将为该帐户提供 Internet 用户名和密码。
将 IIS 虚拟目录配置为使用集成 Windows 身份验证时,Internet 用户将使用 Windows 用户帐户的标识来运行,客户端将为该帐户提供 Internet 用户名和密码。
有关数据访问和限制的更多信息,请参阅 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();
}