Showing posts with label mobile. Show all posts
Showing posts with label mobile. Show all posts

Tuesday, March 27, 2012

Advice on developing a mobile app that uses SQL 2005 CE

Hi,

I am new to SQL 2005 CE but fairly experienced with SQL 2000 and know my way around SQL 2005. I am creating a PDA app that must support the following scenario:

My company has a SQL 2000 server with a "computer assets" database. This asset database must be able to be transferred to an .sdf file (SQL 2005 mobile) on the PDA when the user docks their PDA to the desktop PC (not the same machine as the SQL 2000 server). This transfer can be via an option in the mobile app that is initiated by the user, or automatic.

The mobile application basically supports stock-taking of the assets, so users go out on site and record information about the assets. This information is stored in a separate .sdf database on the PDA.

When the user gets back to the office they dock with their desktop and then must transfer the data from the second .sdf database onto the SQL 200 server. Lets call this the "asset metadata".

thats basically it! but im having issues finding the right process to attack the data transfer tasks.

My issues:

- Firstly, how do i populate the .sdf on the PDA for development purposes? Microsoft tutorials seem to be geared at SQL server 2005 management

studio only. I only have SQL server 2005 Management Studio Express on

my development machine as well as all the necessary SQL 2005 CE SDKs and VS2005. We

do not use SQL Server 2005 at my organisation as yet and it will be some time before we migrate across. In effect im looking for something that behaves like a DTS package to transfer data across.

- How to populate the "asset database" .sdf file from the SQL 2000 server when the user has docked to their desktop PC? (This needs to be refreshed )

- How to transfer the "asset metadata" from the .sdf on the PDA to the SQL server?

ive looked at merge replication a little but am not sure whether this is what i need and again most online information seem to be tailored to SQL Server 2005.

Can anyone kindly point me in the right direction?

I believe that merge replication will be the solution to your problems, as it will allow you to: Populate the device SDF, but for development and production purposes, and transfer inserted data from the device to the central SQL Server.

I would strongly recommend upgrading to SQL Server 2005, but SQL Server 2000 is a supported platform for merge synchronization with SQL 2005 CE.

The topics below this covers both SQL Server 2000 and 2005 configurations: http://msdn2.microsoft.com/en-us/library/ms171850.aspx

|||Hi Erik,

Thanks for your post. This article does indeed look like what i was searching for. ive been a bit busy on other work though and unable to dive into it thoroughly.

i will update once i have time to get back to the SQL mobile project again.|||


Hello again,


ive managed to setup everything as follows:

- created the publication for merge replication on the sql 2000 server.
- allowed the publication to have sql server CE subscrptions
- snapshot was created fine (at least sql server said everything was successful/)
- set up IIS for replication and this also went well. IIS is running
on the same physical server as SQL 2000

So i then added some code to the applicaiton on my pocket PC, and it seems to be working except that the database on the local device doesnt seem to get any data added to it.

The following VB.Net code is what i am using (i have replaced server names etc with arbitrary values enclosed in < > for privacy reasons)

Try
' Set the Replication object.
repl = New SqlCeReplication()
repl.InternetUrl = "http://<myserver>/AssetSync/sqlcesa30.dll"
repl.Publisher = "<publisher name>"
repl.PublisherDatabase = "AssetRegister"
repl.PublisherLogin = "<login>"
repl.PublisherPassword = "<password>"
repl.Publication = "asset_list"
repl.SubscriberConnectionString = "Data Source=\Assets.sdf"
repl.Subscriber = "MySubscriber"

' Create the Local SSCE Database subscription.
repl.AddSubscription(AddOption.ExistingDatabase)

' Synchronize to the instance of SQL Server 2000 to populate the Subscription.
repl.Synchronize()

Catch ex As SqlCeException
' Use your own error handling routine to show error information.
outputLabel.Text = ex.ToString

Finally
outputLabel.Text = "Subscription Complete!"
' Dispose of the Replication object.
repl.Dispose()
End Try

There are no erros thrown and my application actually outputs "Subscription Complete!" .. but the database is not being populated. My VS2005 project has a blank Assets.sdf file in it.

i have also tried starting the app with no .sdf file and changing the subscription code to "repl.AddSubscription(AddOption.CreateDatabase)"

i am thinking there might be something wrong with the publication? but this behvaes the same - no database created.
|||

I would start by testing the publication from a desktop, namely via SQL Server 2005 management studio, or using this utility from Nick Randolph: http://www.softteq.com/tools/publish.htm

Thursday, March 8, 2012

ADS Wizard, tutorials and examples - Please Help.

Hi,

I'm new to SQL Server Technology and am trying to learn how to create a Mobile Device application and to sync it with a desktop application that uses Access. I have found a lot of information but some of it doesn't seem to make sense.

