SQL Server 2008: Share data between Compact 3.5 and Express - sql-server-2008

Question: How can we connect a SQL Server CE DB to a SQL Server Express DB? We can't use Merge replication because you can only be a Subscriber in SQL Server Express, not a Publisher.
More background information:
We have an application structured as follows:
1) Our headquarters, running SQL Server 2008
2) Branches, running SQL Server 2008 Express
3) Machines, running SQL Server Compact
Each machine needs to connect to its branch to send data. Then the branch needs to connect to our headquarters to send the data. The synchronization of data between the machines and branches should be fairly often (ideally twice a minute), because branch operators may need to respond to emergencies. The synchronization between the branch and the headquarters can be less often (I'm thinking daily). However, we would need to support network failures.
We do not expect to have conflict resolution, so I would like to avoid having to use Microsoft Synchronization Services. Looking at this page SQL Server Express BOL, I see that Merge Replication can meet our needs, and I am planning on using it between our HQ and branches, but as I said above, we need a way to connect the compact DB to Express.

Check out the Microsoft Sync Framework:
a comprehensive synchronization
platform enabling collaboration and
offline for applications, services and
devices with support for any data
type, any data store, any transfer
protocol, and network topology.

You can design an application to connect to your SQL Express instance and perform a manual synchronization - something like a home-grown replication. I would deploy the app on your SQL CE machines, and "pull" the information required to synch down from each machine.

Related

SSIS package data transfer from developer to web edition database at two different locations

I have two sql server database at two different locations. Source is developer edition of sql server and destination is web edition of sql server. Can i create ssis package in developer edition, for data transfer from developer to web edition.
Yes*, you can create an SSIS package in the Developer Edition and it will transfer data between the developer edition database and the web edition just fine. It will be a straight data transfer between two SQL Server instances.
That pesky asterisk though, that might be make this a No answer. The Web edition is not licensed for Integration Services. There is the import/export wizard which builds an SSIS package but if you persist it and execute the package, then it will fail as the machine will report it does not have the right components installed. It's certainly nothing you can schedule. You might think that you can make an end-around and run the SSIS package from the development server but that will likely violate your license as the dev license is not supposed to communicate with production systems.
SQL Server 2012
SQL Server 2008R2
SQL Server 2008
Summary
There is no technical restriction preventing an SSIS package from pushing from a developer edition to an web edition but there is likely a legal restriction for doing so.
YMMV, IANAL, consult your licensing agent.

SSRS Remote server access

An error has occurred during report processing. (rsProcessingAborted)
Cannot create a connection to data source 'DSView'. (rsErrorOpeningConnection)
The feature: "The edition of Reporting Services that you are using requires that you use local SQL Server relational databases for report data sources and the report server database." is not supported in this edition of Reporting Services. (rsOperationNotSupported)
Hi, I have encountered the above mentioned error while doing an SSRS project. And from the research, it seems like it is SQL server related issue.
I am trying to access a remote SQL server....so I was wondering how can I get rid of that error?
Do I have to install SQL server Standard edition on my local machine or the server that I am trying to access should be installed with Sql Standard edition?
I have got Express editions installed on both my local machine and the server...
Thx
From Books Online:
Report data sources must be SQL Server relational databases that run
locally in SQL Server Express.
Features Supported by Reporting Services in SQL Server Express.
With SQL Server Express you can only use a Data Source where the database engine is from the same instance running SSRS.
If you need to connect to other instances your only options are to get a backup restored to your local instance or to install a SQL Server edition that allows remote Data Sources; most likely Developer for your own needs or Standard or above for any production instances.
It depends on what's allowed under your specific licencing agreement.
A neat way to get around this (that just worked for me) is to add a Linked Server on the Local machine to point to the server that hosts your remote data source.
Then modify your Dataset query in the SSRS report to look something like this...
select * from openquery(REMOTE_SERVER,'Put your original query here');

Microsoft Sync Framework, Microsoft Entity Framework 4.1 & SQL CE 4.0

We are developing an occasionally connected application that uses SQL Compact on the client machines and SQL Server 2008 (with change tracking) on the server. The application is being developed using Entity Framework’s code first model, which requires that the local SQL Compact database be 4.0. We would like to use Microsoft Sync Framework to handle synchronizing data from the central server to the occasionally connected clients but recently discovered that while SQL Compact 3.5 SP2 is compatible with Sync Framework, 4.0 is not (http://blogs.msdn.com/b/sqlservercompact/archive/2011/01/12/microsoft-sql-server-compact-4-0-is-available-for-download.aspx).
We wanted to use SQL Compact for this application to leverage the SQLCEClientSyncProvider provided by Microsoft and were unable to find a SQL Express equivalent. It seems we are left with a couple options:
1) Write a custom sync provider to leverage SQL Express on the client end. From what I have seen, this is not a trivial task and a tight deadline makes this quite risky.
2) Use SQL Compact 3.5 SP2 and convert the Entity Framework code from a “code first” model to a “model first” one. I am not sure what all would be involved in this approach or how much rework would be required.
And my question:
Is there a better solution for using all of these technologies together that we are not considering? Which method would be the path of least resistance? I was surprised to find in my research that using Sync Framework with SQL Express on the client side is not more fully supported. Is Sync Framework compatibility something on the horizon for SQL CE 4.0?
there are two types of database providers for Sync Framework: the offline provider and the collaboration/peer-to-peer provider.
the offline providers are the SqlCeClientSyncProvider/DbServerSyncProvider which is used by the Local Database Cache project item in Visual Studio which only supports SqlCe on the client.
the collaboration providers SqlCeSyncProvider/SqlSyncProvider supports SqlCe, Sql Express, Sql Server and Sql Azure on both client and server.
afaik, there is no Sql Ce 4.0 support in the near future and there is no Sync Framework 4.0, just 2.1. MS has recently released a Sync Framework Toolkit based on the V4 CTP but its more to expand the client support to non-MS platform.
having said that, i suggest you go with the SqlCeSyncProvider/SqlSyncProvider combo as they probably require the least amount of customization.
see: Tutorial: Synchronizing SQL Server and SQL Server Compact

