Cómo extraer datos con el objeto RDA (mediante programación)
En este tema, aprenderá a extraer datos de una base de datos de Microsoft SQL Server y a insertarlos en una base de datos de Microsoft SQL Server Compact 3.5 utilizando la clase SqlCeRemoteDataAccess. Para obtener más información sobre cómo usar el espacio de nombres SqlServerCe, vea la documentación de referencia sobre el espacio de nombres SqlServerCe.
Para extraer datos mediante el acceso a datos remotos
Inicialice un objeto SqlCeRemoteDataAccess y establezca las propiedades para la conexión.
SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess("https://www.adventure-works.com/sqlmobile/sqlcesa35.dll", "MyLogin", "<enterStrongPasswordHere>", "Data Source=MyDatabase.sdf");
Llame al método Pull, especificando el nombre de la tabla de SQL Server de la que se deben extraer los datos, la instrucción SELECT que se debe utilizar y la cadena de conexión a la base de datos de SQL Server Compact 3.5 local. También puede especificar la opción de seguimiento que se debe utilizar y la ubicación de la tabla de errores para registrar los errores del acceso a datos remotos (RDA).
rda.Pull("Employees", "SELECT * FROM DimEmployee", rdaOleDbConnectString, RdaTrackOption.TrackingOnWithIndexes, "ErrorTable");
Ejemplo
En este ejemplo se muestra cómo extraer datos de la tabla DimEmployee de una base de datos de SQL Server y rellenar una tabla de SQL Server Compact 3.5 denominada Employees.
string rdaOleDbConnectString = @"Provider=SQLOLEDB; Data Source=MySqlServer;
Initial Catalog=AdventureWorks; User Id=username;
Password = <enterStrongPasswordHere>";
// Initialize RDA Object
//
SqlCeRemoteDataAccess rda = null;
try
{
// Try the Pull Operation
//
rda = new SqlCeRemoteDataAccess(
"https://www.adventure-works.com/sqlmobile/sqlcesa35.dll",
"MyLogin",
"<enterStrongPasswordHere>",
"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();
}
Dim rdaOleDbConnectString As String = _
"Provider=SQLOLEDB; "Data Source=MySqlServer;Initial Catalog=AdventureWorks; "
"User Id=username;Password = <enterStrongPasswordHere>"
' 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", _
"<enterStrongPasswordHere>", _
"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