|
Hi,
I am integrating Reporting services with my web application.
Fisrt i designed the report and deployed on the report server.My report is using 4 parameters Location,UserID,LastName,Firtsname.I am able to view the report by passing the parameters.This is all done throw report server.
But i am using my own controls(Textboxes) in my web page to pass this parameters.so i paced four text boxes and a ReportViewer Control.i am able to bind this parameters with the parametrs on report server.
but when i run the page the reportviewe control also showing the parametrs of report server.I dont need this because i already using my TextBoxes.so how to hide the reportserver parameters on Reportviwercontrol.
I hope Ypu guys understood my question. Simply i want hide report server parameters on reportviewer control
Plaese can any body help me?
Thanks
Karuna
Karuna
|
|
|
|
|
Hi,
I have a search form in ASP.NET 1.1. The search has 4 input textboxes, but only one of these are required.
Now I have to do a SELECT in stored procedure. I'm not sure how to construct this stored procedure because not all the input values will have a value.
Please can someone help me with my confusion.
Regards
ma se
|
|
|
|
|
I would strongly recommend constructing a parameterized query in your client code and using that, rather than a stored procedure.
You occasionally find recommendations to use 'OR @paramName IS NULL' to make a parameter optional. This works in the sense that the correct results are returned, but it causes problems for the query optimizer. In SQL Server 2000 SP4, I observed that for a query that looked like
SELECT * FROM table
WHERE
( ColumnA = @columnA OR @columnA IS NULL ) AND
( ColumnB = @columnB OR @columnB IS NULL ) that the optimizer actually picked an index on ColumnB when you specified only @columnA, and one on ColumnA when you specified only @columnB! That is, it scanned the wrong index, rather than seeking on the right one.
SQL Server 2005 at least picked the right index and index operation, but you have a new problem: the query plan for a stored procedure is computed the first time it is run, based on the arguments supplied for that run, and the resulting procedure is cached and reused until it ages out of the cache. If, the first time, you supply column A but not B, it picks the index on column A and caches this plan. If you then supply column B but not A, it tries to use the cached plan, eventually realises that the plan isn't workable and reverts to scanning the index and looking up in the base table - just doing a table scan would have been quicker. You can work around this by specifying WITH RECOMPILE on an EXEC statement, which recompiles the procedure just for that run (the previously cached plan is retained), or by specifying WITH RECOMPILE on the CREATE PROCEDURE statement, which means it's recompiled every time.
If you must use a stored procedure, use it as a shell - call sp_executesql with a dynamically-constructed query. The reason I recommend doing it in the client code is that C# and VB's string manipulation support is much better than T-SQL's.
|
|
|
|
|
Gosh! That was a much more comprehensive answer than the one I gave.
My only comment would be:
Mike Dimmick wrote: call sp_executesql with a dynamically-constructed query. The reason I recommend doing it in the client code is that C# and VB's string manipulation support is much better than T-SQL's.
The string manipulation may be better in the client code, but you open up some security concerns, in my view. I prefer the database to be the master of the queries run on it and allowing dynamic code through from the client shoots that idea down. Building the dyanmic code in SQL at least adds the possibility of running additional checks and knowing that the SQL is being built internally from a more trusted source.
Upcoming events:
* Glasgow: Mock Objects, SQL Server CLR Integration, Reporting Services, db4o, Dependency Injection with Spring ...
"I wouldn't say boo to a goose. I'm not a coward, I just realise that it would be largely pointless."
My website
|
|
|
|
|
ma se wrote: I'm not sure how to construct this stored procedure because not all the input values will have a value.
Then they will be null?
SELECT * FROM MyTable
WHERE (someColumn = @param1 OR @param1 IS NULL) AND
(someOtherColumn = @param2 OR @param2 IS NULL) AND... so on
Upcoming events:
* Glasgow: Mock Objects, SQL Server CLR Integration, Reporting Services, db4o, Dependency Injection with Spring ...
"I wouldn't say boo to a goose. I'm not a coward, I just realise that it would be largely pointless."
My website
|
|
|
|
|
As I said in my other answer, that approach can give poor performance because either a) the optimizer gets confused and picks a bad plan or b) the plan it picks for the first set of arguments is poor for the second set of arguments. Marking the procedure to be recompiled every time (WITH RECOMPILE) can help with the second, but you incur the cost of recompiling the plan every time (although I suspect this is largely CPU-bound, barring loading the index/table statistics from wherever SQL Server keeps them).
Any time it has to do a table scan or index scan, it's going to cost you. If the data is not yet in memory, you'll incur a lot of I/O cost reading in all the pages from disk. If it is in memory, you'll get a lot of CPU usage shown in Task Manager and Processor performance counters, but adding more/faster CPUs won't help at all because in fact the processor is just sitting in wait states waiting for the data to come into its caches from main memory. (A faster front-side bus and faster RAM modules would help.)
This assumes that the main operator for each parameter is sargable and can therefore make use of index seeks. If you're using LIKE '%value%' , go ahead and do it this way, SQL Server will have to perform a table scan or clustered index scan anyway, assuming no other fixed filter parameters which are sargable.
|
|
|
|
|
Thanks.
I've just been informed that I need to make use of full text searching, how would I do this now??
Regards
ma se
|
|
|
|
|
If you are using sql2005 you could also look at creating your stored procedure as a clr stored procedure, giving you an assembly and stored procedure. The advantage is that you can wrap the c#'s string capabilities into the stored procedure as well as other coding language capabilities. Also, you are able to recieve nulls and can debug the SProc at run time in vs2005.
Should take a look if this is an option.
My 2C worth.
_____________________________________________________________________
Our developers never release
code. Rather, it tends to escape, pillaging the countryside all around.
The Enlightenment Project (paraphrased comment)
Visit Me at GISDevCafe
|
|
|
|
|
What would I need to search for??
Please check my new post under 1 on Colin's postings.
|
|
|
|
|
Hi All,
Im using Sql server Express 2005, in the client place.
i want to copy the database with all data and put it in my sql server express 2005 in office.
so plz help me how can i do this
how can i copy entire data from sql server express and put it in another sql server express
Thanks for ur valuable help
With Regards
Amjath
|
|
|
|
|
copy mdf and ldf file from client place then attach database in your office
I Love SQL
|
|
|
|
|
thanks for ur quick and valuable reply.
can u plz explain me how to do that.
sorry for disturbing u
With Regards
Amjath
|
|
|
|
|
Just stop MSSQL Service then locate where are files copy them and restart again MSSQL Service
In your office open SQL Server Attach Database[^] by findinf file of MDF extension.
I Love SQL
|
|
|
|
|
Actually detaching the database would be the first step. In ServerManager just right click on the database, click on tasks and then detach. I would first get the location from the properties of the ldf and mdf before detaching. Copy those files and move them to where you want, reattach on the database detached from and on your other database. The only other issue you might have is table ownership. Occasionally the mapping gets a little off and has to be justified.
_____________________________________________________________________
Our developers never release
code. Rather, it tends to escape, pillaging the countryside all around.
The Enlightenment Project (paraphrased comment)
Visit Me at GISDevCafe
|
|
|
|
|
Why did you replied to me?!
I Love SQL
|
|
|
|
|
I am using SQL server 2000.
I have added some records in table.
and then deleted.
Now I would like ID field to start count from 1 and onward.
what command will be used.
God Bless you.
Always do good to others
|
|
|
|
|
|
I agree... but what about the relationships and constraints ...
if I have a primary key of identity column .. then that statement will generate value that already exists in my table.... m I right?
|
|
|
|
|
dbcc checkident(tablename,reseed,1)
I Love SQL
|
|
|
|
|
Do any one know how to display data from the data base by extracting it out using the unique id of the database. I wan to display the whole row of information of that unique id.
calvin
|
|
|
|
|
|
Please don't repost things so quickly. It's not good practice and won't get your question answered any quicker. In fact, as you are finding out, people are more likely just to respond and tell you not to do this.
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
Do any one know how to display data from the data base by extracting it out using the unique id of the database. I wan to display the whole row of information of that unique id.
calvin
calvin
|
|
|
|
|
If we have an identity field wit data type of BigInt ... but at certain stage it will overflow ... then what will happen and how can prevent for such scenario?
|
|
|
|
|
use decimal data type
this allows max value i.e. 38 digits
Regards
KP
|
|
|
|