SQL Profiler - no hostname on Crystal Report - crystal-reports

I am currently using SQL Server 2008 and Crystal Report 8.0. There are times when I need to know what computer runs the crystal report and unfortunately I can't seem to see it in SQL Profiler.

There is a HostName column in SQL Profiler, and it does indeed show the computer name which ran it, for crystal reports as well. The event that best captures a completed Crystal Report is TSQL -> SQL:Batch Completed.
Alternatively, each user can be logging into the crystal report's database with their own username (we use Active Directory), and the username shows under the LoginName column. Generally bad practice to have everyone knowing an admin level or even sa password..

I assume that your are already seeing the Host Name column in SQL Profiler.
Then make your computers using OLE DB (ADO) for connections. When you configure a datasource you can configure advanced properties. Add there a property named: Workstation ID As the value set the name of the computer or whatever you need. Then you will see the hostname in SQL Profiler.
Here is a list what you can set additionally:
http://msdn.microsoft.com/en-us/library/ms130822.aspx

Related

BusinessObject on MSSQL: How can I change language at session level?

I have a MSSQL server set to use US dates (MM-DD-YY), but have reports defined for BusinessObjects that need to use British dates (DD-MM-YY).
The SQL which these reports runs will work if the T-SQL command SET LANGUAGE 'British English' is first used in the session.
Is there any way to get BusinessObjects to specify the language via T-SQL when it opens the session?
Changing the default language on the server is not an option as it is shared with other applications requiring US dates.
Have you tried setting this using the ConnectInit property on the connection? This assumes that you want this set for all reports that run against that BOBJ Universe.

SSRS won't allow parameters in embedded dataset based on data source