I found this blog: http://blogs.msdn.com/sqlservereverywhere/archive/2006/08/29/729730.aspx which is the announcement of Access Database Synchronizer (ADS) CTP. I downloaded it and installed it with all the prerequisites. This is the part i can't understand:

"The CTP setup installs the desktop component required for synchronizing Microsoft Access database with SQL Server Everywhere Edition database on the device."

I cannot seem to find the desktop component to try out! The Readme shows you how to pull and push data but i can't see where the desktop data sync wizard is located. Should there be something installed on my desktop that i can see?

Also, there doesn't seem to be much help or examples around on this component as yet. Can anyone point me in the right direction for examples, help, or tutorials on this.

This paragraph also confuses me:

"Note: As of today only SQL Server Mobile Edition is available for devices. SQL Server Everywhere Edition whould be available for devices at time of SQL Server Everywhere Edition RTW whihc is planned for November 2006".

Does this mean SQL Everywhere won't work on mobile devices until November?

Sorry for all the questions but i'm still trying to learn this stuff so i can write my application for Windows CE. Thanks in advance.

Hi

Let me just give you a brief overview here. ADS is a solution which helps to synchronize a Access database on the desktop with a SQL Mobile/SQL Everywhere database on a device. There is no UI associated with the dektop component of ADS. The desktop component just listens for syncronization requests from a client (device with SQL MObile/SQL Everywhere) and performs the required actions.

Generally the applications written to utilize this soltuon would reside on the device. ADS Wizard is one such sample application we have provided along with source code to helpdevelopers write thier own applications.

If you have installed ADS at the default installation path, you will find the ADS wizard at the following path

C:\Program Files\Microsoft SQL Server Everywhere Edition\Access\Sample\AccessSync

Just open the .sln file in Visual Studio, build and deploy the solution on a PPC device and you are ready to go. Please read the "redme.htm" for more details

Hope this helps. If you have any more questions let me know

Regards

Manish

|||

Hi,

Thanks for your reply. I have got the sample working now with an emulator and can sync a test.sdf database with an access database on my desktop. So far so good!

I have another question though....Is it possible to create an application on the desktop to do the same thing or can this only run from the device? I want to create an application on the desktop that can read the SDF file on the device and sync it with the access database on my desktop. The reason for this is that the user must have options to select certain criteria of data to put onto the device. I may need to extract the selected data from my main Access database to a temporary database then push that to the device. Then when the user has used the device for the day, they just cradle it then run this application which syncs the data back to the temporary table. Then the application copies this data back to the main database as it needs to update certain fields, not just synchronize the entire database.

Does this sound possible? I have tried connection strings like below but it doesn't seem to work.

Dim conStringDevice As String = ("Data Source=Mobile Device\Test123.sdf")

m_connDevice.Open()

I just get an error: "The Path is not valid...Path = Mobile Device\Test123.sdf"

The device is connected and cradled and ActiveSync is running. I can use VS2005 to connect to this database no problems. Can i do this programmatically?

Thanks

|||

"Mobile Device" is only for Designers to differentiate between device and desktop connection. The runtime bits does not really understand this. To simply say, try removing "Mobile Device" Prefix.

Thanks,

Laxmi

|||

I tried removing "Mobile Device" and it still doesn't work. Surely there needs to be some reference to where the file is stored?

The ADS sample makes reference to the access database stored on "C:\" and the SQL database as just "Test123.sdf". But this is run from the Mobile device and picks up the local file. If run from the desktop, how can i reference to the mobile device file "Test123.sdf"?

|||Ok to put this simply....Can an ADS application be created to run on a dekstop to pull and push data from and to the mobile device? As i stated before the sample runs on the device itself, but i want to write an application to run on the desktop. Can someone please help?|||

"The_Nod", did you ever find any resolution to this problem? I am in the exact same place you are/were right now? I'm trying to control the sync from a desktop app as well.

|||

Hi mhawb,

No unfortunately. I was writing an application for Windows mobile 5.0 which was to synchronize with a desktop application that is still using an access database but i stopped doing it all together. I found problems with synchronizing as the field type were a lot different than the Access database and thought it couldn't be done that way.

I was going down the path of actually copying the SDF file from the mobile device to the desktop (as you cant read the SDF file directly from the desktop), then writing an application that manually updated the data to the Access Database. I found something called OpenNETCF which uses RAPI to copy the SQL databases to and from the desktop device. Here is a link to RAPI on MSDN: http://msdn2.microsoft.com/en-US/library/ms837846.aspx

Hope this helps. I stopped doing this project as i couldn't find the time. I may get back into it soon so if anyone has any better ideas and any ADS examples that would be great.

ADS Wizard, tutorials and examples - Please Help.

Hi,

I'm new to SQL Server Technology and am trying to learn how to create a Mobile Device application and to sync it with a desktop application that uses Access. I have found a lot of information but some of it doesn't seem to make sense.

