PDA

Ver la Versión Completa : Ruta del PDA desde el ordenador????


burasu
18-10-2005, 18:16:19
Hola amigos, estoy desarrollando en plan aprendizaje una aplicación en C#. Ya en el PDA tenía un proceso de actualización de los datos de la BD pero tenía un problema de optimización, ya que la bd se actualizaba a partir de un fichero XML el cual cada x tiempo va engordando y el solo proceso de abrir el fichero se relentiza bastante.

Entonces pensé cambiar el proceso de actualización, y en vez de hacerlo directamente desde el PDA hacerlo desde el PC conectados. He investigado y se que debo utilizar la librería rapi.dll, pero vamos esa ahora mismo no es mi duda.

Mi duda sería, cuando la pda se conecta al ordenador como hago referencia a ella y a sus carpetas, así como a la tarjeta de memoria??? es decir si me quiero conectar desde el pc a la base de datos que está almacenada en una carpeta en la tarjeta de memoria, que ruta debo ponerle????

Gracias de antemano.

__hector
18-10-2005, 19:39:00
Dos cosas,

Primero, en que formato de base de datos estas guardando las actualizaciones? Utilizas SQL CE, o Access? Creo que ambas tecnologias, sino la primera (de esa estoy seguro) ofrecen mecanismos para compactar las bases de datos, con lo que te ahorrarias el problema del tamaño (salvo que solo hagas inserts en la tabla, y que no exista espacio libre a ser compactado).

Segundo, usando rapi te puedes conectar al dispositivo. Sin embargo, y como toda API del sistema operativo, es un poco dificil utilizarla. Yo en cambio utilizo las librerias gratuitas de OpenNETCF (http://www.opennetcf.org) para la comunicacion del escritorio con la Pocket. Te adjunto un pequeño ejemplo de lo que necesitaba (copiar un archivo desde la ppc hasta la maquina local):


...
using OpenNETCF.Desktop.Communication;
using System.IO;

RAPI m_rapi;

public frmPrincipal()
{
InitializeComponent();
m_rapi = new RAPI();
}

private void btnGetData_Click(object sender, System.EventArgs e)
{
try
{
m_rapi.Connect(false, -1);
if(! m_rapi.Connected)
{
MessageBox.Show("Error: no se pudo conectar al TPL",
"TPL",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
else
{
m_rapi.CopyFileFromDevice(@"c:\datos.xml", @"\Program Files\App\datos.xml", true);
StreamReader sr = File.OpenText(@"C:\datos.xml");
if(sr.ReadToEnd().Length > 0)
{
MessageBox.Show("Datos obtenidos con éxito",
"TPL",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
sr.Close();
}
}
catch (OpenNETCF.Desktop.Communication.RAPIException)
{
MessageBox.Show("Error: archivo no encontrado", "TPL",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch
{
MessageBox.Show("Error no identificado", "TPL",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
m_rapi.Disconnect();
}
}

burasu
18-10-2005, 19:59:31
En primer lugar gracias por la ayuda en cuanto a la conexión entre PDA y PC, habia buscado mucha información con respecto a la conexión rapi y me tocaba experimentar por que todo lo que encontraba era de Delphi o VB.Net.

En cuanto a la base de datos es SQL Ce, aunque el problema principal no era el tamaño de la BD sino el fichero XML desde el que hago la importación, ya que la estructura de este es muy compleja y no puedo abrilo con DataSet (de hecho tengo una consulta en este foro precisamente sobre como tratar XML) y con tan solo 316 registros el fichero ocupa algo más de 3Mb.

Bueno utilizaré las librerias gratuitas que me recomiendas y probaremos. Muchas gracias amigo.

burasu
18-10-2005, 20:42:49
Hola Hector nuevamente, le he estado hechando un vistazo a la pagina de las OpenNETCF, más especificamente la de la libreria que me has recomendado para conectarme al PDA pero con ellas parece ser que no te puedes conectar a la base de datos situada en el PDA. Como debiera hacerse, si lo has echo alguna vez???