Visual Studio upgraded my database, now how do I convert it back. - windows-phone-7

I wanted to open my database up using sever explorer in visual studio 2012 and it told me I needed to upgrade my database from 3.5 to 4.0. Now when I deploy my application (WP8 project) it tells me Incompatible Database Version. If this was a compatible file, run repair. For other cases refer to documentation. [ Db version = 4000000,Requested version = 3505053,File name = mydatabase.sdf ]. How do I downgrade back to 3.5... I'm using VS2012 - surely if there was a quick upgrade like it did - there is a quick downgrade. :-)

I assume a backup wasn't created by the wizard. You could try using the SQL Server Compact Toolbox to downgrade from 4.0 to 3.5. There's a tutorial here on how to do it for SQL Server to 4/3.5 but it should be the same for CE 4 to 3.5. The idea is to export your database's information to a file that can then be used to create a 3.5 version of the database.
Before you try and downgrades, create a backup of the database just in case something else happens.

Related

Oracle Developer Tools for Visual Studio 2017: Error Message in VS2017 PRO

I have installed Oracle Developer Tools for Visual Studio 2017. I am now finally able to create my database classes within VS2017 without switching back to VS2015.
After the installation I am getting the following error message upon opening an old project and also when creating a new Oracle database connection (in a new project) in Visual Studio 2017:
oracle data provider for .net has been installed without a
machine-wide configuration
(...) Also found anoher version in the GAC that might be incompatible, please uninstall it and restart VS2017
(Poorly translated the german message to english, but you get the point)
Problem is: The version in my GAC is the newer version needed for VS2017. I definitly do not want to uninstall that, but the non machine wide data provider from earlier. I can't find anything about how to do that. Do you guys have any ideas?
Please forgive me if my attempt itself is not smart at all => I haven't installed Oracle Tools for VS before and ran into loads of problems doing so earlier.
Just for the record: I have been trying to google for a solution, but I did not manage to find one. If you got the key-Keywords let me know-
I installed this Version from 6th july 2017
Oracle Developer Tools for Visual Studio 2017 (12.2.0.1.0)
This download includes:
Oracle Developer Tools for Visual Studio 12.2.0.1.0 Oracle Data
Provider for .NET 4, Managed Driver 12.2.0.1.0 Oracle Providers for
ASP.NET 4 12.2.0.1.0
I did a lot of installing of the Oracle tools before getting it to work. Not an expert, but I found many installations of my "Oracle Home". In order to uninstall versions that I did not want, I used the Oracle Universal Installer. This is found (for Windows 7) in "Start Menu -> All Programs -> Oracle-Ora Client-your specific client -> Oracle Installation Products.
Run the installer and choose which oracle home you want to uninstall. You should be able to determine which one is the one that you want to uninstall by looking at Registry Keys, HKLM->Software->Oracle. Also HKLM->SOFTWARE->Wow6432Node->ORACLE. There may be others, search for Oracle keys.
SO figure out which oracle home you want to uninstall and use the Universal Installer to remove it. This should preserve the installation that you want and remove the one you don't. I'm not an expert, just offering what has worked for me.
In Visual Studio 2017, when I create new connection (using the wizard), there is a hard-coded path to a TNSNAMES.ORA file, that can't be changed through the wizard. It is set up through the above-mentioned registry keys. This is key to mapping your Data Source to an actual database. Hope this is helpful.

Origin of MSSqlLocalDB and ProjectsV##