I found this blog: http://blogs.msdn.com/sqlservereverywhere/archive/2006/08/29/729730.aspx which is the announcement of Access Database Synchronizer (ADS) CTP. I downloaded it and installed it with all the prerequisites. This is the part i can't understand:

"The CTP setup installs the desktop component required for synchronizing Microsoft Access database with SQL Server Everywhere Edition database on the device."

I cannot seem to find the desktop component to try out! The Readme shows you how to pull and push data but i can't see where the desktop data sync wizard is located. Should there be something installed on my desktop that i can see?

Also, there doesn't seem to be much help or examples around on this component as yet. Can anyone point me in the right direction for examples, help, or tutorials on this.

This paragraph also confuses me:

"Note: As of today only SQL Server Mobile Edition is available for devices. SQL Server Everywhere Edition whould be available for devices at time of SQL Server Everywhere Edition RTW whihc is planned for November 2006".

Does this mean SQL Everywhere won't work on mobile devices until November?

Sorry for all the questions but i'm still trying to learn this stuff so i can write my application for Windows CE. Thanks in advance.

Hi

Let me just give you a brief overview here. ADS is a solution which helps to synchronize a Access database on the desktop with a SQL Mobile/SQL Everywhere database on a device. There is no UI associated with the dektop component of ADS. The desktop component just listens for syncronization requests from a client (device with SQL MObile/SQL Everywhere) and performs the required actions.

Generally the applications written to utilize this soltuon would reside on the device. ADS Wizard is one such sample application we have provided along with source code to helpdevelopers write thier own applications.

If you have installed ADS at the default installation path, you will find the ADS wizard at the following path

C:\Program Files\Microsoft SQL Server Everywhere Edition\Access\Sample\AccessSync

Just open the .sln file in Visual Studio, build and deploy the solution on a PPC device and you are ready to go. Please read the "redme.htm" for more details

Hope this helps. If you have any more questions let me know

Regards

Manish

|||

Hi,

Thanks for your reply. I have got the sample working now with an emulator and can sync a test.sdf database with an access database on my desktop. So far so good!

I have another question though....Is it possible to create an application on the desktop to do the same thing or can this only run from the device? I want to create an application on the desktop that can read the SDF file on the device and sync it with the access database on my desktop. The reason for this is that the user must have options to select certain criteria of data to put onto the device. I may need to extract the selected data from my main Access database to a temporary database then push that to the device. Then when the user has used the device for the day, they just cradle it then run this application which syncs the data back to the temporary table. Then the application copies this data back to the main database as it needs to update certain fields, not just synchronize the entire database.

Does this sound possible? I have tried connection strings like below but it doesn't seem to work.

Dim conStringDevice As String = ("Data Source=Mobile Device\Test123.sdf")

m_connDevice.Open()

I just get an error: "The Path is not valid...Path = Mobile Device\Test123.sdf"

The device is connected and cradled and ActiveSync is running. I can use VS2005 to connect to this database no problems. Can i do this programmatically?

Thanks

|||

"Mobile Device" is only for Designers to differentiate between device and desktop connection. The runtime bits does not really understand this. To simply say, try removing "Mobile Device" Prefix.

Thanks,

Laxmi

|||

I tried removing "Mobile Device" and it still doesn't work. Surely there needs to be some reference to where the file is stored?

The ADS sample makes reference to the access database stored on "C:\" and the SQL database as just "Test123.sdf". But this is run from the Mobile device and picks up the local file. If run from the desktop, how can i reference to the mobile device file "Test123.sdf"?

|||Ok to put this simply....Can an ADS application be created to run on a dekstop to pull and push data from and to the mobile device? As i stated before the sample runs on the device itself, but i want to write an application to run on the desktop. Can someone please help?|||

"The_Nod", did you ever find any resolution to this problem? I am in the exact same place you are/were right now? I'm trying to control the sync from a desktop app as well.

|||

Hi mhawb,

No unfortunately. I was writing an application for Windows mobile 5.0 which was to synchronize with a desktop application that is still using an access database but i stopped doing it all together. I found problems with synchronizing as the field type were a lot different than the Access database and thought it couldn't be done that way.

I was going down the path of actually copying the SDF file from the mobile device to the desktop (as you cant read the SDF file directly from the desktop), then writing an application that manually updated the data to the Access Database. I found something called OpenNETCF which uses RAPI to copy the SQL databases to and from the desktop device. Here is a link to RAPI on MSDN: http://msdn2.microsoft.com/en-US/library/ms837846.aspx

Hope this helps. I stopped doing this project as i couldn't find the time. I may get back into it soon so if anyone has any better ideas and any ADS examples that would be great.

ADS Wizard, tutorials and examples - Please Help.

Hi,