Programming without a DB

I have a project to work on. The project requires SQL server. I am using LINQ. So since I dont have SQL server installed on my computer, is it possible I can just use the LINQ designer to create my classes? And then when I do publish my website to a online hosting company, I can use the LINQ to create the tables and stuff?
Is this overly complicated? I want to stay away from using SQLite, or SQL Server Express or SQL server compact because its hard to transfer stuff. Atleast for me. My one problem is also that I want to use ASP.NET Membership stuff. If I run the .exe tool to automatically create my tables, how would I accomplish this without using a db? I tried using SQL server compact (mdf file i think?) but apparently the tool does not support it.
So what are my options here. I'd like to being programming right away however paying for hosting online is just a waste of money for me right now until i have some of the project done.
I'd suggest installing SQL Server Express Edition on your computer and using that as your database during development. I know that there can be some confusion and difficulty when upgrading your development database from SQL Server Express Edition to the professional edition on the hosting company's database servers, but I'm confident that the time you will need to spend on that will be dwarfed by the time you'd need to spend to build and use a mock database layer, not to mention the extra testing you'd need to do once you moved to a real database.
Also, the challenge in moving from SQL Server Express Edition to the professional edition at the hosting company shouldn't be too bad if you choose a web host that has tools for importing your SQL Server Express Edition database into their database server. (Some have it so you can just upload your SQL Server Express .mdf file and it will automatically import it into their database server.)
Two things you can do
Install Sql Server Express on your development machine (or a server on your LAN). This way you will have a local database to develop and test on.
Not necessary, but you "could" try to use Entity Framework in place of LINQ, and use Code First mapping.
Also with Sql Server Express, you can do a lot of your database work right from Visual Studio (providing you're running VS Pro).
I want to stay away from using SQLite, or SQL Server Express or SQL server compact because its hard to transfer stuff. Atleast for me.
Upgrading shouldn't be too difficult.
My one problem is also that I want to use ASP.NET Membership stuff. If I run the .exe tool to automatically create my tables, how would I accomplish this without using a db? I tried using SQL server compact (mdf file i think?) but apparently the tool does not support it.
aspnet_regsql.exe works on Sql Server Express
Use SQL Server Express. It is free. Easy to install in your development environment. In SQL Server Management Studio (SSMS), you can right-click on a table and generate scripts to create the table if you did this from the graphical designer. All you have to do is run the script on the new server. There are free tools that can create/transfer data as well.
What are you going to do down the road when you need to test changes? I hope you don't plan on using the production database.
Just generate your entities by hand, later you would be able to easily attach SQL Server to all this stuff.
Create classes and mark them with required attributes (I don't remember their exact name,check MSDN)
P.S I just can't believe SQL Server Express is not enough for you )

Installing RS2008 against SQL Server 2000

Is there any chance of installing Reporting Services 2008 against an instance of SQL Server 2000? The docs clearly state that only SQL Server 2005 or 2008 are supported, but I thought I should ask anyway, for ways to bypass this limitation.
I should mention that I am not talking about the data source for my reports (which is a remote data source that can be any type of sql server). I am interested in the databases where the report server stores its things.
No, the reportserver and reportservertempdb REQUIRE 2005 or 2008. You could source data for your reports from a 2000 instance, but your reporting services databases need to be 2005 or 2008.
see: http://msdn.microsoft.com/en-us/library/ms157285.aspx and read the section on Database Server Version Requirements
I have no idea if this would work, however reporting services also depends on the SQL Server Agent service (for subscriptions) as well as the relational databases, so both would need to be compatible. If you have Reporting Services 2008 then you (or your organisation) must own a SQL Server 2008 license of some sort, therefore I cannot see why you would ever want to do this since you can install the SQL 2008 database engine to support your report server (on the same server, otherwise you would need an additional license).
Bear in mind that as of April 2008 SQL Server 2000 is no longer in mainstream support from Microsoft, so you should avoid implementing new infrastructure or functionality using this version wherever possible. The configuration you describe above, even if you got it to work, would be unsupported by Microsoft and probably all ISVs and partners.