Friday, March 30, 2012
install reporting services 2005
installed somewhere (the same machine, on the network, anywhere) in order to
install reporting services 2005?Yes, you DO need to have a SQL Server database engine available
somewhere, however it does not need to be 2005 (although, MS does not
recommend using 2000 db w/ RS 2005, because of limiting new feature
set).
The ReportServer piece uses (2) SQL Server databases, named
ReportServerDB and ReportServerTempDB, to store catalog information
(e.g., folders, report RDL, security info, settings, etc.).
Reporting Services, itself, is composed of 3 pieces: a windows
service, a web service application and a asp.net web application. All
of those must connect to a database somewhere so it can get the reports
you have stored, etc.
If you choose to use a remote database engine, you will need 2 licenses
of SQL Server:
- one for where you install the ReportingServices instance, and
- one for where the database engine is installed
You can also scale-out the Report Server to a web farm, so you would
have n number of IIS Web servers, each running their own license of SQL
Server, with only the Reporting Services installed, and configured in a
scale-out (web farm/files only) setup. You would then need a DB server
running its own license of SQL Server with the database engine.
I hope that answers your question and clears up any doubts.
Regards,
Thiago Silva|||One clarification. There is absolutely NO problem using a 2000 DB as the
metadata/cache for RS 2005. All features are available. This is both
supported and expected configuration. I am running that way. This is
separate from licensing. If you have everything on one box and you leave the
DB as 2000 and install/upgrade to RS 2005 then you need a SQL Server 2005
license.
Bruce Loehle-Conger
MVP SQL Server Reporting Services
"tafs7" <tsilva7@.gmail.com> wrote in message
news:1145312024.732011.199790@.z34g2000cwc.googlegroups.com...
> Yes, you DO need to have a SQL Server database engine available
> somewhere, however it does not need to be 2005 (although, MS does not
> recommend using 2000 db w/ RS 2005, because of limiting new feature
> set).
> The ReportServer piece uses (2) SQL Server databases, named
> ReportServerDB and ReportServerTempDB, to store catalog information
> (e.g., folders, report RDL, security info, settings, etc.).
> Reporting Services, itself, is composed of 3 pieces: a windows
> service, a web service application and a asp.net web application. All
> of those must connect to a database somewhere so it can get the reports
> you have stored, etc.
> If you choose to use a remote database engine, you will need 2 licenses
> of SQL Server:
> - one for where you install the ReportingServices instance, and
> - one for where the database engine is installed
> You can also scale-out the Report Server to a web farm, so you would
> have n number of IIS Web servers, each running their own license of SQL
> Server, with only the Reporting Services installed, and configured in a
> scale-out (web farm/files only) setup. You would then need a DB server
> running its own license of SQL Server with the database engine.
> I hope that answers your question and clears up any doubts.
> Regards,
> Thiago Silva
>|||Bruce is absolutely correct. I hope I didn't confuse you.
I am running, in production at a client, a scale out deployment of 2 RS
2005 servers, which uses a separate SQL 2000 db for storing the
catalog.
There are no known issues, and this is definetely supported. However,
what I meant is that you will find more MS documentation using all 2005
servers, because they would prefer you to license it that way, in order
to get the new features and benefits of the SQL 2005 database engine.
Regards,
Thiago Silva
Friday, March 23, 2012
install in customer server
Hello,
I'm looking for a script to export all reports from server A (include all folder tree/datasource and reports) to a file in order to import in server B ?
I'm looking the export and import scrip in order to install my reports in the customer server
(I'm using SQL 2005)
Thanks
There are some KB Articles see http://support.microsoft.com/default.aspx?scid=kb;en-us;842425 and some links in it...
Here is the way I do it:
-Install SQL Server + Reporting Services on the destination maschine.
-Export the ReportServer and ReportServerTempDB on source maschine via SQL Server Management Studio
-Export the key with the ReportServer-config tool.
-Run my bat-File (see below) on destination maschine
You have to adjust the bold parts!
For RSKeyMgmt key.snk is the file containing your key and report is the password.
The bat file should stop the specific services on Win2k and WinXP (maybe in Win2003), if you expierence problems stop SQL Server Reporting Services and WWW- Publishing manually before running the .bat file.
create a .bat file containing:
net stop "SQL Server Reporting Services (MSSQLSERVER)"
net stop "World Wide Web Publishing Service"
net stop "WWW-Publishing"
sqlcmd -i restore.sql
net start "World Wide Web Publishing Service"
net start "WWW-Publishing"
net start "SQL Server Reporting Services (MSSQLSERVER)"
RSConfig -c -s localhost -d ReportServer -a Windows
RSKeyMgmt -a -f key.snk -p report
create restore.sql containing:
/****** Drop Databases ******/
EXEC msdb.dbo.sp_delete_database_backuphistory @.database_name = N'ReportServerTempDB'
GO
USE [master]
GO
DROP DATABASE [ReportServerTempDB]
GO
EXEC msdb.dbo.sp_delete_database_backuphistory @.database_name = N'ReportServer'
GO
USE [master]
GO
DROP DATABASE [ReportServer]
GO
/****** Restore Databases ******/
RESTORE DATABASE [ReportServer] FROM
DISK = N'E:\Program Files\Microsoft SQL Server\Scripts\backup\ReportServer.bak' WITH FILE = 1,
/* Specify Source! Absolute pathnames */
MOVE N'ReportServer' TO N'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ReportServer.mdf',
MOVE N'ReportServer_log' TO N'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ReportServer_log.LDF',
/* if the installation is on a different drive you need to move the files */
NOUNLOAD, STATS = 10
GO
RESTORE DATABASE [ReportServerTempDB] FROM
DISK = N'E:\Program Files\Microsoft SQL Server\Scripts\backup\ReportServerTempDB.bak' WITH FILE = 1,
/* Specify Source! Absolute pathnames */
MOVE N'ReportServerTempDB' TO N'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ReportServerTempDB.mdf',
MOVE N'ReportServerTempDB_log' TO N'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ReportServerTempDB_log.LDF',
/* if the installation is on a different drive you need to move the files */
NOUNLOAD, STATS = 10
GO
/****** Restore rights ******/
USE master
GO
DECLARE @.AccountName nvarchar(260)
SET @.AccountName = 'MASCHINENAME\ASPNET'
if not exists (select name from syslogins where name = @.AccountName and hasaccess = 1 and isntname = 1)
BEGIN
EXEC sp_grantlogin @.AccountName
END
GO
USE [ReportServer]
GO
DECLARE @.AccountName nvarchar(260)
SET @.AccountName = 'MASCHINENAME\ASPNET'
DECLARE @.name_in_db nvarchar(260)
select @.name_in_db = sysusers.name from sysusers inner join master.dbo.syslogins logins on logins.sid = sysusers.sid where logins.name = @.AccountName and logins.isntname = 1
if @.name_in_db IS NULL
BEGIN
EXEC sp_grantdbaccess @.AccountName, @.name_in_db OUTPUT
END
IF @.name_in_db IS NOT NULL AND @.name_in_db != 'dbo' AND @.name_in_db != 'sys'
BEGIN
EXEC sp_addrolemember 'RSExecRole', @.name_in_db
END
GO
USE [ReportServerTempDB]
GO
DECLARE @.AccountName nvarchar(260)
SET @.AccountName = 'MASCHINENAME\ASPNET'
DECLARE @.name_in_db nvarchar(260)
select @.name_in_db = sysusers.name from sysusers inner join master.dbo.syslogins logins on logins.sid = sysusers.sid where logins.name = @.AccountName and logins.isntname = 1
if @.name_in_db IS NULL
BEGIN
EXEC sp_grantdbaccess @.AccountName, @.name_in_db OUTPUT
END
IF @.name_in_db IS NOT NULL AND @.name_in_db != 'dbo' AND @.name_in_db != 'sys'
BEGIN
EXEC sp_addrolemember 'RSExecRole', @.name_in_db
END
GO
USE msdb
GO
DECLARE @.AccountName nvarchar(260)
SET @.AccountName = 'MASCHINENAME\ASPNET'
DECLARE @.name_in_db nvarchar(260)
select @.name_in_db = sysusers.name from sysusers inner join master.dbo.syslogins logins on logins.sid = sysusers.sid where logins.name = @.AccountName and logins.isntname = 1
if @.name_in_db IS NULL
BEGIN
EXEC sp_grantdbaccess @.AccountName, @.name_in_db OUTPUT
END
IF @.name_in_db IS NOT NULL AND @.name_in_db != 'dbo' AND @.name_in_db != 'sys'
BEGIN
EXEC sp_addrolemember 'RSExecRole', @.name_in_db
END
GO
USE master
GO
DECLARE @.AccountName nvarchar(260)
SET @.AccountName = 'MASCHINENAME\ASPNET'
DECLARE @.name_in_db nvarchar(260)
select @.name_in_db = sysusers.name from sysusers inner join master.dbo.syslogins logins on logins.sid = sysusers.sid where logins.name = @.AccountName and logins.isntname = 1
if @.name_in_db IS NULL
BEGIN
EXEC sp_grantdbaccess @.AccountName, @.name_in_db OUTPUT
END
IF @.name_in_db IS NOT NULL AND @.name_in_db != 'dbo' AND @.name_in_db != 'sys'
BEGIN
EXEC sp_addrolemember 'RSExecRole', @.name_in_db
END
GO
Thanks for response
I'm looking just export the reports and import the report on the client machine (my client have other reports so I can't use the database recovery method
Monday, March 12, 2012
Install / ASP.NET
I've installed MS SQL Server 2000 Reporting Services evaluation on my
workstation with XP in order to try the reports made for Navision.
I keep getting an error during the System Prerequisites Check:
'ASP.NET is not installed or is not registrered with your web server'.
I've both ASP.NET 1.1.4322 and 2.0.50215 installed and they both return
Valid when using aspnet_regiis -lv ind
c:\Windows\Microsoft\framework\v.1.4322.
Any help would be appreciated.
--
Peter Michelsen
MBS Business AnalystSolved by uninstalling v.1.1 and v.2.0 and reinstalling v.1.1, installaing RS
and then installing 2.0.
Fount it in one of the posts on this site.
--
Peter Michelsen
MBS Business Analyst
"Peter Michelsen" wrote:
> HI,
> I've installed MS SQL Server 2000 Reporting Services evaluation on my
> workstation with XP in order to try the reports made for Navision.
> I keep getting an error during the System Prerequisites Check:
> 'ASP.NET is not installed or is not registrered with your web server'.
> I've both ASP.NET 1.1.4322 and 2.0.50215 installed and they both return
> Valid when using aspnet_regiis -lv ind
> c:\Windows\Microsoft\framework\v.1.4322.
> Any help would be appreciated.
> --
> Peter Michelsen
> MBS Business Analyst
Friday, March 9, 2012
inset table using sp
I have a select statement from tb1 and tb2:
select field1 from tb1 where field1 not in (select field1 from tb2)
order by field1
I want to have the result inserted into tb3 using a SP.
tb3 has only one filed, same type. How to do this?
ThanksCheck out INSERT INTO in BOL.
INSERT INTO tb3
SELECT field1 FROM tb1 WHERE field1 NOT IN (SELECT field1 FROM tb2)
You can put it in a stored procedure like this:
CREATE PROCEDURE dbo.usp_DoInsert
AS
INSERT INTO tb3
SELECT field1 FROM tb1 WHERE field1 NOT IN (SELECT field1 FROM tb2)
GO
BTW you might want to reconsider your naming conventions - this particular
setup is going to be very hard to understand and maintain.
"whph" <nospam@.nospam.com> wrote in message
news:mqo2719mcnvjerec932v8i49mof003ikk4@.
4ax.com...
> Hi,
> I have a select statement from tb1 and tb2:
> select field1 from tb1 where field1 not in (select field1 from tb2)
> order by field1
> I want to have the result inserted into tb3 using a SP.
> tb3 has only one filed, same type. How to do this?
> Thanks
INSERT-SELECT depending on the Select:ed order
However, when I do the INSERT, it doesn't work (nothing is inserted) - can the order of the records from the SELECT part be changed internally on their way to the INSERT part, so to speak?
Actually - it is a view that I'm inserting into, and there's an instead-of-insert trigger on it that does the actual insertions into the base table. I've added a "PRINT" statement to the trigger code and there's just ONE record printed (there should be millions).This sure looks like a "tip of the iceberg" thread...
You can include an ORDER BY statement in your INSERT code, at the end of statement where you would normally place it.
Your trigger is only going to fire ONCE per transaction, no matter how many records are in the transaction. Insert 1000 individual records and the trigger fires 1000 times, but do a single insert of 1000 records and your trigger will only fire once.
Now the big question...what the heck are you doing that requires ordered inserts into a view with an INSTEAD OF trigger? Such complexity is rarely necessary.|||Thanks; I noticed that the records "sent" from the SELECT to the INSERT appeared in reversed order. And, I though the trigger was fired once per record. I've created an SP to take care of it.
The requirement on the order is because this table keeps track of how users logon to an application and then logoff. I'm changing the table from a structure where each such event has its own table row, to a structure where both events are stored in the same row (one datetime column for the logons and one for the logoffs). When transferring data from the old table to the new, I'm assuming that the Logon records are read before the Logoff records, since the Logon records mean an INSERT into the new table while the Logoff records mean an UPDATE of an already existing row (having a Logon date registered).|||You should probably just include a datetime value in your recordset rather than relying on record order.
Wednesday, March 7, 2012
inserting\update line numbering
what SQL statement do I use in order to add the line numbering for each line, and have it dependent on reseting on the sales order number?If this is a one-time operation, usually a temp table is created with an identity. In other cases you may need to add an identity column to the table.|||If this is a one-time operation, usually a temp table is created with an identity. In other cases you may need to add an identity column to the table.
This is a daily build operation
Using Identity though creates the numbering for all records in the table (sees it as one order (500 records, records numbered from 1 to 500?)
I am looking at the line numbering to reset back to 1 everytime there is a change in the order number field (inv_ref field)
this can't be done through identity?|||My guess is, that it would be possible using an identity column, but I wouldn't go for that if it needs to be reset on a daily basis.
It's probably me, but I'm still not quite clear on what you want, on the other hand, maybe I do but miss the point as to why you need a linenumber associated with the table contents.
One of these might work for you though:
- create a view that has a computed column (if the linenumber can be determined on other information from the table);
- create a trigger that does an update (guess this can be quite a burden);
- create an sp; do an update based on identity from a temp-table.|||line number id forms part of the primary key make up.
I have Invoice number, sales order number, and line id
I can't include product id instead of line id as in an invoice there may be a reference to the same product id i.e. at line 1 and 10.
I guess a messy way of going about it is to just use identity and leave the count go on the entire table just to satisfy the primary key requirements.
Sunday, February 19, 2012
Inserting records back into temp table that don't exist
total order counts each day from the 1st to the end of the month.
The procedure I have now will produce order counts for days that do exist. I
t
is using the order open date to pull orders from the orders table from
between a start and end date.
The client wants to see zero for the days that didn't have any activity.
For example:
Office Day Total
BranchA 1 50
BranchA 2 0
BranchA 3 10
How do I insert a blank record into my temp table that will show 0 for the
days that didn't pull?
Thanks so much in advance.
Message posted via http://www.webservertalk.comA general method is to create a dataset/table/view with all the days you
want to include and use an OUTER JOIN to get the results. If you want
specific query, please read www.aspfaq.com/5006 and post relevant
information to repro your problem.
Anith