I'm new to SQL Server Technology and am trying to learn how to create a Mobile Device application and to sync it with a desktop application that uses Access. I have found a lot of information but some of it doesn't seem to make sense.

I found this blog: http://blogs.msdn.com/sqlservereverywhere/archive/2006/08/29/729730.aspx which is the announcement of Access Database Synchronizer (ADS) CTP. I downloaded it and installed it with all the prerequisites. This is the part i can't understand:

"The CTP setup installs the desktop component required for synchronizing Microsoft Access database with SQL Server Everywhere Edition database on the device."

I cannot seem to find the desktop component to try out! The Readme shows you how to pull and push data but i can't see where the desktop data sync wizard is located. Should there be something installed on my desktop that i can see?

Also, there doesn't seem to be much help or examples around on this component as yet. Can anyone point me in the right direction for examples, help, or tutorials on this.

This paragraph also confuses me:

"Note: As of today only SQL Server Mobile Edition is available for devices. SQL Server Everywhere Edition whould be available for devices at time of SQL Server Everywhere Edition RTW whihc is planned for November 2006".

Does this mean SQL Everywhere won't work on mobile devices until November?

Sorry for all the questions but i'm still trying to learn this stuff so i can write my application for Windows CE. Thanks in advance.

Hi

Let me just give you a brief overview here. ADS is a solution which helps to synchronize a Access database on the desktop with a SQL Mobile/SQL Everywhere database on a device. There is no UI associated with the dektop component of ADS. The desktop component just listens for syncronization requests from a client (device with SQL MObile/SQL Everywhere) and performs the required actions.

Generally the applications written to utilize this soltuon would reside on the device. ADS Wizard is one such sample application we have provided along with source code to helpdevelopers write thier own applications.

If you have installed ADS at the default installation path, you will find the ADS wizard at the following path

C:\Program Files\Microsoft SQL Server Everywhere Edition\Access\Sample\AccessSync

Just open the .sln file in Visual Studio, build and deploy the solution on a PPC device and you are ready to go. Please read the "redme.htm" for more details

Hope this helps. If you have any more questions let me know

Regards

Manish

|||

Hi,

Thanks for your reply. I have got the sample working now with an emulator and can sync a test.sdf database with an access database on my desktop. So far so good!

I have another question though....Is it possible to create an application on the desktop to do the same thing or can this only run from the device? I want to create an application on the desktop that can read the SDF file on the device and sync it with the access database on my desktop. The reason for this is that the user must have options to select certain criteria of data to put onto the device. I may need to extract the selected data from my main Access database to a temporary database then push that to the device. Then when the user has used the device for the day, they just cradle it then run this application which syncs the data back to the temporary table. Then the application copies this data back to the main database as it needs to update certain fields, not just synchronize the entire database.

Does this sound possible? I have tried connection strings like below but it doesn't seem to work.

Dim conStringDevice As String = ("Data Source=Mobile Device\Test123.sdf")

m_connDevice.Open()

I just get an error: "The Path is not valid...Path = Mobile Device\Test123.sdf"

The device is connected and cradled and ActiveSync is running. I can use VS2005 to connect to this database no problems. Can i do this programmatically?

Thanks

|||

"Mobile Device" is only for Designers to differentiate between device and desktop connection. The runtime bits does not really understand this. To simply say, try removing "Mobile Device" Prefix.

Thanks,

Laxmi

|||

I tried removing "Mobile Device" and it still doesn't work. Surely there needs to be some reference to where the file is stored?

The ADS sample makes reference to the access database stored on "C:\" and the SQL database as just "Test123.sdf". But this is run from the Mobile device and picks up the local file. If run from the desktop, how can i reference to the mobile device file "Test123.sdf"?

|||Ok to put this simply....Can an ADS application be created to run on a dekstop to pull and push data from and to the mobile device? As i stated before the sample runs on the device itself, but i want to write an application to run on the desktop. Can someone please help?|||

"The_Nod", did you ever find any resolution to this problem? I am in the exact same place you are/were right now? I'm trying to control the sync from a desktop app as well.

|||

Hi mhawb,

No unfortunately. I was writing an application for Windows mobile 5.0 which was to synchronize with a desktop application that is still using an access database but i stopped doing it all together. I found problems with synchronizing as the field type were a lot different than the Access database and thought it couldn't be done that way.

I was going down the path of actually copying the SDF file from the mobile device to the desktop (as you cant read the SDF file directly from the desktop), then writing an application that manually updated the data to the Access Database. I found something called OpenNETCF which uses RAPI to copy the SQL databases to and from the desktop device. Here is a link to RAPI on MSDN: http://msdn2.microsoft.com/en-US/library/ms837846.aspx

Hope this helps. I stopped doing this project as i couldn't find the time. I may get back into it soon so if anyone has any better ideas and any ADS examples that would be great.