none
Aplicación con base de datos. RRS feed

  • Pregunta

  • Hola a todos,

     

    De nuevo vuelvo con otra pregunta de novato.

     

    Para desarrollar una aplicación con bases de datos que más adelante necesitaré sincronizar con una base de datos de un PC.

    ¿Qué tipo de base de datos necesito para que los usuarios puedan realizar una instalación sencilla, tanto en su PC, como en la PDA?

     

    Me gustaría poder trabajar con SQL Mobile ya que es de la que más documentación tengo, pero la limitación la tengo en poder ofrecer una instalación sencilla y en las licencias para que necesitará el usuario final.

     

    Muchas gracias.

     

    Un saludo.

     

    Javier.

     

    lunes, 21 de mayo de 2007 9:05

Todas las respuestas

  • En cuanto a temas de licencia no te puede ayudar puesto que desconozco que tipo de licencia es necesario (Si es necesaria claro) pero en temas de instalación, podrías intalarlo mediante Click Once.

     

    Salu2

     

    Colabora con el foro: Si la respuesta te es de utilidad marca la pregunta como respondida.

    Luis Ruiz Pavón

    MCP

    Blog: http://geeks.ms/blogs/lruiz

    lunes, 21 de mayo de 2007 9:50
  • Gracias por la respuesta, y para las bases de datos del pc y de la pda, bastaría con SQL Server Compact Edition para los dos casos?? O el usuario tendría que instalar alguna otra versión de SQL Server??

     

    Gracias de nuevo.

     

    Un saludo.

     

    Javi.

    lunes, 21 de mayo de 2007 11:07
  • En la del PC, SQL Server 2005 Express.

     

    Un saludo!

    lunes, 21 de mayo de 2007 12:01
  • Hola

     

    Gracias Toni por tu ayuda, no te imaginas lo bien que me viene...

     

    Parece que poco a poco van saliendo cosillas...

     

    De momento tengo en la PDA, SQL CE y una sencilla aplicación para añadir registros funciona. Ahora bien, en mi aplicación necesitaría sincronizar o realizar una replica (no se muy bien como llamarlo) con la base de datos del PC, de modo que pueda tener varios usuarios con sus PDA's y puedan volcar la información a una base de datos común en un PC, servidor...etc...

     

    En este caso ¿cuál es la solución para instalar en el PC? SQL Server Express me lo va a permitir?

    Necesito que sea libre de licencias y de un mantenimiento muy sencillo, ya que se trata de una aplicación que se entregará gratuitamente para todos aquellos clientes que la necesiten en un CD.

     

    Más adelante me las tendré que arreglar para que sea de instalación sencilla y de un mantenimiento casi innecesario...

     

    Muchas gracias por la ayuda.

     

    Un saludo.

     

    Javier.

    jueves, 24 de mayo de 2007 6:49
  • Hola Platero:

     

    SQL Express si te permite sincronizar datos entre la pda y la base de datos.

     

    Si necesitas ayuda sobre la sincronización te puedo mandar unos hand on labs de microsoft para que te hagas una idea, está en ingles Wink

     

    Salu2

     

    Colabora con el foro: Si la respuesta te es de utilidad marca la pregunta como respondida.

    Luis Ruiz Pavón

    MCP

    Blog: http://geeks.ms/blogs/lruiz

    jueves, 24 de mayo de 2007 9:20
  • Hola y muchas gracias por vuestra ayuda

     

    Llevo unas horas implementando alguna prueba con los enlaces de Toni (muchisimas gracias) y no veo ningún resultado. El pull no me hace nada, y cuando hago un push  me muestra la siguiente excepción "La tabla no es una tabla con seguimiento. [Table name = Prueba].

     

    No se que demonios pasa, pero ni veo cambios en un sentido ni en otro.

     

    Luis todo lo que se ayuda ya ves que me viene de perlas, así que te agradecería esos hand on labs, a ver si resuelvo algo, porque se me acaba el tiempo para decidir si este proyecto lo llevo para delante o no....

     

    Gracias de nuevo.

     

    Un saludo.

     

    Javi.

    jueves, 24 de mayo de 2007 16:39
  • Hola Javier,

     

    Mi recomendación es que desarrolles la aplicación sin generar ninguna dependencia del motor de base de datos, de modo que siempre puedas optar por cualquiera que soporte OLEDB. A la hora de crear la distribución del software es cuando podrías optar por un motor de base de datos que puedas integrar por defecto y que no requiera licencia adicional (Access, SQL Express, MySQL, etc.), pero siempre permitiendo al usuario elegir el motor de base de datos que le convenga (no vaya a ser que ya disponga de una licencia para SQL server, Oracle, etc. y quiera aprovecharla). Para facilitar al usuario lo más posible la instalación bastaría con automatizar todo el proceso de configuración de la base de datos.

     

    Respecto a la sincronización con la PDA te indico a continuación una herramienta de cosecha propia y que me ha resultado tremendamente útil para casi todos los proyectos relacionados con bases de datos, el CronSQL, un software para la sincronización de bases de datos, muy fácil de usar y configurar. Si deseas saber más sobre esta herramienta o descargar una versión de demostración sigue el siguiente enlace:

     

    http://www.spuch.com/productos/cronsql/cronsql.htm

     

    Un saludo. 

    martes, 21 de agosto de 2007 7:34
  • Hola Dabiz,
        Muy bien, ya sabemos de tu producto, ahora simplemente hace falta que yo desde mi ordenador de mi casa, pueda sincronizar mi base de datos (la que sea), con una base de datos que tengo en mi pda, también la que quieras (firebird, sql Server Compact...) Creo que ese software no vale para la pregunta con la que se abria este hilo.

        Para Javier, si las sincronizaciones no son críticas, esto es, no hay que tener los datos actualizados en tiempo real, si no que las pda's se actualizan de vez en cuando con nuevos precios en productos, características (pensando en un entorno comercial por ejemplo), yo te recomendaría utilizar servicios webs, si el dispositivo tiene conexión de teléfono podrías hacerlo via GPRS, o si tiene wifi, desde la empresa o lugar donde tengas la base de datos central. En cuanto a las licencias de sql Server Compact, puedes utilizarla, en esta página , puedes encontrar esta frase "Free to download, develop, deploy, and redistribute" cuando se refiere al sql server 2005 compact edition,

    Un saludo.
    Espero haberte sido de ayuda
    miércoles, 22 de agosto de 2007 8:21
  • Hola franciscoGC,

     

    Lamento que no hayas sabido configurar el software para la tarea, lo tendré en cuenta para próximas versiones para intentar mejorar la interfaz y la ayuda. La herramienta sí resulta muy útil para la pregunta con la que se abre el hilo y por ello indico el enlace, y en general para los programadores que trabajan con bases de datos. En cualquier caso no había ningún motivo para resultar desagradable.

     

    Un saludo.

    miércoles, 22 de agosto de 2007 11:08
  • Me voy a meter donde no me llaman

     

    No es cuestion de ser o no desagradables Dabiz, pero poner como solucion un enlace a una herramienta sin codigo fuente disponible, privativa y de pago, me parece un poco fuera de lugar.

    El sitio donde estamos debatiendo, es una comunidad de desarrolladores, no de clientes, que deseamos comprender, aprender y descubrir soluciones a barreras programaticas del software. Por ello lo ideal es ayudar a que este hilo sea "Productivo" y no un "Producto" para nadie,

     

    Wink

    miércoles, 22 de agosto de 2007 17:00
  • Hola DevNulo,

     

    No quiero generar polémica donde no corresponde pero me hubiera parecido de mala educación no responderte, y supongo que lo esperabas.

     

    Es una herramienta diseñada para los programadores y facilita mucho el trabajo de sincronización, no obligo a que se utilice pero a mi me hubiera ayudado mucho en su momento cuando precisé de algo así, en vez de tener que desarrollarla. Si no fuera mi software y lo hubiera conocido para resolver dicho problema también hubiera propuesto la misma herramienta sin ánimo de lucrar al desarrollador.

     

    Los programadores utilizamos continuamente herramientas de pago (y otras que no) como el mismo Visual Studio que supongo que todos hemos pagado por utilizarlo, también otras herramientas mencionadas a lo largo del hilo son de pago y no he escuchado quejas contra ellas, como SQL Mobile, SQL Server, Click Once, etc.

     

    Sinceramente me parece más productiva mi propuesta (que no acabo de comprender por qué molesta tanto a algunos) que las últimas respuestas, incluido esta.

     

    Un saludo.

    miércoles, 22 de agosto de 2007 19:13
  • Hola a todos,

     

    Lo primero agradecer a todos vuestras respuestas.

     

    En cuanto a la sincronización de las bases de datos, preferiría poder hacer de un modo gratuito, aunque sino me queda otro remedio propondré a la empresa la compra de software que me ayude en esta tarea. Pero como digo, me gustaría poder resolver este problema por mi mismo, ya como un reto, para aprender y avanzar un poquillo más profesionalmente.

     

    El tema de los servicios web, es una solución que hasta ahora no me habían planteado. He intentado la sincronización pero con la versión express no había modo. El problema que tengo es cuando los datos van a venir modificados por varios usuarios cada uno con su pda, temiendo que los datos sean sobreescritos. Tendré que estudiar ese campo, aunque aún no he hecho nada con servicios web, quise realizar alguna prueba pero me dio problemas al trabar en modo remoto por no tener un certificado digital válido. Así que cualquier ayuda con ese tema, será bienvenida.

     

    Por otro lado, el tema de crear una aplicación abierta que no esté limitada a una única base de datos, me parece algo más que interesante. Ahora mismo tengo bastante desarrollada una aplicación para que trabaje con SQL Server 2005, y estoy empezando a pensar que sería buena idea tener otra "versión" que trabaje sobre MySQL, pero me va a requerir muchísmos cambios. ¿Cómo se podría desarrollar una aplicación donde puedas elegir en el momento de instalarla con qué base de datos quieres instalarla? Estaría encantado de poder realizar una aplicación así d estandarizada. Espero que me puedas echar una mano con eso Dabiz.

     

    De nuevo, muchas gracias a todos.

     

    Un saludo.

     

    Javier.

    jueves, 23 de agosto de 2007 6:53
  • Hola Javier,

     

    Para que tu aplicación sea compatible con cualquier tipo de base de datos OLEDB, tanto en el/los origen/es de la sincronización como en el destino deberás en primer lugar permitir configurar la cadena de conexión a la base de datos, esto lo puedes hacer creando un asistente que reconozca las principales bases de datos pero que también permita entrar la cadena de conexión directamente para usuarios avanzados. En adelante, todas las conexiones con la base de datos deberán de depender de esta cadena de conexión configurable.

     

    El siguiente aspecto a tener en cuenta son todas las conversaciones que tu software mantenga con la base de datos, éstas deberían quedar reducidas a consultas SQL estándar, aunque perderás mucha potencia en algunas consultas siempre hay alguna manera de implementarlas con SQL estándar. Si te encontraras con un caso demasiado complejo, puedes optar por soportar sólo algunos sistemas de bases de datos conocidos, e implementar este caso individualmente para cada tipo soportado. Con el caso de MySQL se introduce un problema adicional, según qué versión, y es que anteriores versiones todavía en uso no soportan transacciones, y eso puede ser una limitación importante para algunas aplicaciones. Personalmente asocio transacciones a cada pantalla de una aplicación y vinculo directamente el hecho de grabar con el COMMIT, o cancelar con ROLLBACK.

     

    Un tema complicado cuando se sincronizan datos desde bases de datos de cualquier tipo son los tipos de datos y las tablas de símbolos que se interpretan. Una solución que yo he seguido aquí es utilizar tablas intermedias generadas en tiempo real en las que se apuntan las instrucciones a realizar (actualizar, borrar o insertar) y el dato predominante en formato de carácter en ANSII, por ejemplo. En tu caso, al existir varios orígenes debes también establecer una prioridad según el tipo de usuario, o la fecha de última actualización, o bien permitir varias instancias de un dato en un mismo campo, esto depende de la utilidad que se le vaya a dar a la aplicación.

     

    Un saludo.

     

     

    jueves, 23 de agosto de 2007 9:40
  • Muchas gracias Dabiz,

     

    Por lo que me dices debería olvidarme de utilizar procedimientos almacenados, tipos de datos exclusivos para las tablas (para textos largos, imágenes, etc...)

     

    Pero tengo una duda, ¿cómo se puede implementar un instalador para poder da estas opciones de bases de datos al usuario final?

    En cuanto a la sincronización de datos, es un tema con el que tendré que profundizar de aqui a un mes, ahora tengo un par de desarrollos pendientes más urgentes. Por eso insisto en lo de la aplicación con varias bases de datos.

     

    De nuevo muchas gracias.

     

    Un  saludo.

     

    Javier.

    jueves, 23 de agosto de 2007 9:47
  • Hola Javier,

     

    En efecto, los procedimientos almacenados no son el camino más adecuado para la estandarización de una herramienta. Son muy potentes e incluso algunas herramientas de desarrollo como la de Oracle basan su potencia en éstos pero introducen una dependencia muy importante con el gestor de base de datos. También por esto los fabricantes los potencian y mejoran cada versión. Aunque es bueno manejarse con ellos para resolver ciertos problemas puntuales, sobre todo cuando la aplicación que trabaja con la base de datos es un software ajeno.

     

    Sobre los tipos de datos debes centrarte en los estándar, para textos extensos e imágenes existe el tipo MEMO, LONG, etc. que sí es estándar aunque puedan tener nombres diferentes según el gestor. Para los campos booleanos, utiliza un campo CHAR(1) con los valores "T" y "F". Esta misma idea te servirá para otros tipos de datos no estándar. Tampoco deberías utilizar sistemas automáticos de generación de claves técnicas como el autonumérico de Access, esto lo puedes simular con un sistema propio.

     

    Respecto a la personalización de la cadena de conexión, esto no debería estar exactamente en el instalador, si no en una opción de configuración de la propia aplicación, que saltaría automáticamente al iniciar la aplicación si detectara que la cadena de conexión no está definida. Esta cadena de conexión la podrás almacenar en el registro de Windows o en un archivo ini (debe almacenarse encriptada para proteger la contraseña de acceso a la base de datos).

     

    Un saludo.

     

     

     

     

    jueves, 23 de agosto de 2007 10:54
  • Hola Luis,

    He estado leyendo un poco sobre las consultas del puerto usb, la verdad me agradeceria si pudieras regarle un poco de luz al rededor sobre la conexion por el puerto usb.

     

    Veraz Termine de desarrollar una aplicacion para dispositivo movil el cual tiene un sistema operativo windows ce4.2 , el  programa lo desarrolle en VISUAL STUDIO .NET 2003 APLICACIONES PARA SMART DEVICE, bueno esta aplicacinon no tiene ningun problema, lo que pasa es que ahora estoy desarrollando una aplicacion desktop en visual studio 2005 (ASP), la cual sera la que carge y descarge la informacion recolectada por el dispositivo movil (hand held), el dispositivo se conecta mediante USB y estoy utilizando un driver activesync 4.2 ( y el hand held su marca es work about pro) para explorar el equipo MOVIL.

     

    He estado leyendo sobre el puerto usb pero no he encontrado fuente de ayuda realmente. como podria empezar?

    necesito acceder al equipo, leer el archivo que contiene. etc.

     

    Elio.

     

     

    miércoles, 12 de septiembre de 2007 21:51
  • Hola el error que te sale de "La tabla no es una tabla con seguimiento" se da porque cuando creas la tablas en el dispositivo a traves del PULL debes activar la opcion RdaTrackOption.TrackingOn ya que este te permitira validar que la tabla cumpla con determinados requisitos como por ejemplo los PK. (es decir le hace seguimiento a la tabla). Y luego cuando usas el PUSH, la tabla y los datos seran verificados y enviados a la misma tabla a partir del cual fue creeada la tabla del dispositivo movil.

     

    Salu2

     

    Evelyn.

     

     

    domingo, 24 de agosto de 2008 0:54