I previously had only SQL version 12 of both (localdb)\ProjectsV12 and (localdb)\MSSQLLocalDB
This is when I had VS 2015 Update 1 installed, along with SSDT tools(for database projects).
I installed Update 2 and now have:
Notice MSSQLLocalDB is still on the old version.
However, a coworker did a fresh install of VS 2015 and has this:
So they are on a newer version of MSSQLLocalDB, and I am on an older. Even though we are both up to Update 2 of Visual Studio.
I had hoped to move to using the version independent name of MSSQLLocalDB. The problem is, this won't work if everyone is on different versions, because I have the build setup to deploy the Database project to localdb, which requires use of SqlPackage, which is version specific:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\SqlPackage.exe
I want to understand where and how MSSQLLocalDB gets installed and updated. I'm pretty sure ProjectsV12/13 comes as part of the Visual Studio install.
What installs MSSQLLocalDB, and what updates it?
Duplicate
The proposed duplicate just describes the MSSQLLocalDB as "the SQL Server 2014 LocalDB default instance name". This doesn't say anything about what it is installed as part of, or what updates it. Thanks
There are several related questions here.
What version of SqlPackage.exe to use
SqlPackage and all the SSDT tools are backwards compatible to SQL Server 2005. You should use the following 130 version to run against any database. It has the latest bug fixes and can target all publicly released SQL versions:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130\SqlPackage.exe
This will work against MSSQLLocalDB regardless of whether it is v13.0 or v12.0.
LocalDB Instances - how are they created and managed
MSSqlLocalDB is a default instance always installed on the machine. The ProjectsV12 and ProjectsV13 are created by SSDT using the LocalDB API. The purpose of having separate versions is
To keep isolation from the default instance, since this is used by many other processes & project types
To ensure we have a known version (e.g v13) so that we can reliably publish with the latest SQL Server features to it
Why do you and your coworker have different instances
Your coworker installed VS2015 Update 2 directly, with no previous version installed. This means the older code never created a ProjectsV12 instance on their machine.
What installs MSSQLLocalDB, and what updates it
If you've previously installed LocalDB v12.0 (by using SSDT as part of VS2015 RTM or Update 1), it will have connected to & started MSSqlLocalDB. Hence, it created the instance as version 12.0.
If you never started this instance before (e.g. your colleague's example), then when first started it will be run from the v13.0 LocalDB and hence get v13.0 as the instance version.
As far as I am aware, it will not be upgraded from v12.0 to v13.0 at any point.
Does MSSqlLocalDB version matter?
This depends. For most testing & ad hoc development this really doesn't matter.
If you care about version, for example if you're creating mdf of .bak files for application use, then you should use the LocalDB APIs to create a specific SQL version. Just download the relevant versioned MSI, install, & use the -version flag during instance creation via the API or command line. This may be the case too if you're using formal SSDT Publish operation instead of F5 deploy, though using the "Allow Incompatible Platform" option should work fine to work around.

How can I determine what version SQL Server Compact a table is?

I have some .SDF tables that are created in a Windows CE app (access table data is passed from a server app, and this is converted into SQL Server Compact records/tables).
I want to look inside them from my desktop machine in Visual Studio 2010. But attempting to create a new Data Connection in the Server Explorer, selecting either of the two "Microsoft SQL Server Compact" Data sources (3.5 and 4.0) fails.
When I choose 3.5 and then "Test Connection," it tells me:
This is not a valid SQL Server Compact Database file or this file version is not supported by current SQL Server Compact Engine.
When I choose 4.0 and then "Test Connection," it tells me:
Incompatible Database Version. If this was a compatible file, run repair. For other cases refer to documentation. [ Db version = 0, Requested version = 0,File name = MyRecalcitrantTable.SDF
Is there a way to make a connection to these tables so I can query them to see what they contain? How can I determine which version they were created with (apparently prior to 3.5) so that I can possibly use an earlier version of VS to view them (or some other tool?)
You can use my SQL Server Compact Toolbox VS extension, it has a Detect file version feature, but they are probably version 2.0 files, and can only be opened on a Windows ce device (or emulator)

How can I connect to a SQL Server Compact 3.5 file as a data source in Visual Studio 2012?

Visual Studio 2012 comes with SQL Server Compact 4.0. I have installed SQL Server Compact 3.5 from http://www.microsoft.com/en-GB/download/confirmation.aspx?id=5783 However I still only have the option of making a new data connection to a SQL Server Compact 4.0 file, whereas the files I need to get data from are SQL Server Compact 3.5 files.
Is it possible to connect to a SQL Server Compact 3.5 file as a data source in Visual Studio 2012? If so which settings or installs should I need?
Over in a thread I started on SQL Server Developer Center > SQL Server Forums > SQL Server Compact Ray Chen has posted an answer:
Unfortunately, SQL Server CE 3.5 is not supported in VS 2012 indeed.
You have to upgrade the SQL Server CE 3.5 database to 4.0 as Erik
suggested [link added]. Also please take a look at this article: Visual Studio
2012
Compatibility.
In the section of ‘These Assets Need Your Attention’, it says: One-way
upgrade. You must upgrade these assets before you can open them in
Visual Studio 2012. After you upgrade, you won’t be able to open them
in previous versions. The following table lists the project types,
file types, and technologies that you must upgrade. And SQL Server CE
3.5 is included in the table.
I've posted a subsidiary question there to find out how, given that I cannot read in the file, I would convert it to SQL Server Compact 4.0.
=========== EDIT ==========
Ray Chen went on to post references to ErikEJ's blog post HOW TO: Upgrade a version 3.x database file to SQL Server Compact 4.0 and to the SqlCeEngine.Upgrade Method (String) library page.

SSIS packages failing to load in VS 2008

I have a problem when trying to load an SSIS package in VS 2008. In the about it says it has "SQL Server Integration Services" installed but on loading a package I get a message that says:
Microsoft Vistual Studio is unable to load this document:
To design
Integration Services packages in Business Intelligence Development
Studio, Integration Services has to be installed by one of these
editions of SQL Server 2008: Standard, Enterprise, Developer or
Evaluation. To install Integration Services, run SQL Server Setup and
select Integration Services.
I thought maybe it was a version problem so I thought I'd look at a new Intergation Services project to play spot the difference. However when I told visual studio to create a new IS project (which was in the list quite happily) it created it and then gave me the above error message again.
To give some idea about my environment I have several version of Visual Studio (2k5, 2k8, 2k10) and several version of SQL server (2k5, 2k8) so I don't know if there is some confusion between versions...
The other thing that I am wondering is if there is a problem with what order things got installed in (ie my VS2008 wasn't installed when SSIS stuff was installed).
I am hoping there is a simple approach to this that won't mean reinstalling things. I can go to our IT to ask them to try to get it working but that would take some time. If it does come to that though I'd like to have some idea of what I should ask them to install since it does seem to be all installed currently...
So if anybody can either a) help me work out precisely what components are installed and what is missing that would be great. Bonus points for helping fix it without needing the install media...
Edit: A thought occurs to me. Coudl it be that I only have 2005 Integration Services installed? If so how can I determine that? And I still am not sure why VS is behaving as it is and letting me create a project but no SSIS in it, even if they were older versions...
Edit: Also it seems that if I load up VS 2005 I can create IS projects but of course can't load up the newer SSIS packages, I assume because they are from a newer version maybe...
Edit: Version information for SSIS in VS 2008:
Microsoft SQL Server Integration Services Designer
Version 10.0.1600.22 ((SQL_PreRelease).080709-1414 )
The following line can tell you the version of the package:
<DTS:Property DTS:Name="PackageFormatVersion">3</DTS:Property>
3 is for 2008, 2 is 2005 and 6 is 2012.
By the way, how patched is your system? The 10.0.1600.22 does sound like the original installation of 2008. Try to install SP3 and the latest cumulative update - this will bring your installation to 10.00.5788 and the issue might go away.
If you previously had the components from a Express 2008 installation, and then you install an Standard, Enterprise, Developer or Evaluation, instead of actually installing a new instance/components (probably you see Integration Services grayed out) use the Upgrade option of the SQL Server 2008 setup, and then VS will load perfectly the DTSX file.

Resources