Whenever I construct a report that uses an embedded dataset and try to use a parameter (such as #StartDate and #EndDate), I receive an error that states I must declare scalar values. However, this error only comes up if I set a data source that uses the "credentials stored securely in the report server" option. If I set the data source to use "Windows integrated security," I do not receive the error.
I am at a complete loss. These reports need to be accessed by a large amount of people. We have granted them "browser" privileges through an Active Directory Group through SSRS, including the data sources.
What is the best way to proceed? Is there an easy fix?
I generally deploy with the option already set by going into the Data Source and choosing 'Log on to SQL Server' section > 'Use SQL Server Authentication'> (Set your user and settings). When you use a windows user as your main user after you deploy there could be issues.
The other question would be does this work correctly at all times in Business Intelligence Development Studio, BIDS, and just not on the server? It is very interesting a permission issue alone would cause a scalar error to return. Generally when users have to get to the report they may still get the error but not storing the credentials merely asks them for credentials. It would help more to know the datasets and what they are returning or supposed to be returning. Generally a Start and End are typically defined as 'DataTime' in SSRS and are in a predicate like 'Where thing between #Start and #End' and there data is chosen from a calendar by a user. If you are binding them to other datasets and there is the possibility of a user selecting multiple values that could present an issue.
I took a look at the data source that had been set up by our DBA. It was set up as an ODBC connection. I changed it to Microsoft SQL. It works now. I do not understand why and would appreciate if a more seasoned individual might explain.

How to avoid blank report export to Excel in SSRS 2008 r2?

Hi I developed one report which is taking parameters dynamically with help of Data driven subscription.
but when I did subscription it is exporting all users reports into Excel and keeping it into windows file share folder.
here my issue is my client doesn't want the report if report is empty for a particular user.
but I have to fix this issue in SSRS itself instead of doing changes in Procedure (database) level.
i used the below expression in SP Level
i.e
if(##rowcoun>0)
raiserror("nodata",16,1)
Note: but the same procedure is using for multiple purpose and my db developer is not accepting to do changes in SP levle.
in reports level i am using the below expression to hide the column headers if report is empty
iif(countrows()>0,"true","false")
but the above expression showing blank report and it is exporting empty excel sheet for the user.
Thanks in advance
Since you are already using a Data Driven Subscription, what you need to do is edit the subscription query so that it creates a list of recipient emails based on those with data. The way I do this is to join the table of recipients with the dataset to be returned.

SSRS Dynamic Filenames for Email Subscriptions

We are in the process of migrating our reports from Crystal Reports to SSRS. In Crystal Reports we use variables to dynamically generate our filenames so when the report gets sent out via email, the file has the report name and execution date. (e.g. MonthlyReport09-07-2012.xls).
Is this possible in SSRS? I don't see any straightforward approach to using variables in the filename when subscribing to a report. This could prove troublesome when sending multiple reports with the same filename to the same person because it would be difficult to discern which report is which.
Any help is greatly appreciated. Thank you SO.
There is no feature in SSRS as such but there is a work around for this. You have two options
Option 1:
Instead of emailing it directly first dump the file in fileshare location which can be something like \machine-name\ExportReports\ReportName\ then create a windows job which renames the file to the format you want and emails it in the next step.
Option 2:
Refer to this blog what you want starts from section "Generate a PDF output file programmatically" now you can use this in an assembly then have some scheduling mechanism which picks up the schedule. This then calls the DLL which generates the report and emails it.
Use #timestamp in the name of the file and it will translate at run time.
You cannot specify the report filename in a standard subscription in Reporting Services.
If you have Enterprise edition (or SQL 2012 Business Intelligence edition) you can use the Data-Driven Subscriptions features that allows you to specify the report filename (and other properties) based on data retrieved from a table.
If you have Standard edition, then your options are either of the ones suggested by Bhupendra, or you could look at scripting the report generation using the "rs.exe" utility supplied with Reporting Services and use Database Mail and SQL Server Agent to handle the emailing and scheduling.
This post looks pretty old , but better late then never ...
There are some tools on the market , which can run SSRS reports : CRD, R-Tag and RemiWare
These are Desktop tools but I guess you are not looking to replace SSRS , just to extend it.
I am not sure about the CRD and RemiWare , but R-Tag supports data driven reports and dynamic names. It also can be used with Standard license.
I was able to automate the emailing and change the file name by looping thru a table of accounts, invoices and emails, then setting the parameters and renaming the reportname and pathname in catalog be execution at the end of the after the execution I did a wait for 2 seconds then when to the next loop. I the end I set the path and name back to orginalname. Performed well.
#timestamp works for Windows File Share as answered by Chris.
For Email deliveries, you could use:
#ReportName -specifies the name of the report.
#ExecutionTime - specifies when the report was executed.
For more details- MS Docs
You can do this by changing the filename directly from the table [ReportServer].[dbo].[Catalog]
Make sure to add a forward slash to the Path
For e.g. I created a SQL Job that ran every night before the report and added the date to the filename.
Sample Job (replace [ItemID] corresponding to your Report):
DECLARE #PREFIX CHAR(25) = 'REPORT_NAME_';
DECLARE #SUFFIX CHAR(8) = CONVERT(CHAR(8),GETDATE(),112);
DECLARE #VARNAME CHAR(33) = CONCAT(#PREFIX,#SUFFIX);
DECLARE #VARPATH CHAR(34) = CONCAT('/',#PREFIX,#SUFFIX);
UPDATE [ReportServer].[dbo].[Catalog]
SET
[Name] = #VARNAME,
[Path] = #VARPATH
WHERE [ItemID]='63D051EE-3139-4F50-ADBB-1C944F3D5D47';

Crystal Reports: Using Business Objects xi Datasource

I'm a total Crystal Reports/Business Objects newbie...
I've been tasked with going through 100 or so Crystal Reports to determine which reports are using an 'embedded' connection string vs. one supplied by the BOXi server.
I've installed Crystal Reports and accessed a sampling of the reports, but haven't been able to locate any references to a Repository based connection string/datasource.
Can anyone point me towards where this configuration is managed?
Thanks!
Richard
I don't know if you've already tried this or even if it's too basic for you, but it's been 24 hours, so here's my 2 cents:
To see the data source of each report, open them up and go to the Database at menu at top. There, you'll want to browse through the "Database Expert", "Set Datasource Location", and "Show SQL Query" options. Look at the properties of each data source.
You may also want to make a practice report pulling data from your sources of interest. That can help you get used to CR.
when you deploy the report to BO, you use the CMC (central management console) to set the database connection information. it is here that you will find the answer to your connection-string question.