Provider string setting in SSIS config file on SQL Server 2008 R2 - sql-server-2008

I've inherited an SQL Server 2008 R2 environment running on Windows Server 2003. I do not know if it was upgraded from SQL Server 2005 or if it was a freshly built out system. Due to issues with not being able to virutalize the physical server, it was decided to build a new, identical environment on a virtual server an migrate the databases and such to the new virtual server. We did decide to make one upgrade and that was to put Windows Server 2012 on the new server. We kept the instance name and server name the same (these were modified after we took the old physical server offline). I kept the file paths and folder names the same as well on the new server. I migrated the SSIS packages from the old server to the new server using the Export option in Integration Services (right click on the package>Export Package). The packages were stored in MSDB on the old server. I copied the config files from the old server to the new server and kept them in the same file location as they were stored on the old server. Ok, so here's my problem. When I started all of the SQL Agent jobs, several of the ones that used SSIS packages failed. After researching the issue, I
discovered it was due to the SQL provider string (Provider=SQLNCLI) was set to Provider=SQLNCLI.1, which is for SQL Server 2005. Once I changed this to Provider=SQLNCLI10, all was good. A caveat to this is that other packages that are using Provider=SQLNCLI.1 and are working just fine. The question that is eating at me is this, why were these packages running successfully on the old server which was running the same version of SQL Server when SQLNCLI.1 is supposed to be a setting used in SQL 2005 AND why are some packages working successfully still using SQLNCLI.1 and other had to be changed??

the execute of some packages depends by the structure of this file.
the are some task or some expression or some parameters that have been redefined in the new releases.

Related

Connection Manager Provider SSIS package in VS 2012

I am creating my first SSIS package using Business Intelligence in Visual Studio 2012. I am adding the contents of an Excel sheet to an local VS database. In the Destination Assistant I am asked Destination Type = SQL Server, New: Provider - I see no .NET Framework option. The result seems to be that I am then unable to select my server and therefore databases.
Am I just missing the point?
I would recommend that you investigate the destination server and verify that you have the providers installed on that system. Typically these are installed at the time that SQL server is installed, but is possible via custom installation to specify the providers that are installed. It may be necessary for you to install any providers needed. A second option would be to point to a database that you know that you can connect to, say a localhost sandbox or other tried database. That would help you to determine if it's server side or client installation issues.

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');

Run-Time error '-2147024703 (800700c1)' when running Access 2010 with SQL Server 2008

I have an application written in MS ACCESS 2007 using VBA, connecting to an SQL Server at the back end. Both Access and SQL Server are running locally.
My machine runs Access 2010 and MS SQL Server Express 2008 R2 (both 32-bit, on WinXP) with no problem.
I have another machine, Win7 64-bit, running both Access 2010 and SQL Server 2008 (NOT R2) 64-bit.
When I run the Access application on the 64-bit machine, I have a drop down box to select the SQL Server which holds the various databases. When I select the server, after a few seconds I get an error:
Run-time error '-2147024703 (800700c1)':
Automation error %1 is not a valid Win32 application.
When I select the Debug option, the yellow arrow points to:
Set oServer = New SQLDMO.SQLServer
The next line is:
oServer.Connect ServerName, strSQLUser, strSQLPwd
In the watch list, I can see that ServerName, strSQLUser, and strSQLPwd hold the right values to access the SQL Server. I've tested these in sqlcmd and successfully was able to query tables.
Can anyone please help me out on this one? I'm not sure what to do next.
Seems like you've got registered a 32-bit SQLDMO on your system that is being used for connection to the 64-bit instance. Check your registry / file system for SQLDMO.dll versions and register the correct one.
Also check MSDN "Installing SQL-DMO" because SQLDMO was scheduled for remove after SQL Server 2008 R2:
Avoid using this feature in new development work, and plan to modify applications that currently use this feature.
SQL Server Database Management Objects (SQL-DMO) has been removed from SQL Server 2008 R2 Express and the SQL Server 2008 R2 Feature Pack. SQL-DMO also does not support Database Engine features introduced after SQL Server 2000. We recommend that you modify applications that currently use this feature as soon as possible. If you must support SQL-DMO, install the Backward Compatibility Components from the SQL Server 2008 Feature Pack from the Microsoft Download Center. Do not use SQL-DMO in new development work; use SQL Server Management Objects (SMO) instead. You can obtain the SMO documentation by installing SQL Server 2008 R2 Books Online.
Thanks for this.
I looked to find SQLDMO.DLL 64-bit version, but although using the Backwards Comparability package for x64, installing using the MSI did not do the job.
I had to manually extract the files and place the correct version (which is ~2MB larger than the x86 version as an indication to knowing which one is the x64) and then run 'regsvr32 sqldmo.dll ' in the command line (very important: need to run cmd as Administrator for this to succeed).
After the module has been registered, my Access front end run great.

Cannot attach 2008 R2 database to 2008 instance

So I have made a set up file and install it to target computer which has no .Net 4.0 or SQL Server 2008.
I add them as prerequisites and setup downloaded from the internet the .Net 4.0 and SQL Server 2008.
The setup finished successfully.
When I run the program, it gives an exception:
cannot open xxxxxx.mdf file. it is version 650. and your is xxx...
I searched it out and learned that SQL Server installed on target computer is lower than the database file I created (the database file was created in SQL Server 2008 R2).
So, no connections can be opened.
To solve this, What can I do?
Thank you...
You can't attach a 2008 R2 database to a 2008 instance - you can only go forward, not backward. So either install 2008 R2 at the destination, or you'll have to re-create your database in 2008. If you install 2008 locally alongside 2008 R2, you can create an empty database in 2008 and use tools like Red-Gate's SQL Compare / SQL Data Compare, or the schema compare feature in SQL Server Data Tools, to translate your database relatively quickly.
There is no way to open an MDF file with a lower version of SQLServer.
Of course you could add as a prerequisite SQLServer 2008 R2 (express or full).
But the best course is to distribute a SQL Script containing schema and data.
This could be done using SqlServer Management Studio,
Right click on the database
Select Task
Select Generate Script.
Follow the Wizard.
In the last page of the wizard you could find the button Advanced
Clicking on it will give you full control on what to put inside the script.
The script could be distributed with your application with instructions on how to execute on the target machine.

SQL Server Express 2008 originally installed and then upgraded SQL Server Management 2008 - but no profiler

Originally I had two instances of SQL Server Express 2008 installed on my machine, IT then removed these so that they could upgrade me to SQL Server Management 2008 (with the aim that I would have profiler). My two original instances are there, however under tools there is no profiler. Should the IT guy installed a third instance so that I would have profiler? Or done something different.
The first thing to ensure is that you don't have a whole new SQL Server path under your All Programs folder. I don't recall if SQL Server Express and SQL Server create separate paths in All Programs. Also, look for Profiler under the Performance Tools folder in your SQL Server programs folder.
Check to see if you have the executable on your computer. By default, the Profiler executable is installed in C:\Program Files\Microsoft SQL Server\100\Tools\Binn. It's called PROFILER.EXE.
Finally, if you still can't find Profiler, run the installer again and do a custom install. Make sure the tools are included for install, which is not the default install normally.