So... I was given a dll that implements an ADO.net wrapper (i.e. implementing System.Data.Common.foo) around our program's internal database (usually MSSQL, but not actually guaranteed to be). I was tasked with creating various reports using it that we could provide alongside said program. But, the program itself being client/server, it doesn't make sense to require client computers to have SQL installed just to run reports; so I'm looking into Report Builder. It would be nice if we could just include the wrapper by itself, and not even need a report server, but I gather that isn't possible, so leaving it on a server and having clients request it is the next best thing.
The instructions for using the wrapper dll already included using it with Report Server, so I got that working without much trouble. After a few hours of googling, I found http://msdn.microsoft.com/en-us/library/ms155086.aspx - after following those instructions as well, I can successfully create a data source (which works in the Report Server designer!), and deploy it. But, while I'm also able to connect to the server using Report Builder 2 and get my data source back out, when I try to use that source to run a query (for instance, to run the Query Designer), I get a rather unhelpful-seeming error:
"The selected data extension [name of the wrapper] cannot be loaded. Verify that the selected data extension is correctly registered in RSReportDesigner.config, and is installed on the client for local reports and on the report server for published reports."
But if I create a full report in the designer, deploy it, load it in the Builder and run it, it works. So clearly the extension *can* be loaded, under the right circumstances. Not to mention running the same query on the same computer using the same data source, but in the Designer, works. Is there anything obvious I should check? Or, barring that, anywhere that might have logs with more useful error messages? The mention of RSReportDesigner.config is particularly odd, given that it seems like that's specific to the Designer, which I'm not using.
- Edited by afield Friday, August 21, 2009 5:03 PM
The difference you are seeing is most likely Report Builder 2.0 in disconnected (local) mode vs. connect to a report server.
Report Builder 2.0 itself is not extensible and cannot load custom data extensions. So when you create a new report or load a report and you are not connected to a report server, preview runs locally and fails because it doesn't find the custom data extension you are referencing in the report.
If however, you are connected to a report server in Report Builder (check the status line at the bottom of the Report Builder window), and your data source references an existing shared data source on that report server that uses your custom data extension, the preview of the report is really executed on the report server (not locally in Report Builder) and therefore can leverage extensions installed on that report server, such as your data extension.
Robert Bruckner http://blogs.msdn.com/robertbruckner
This posting is provided "AS IS" with no warranties, and confers no rights.
Well, thanks for the reply; I was worried this thread was going to be lost, when I came in this morning and it was on the bottom of page 4. That said, I am connected to the report server, according to the displayed status, so I'm pretty sure it should be running on the server, as you said. The issue is, I can run reports in the Builder that I already created in the Designer which use the shared data source - those run successfully, on this computer or on a different one that's never even heard of my extension locally - but I can't create new reports in the designer using that data source (still getting the same error). It's entirely possible the extension just isn't implementing some necessary method or something, as it wasn't originally written for this particular task - and I do have the source for it, so I can modify it if necessary. I just don't know where to look to find out what's missing/misconfigured.
So... I apologize for bumping this, but it never got an answer, and now I have an excuse: I noticed this example - I was hoping to use it to find what my dll might have been missing. Instead... built it, deployed it to the server and the designer exactly as specified (being the same steps I took when deploying my own dll), and just as before: I was able to use it in the designer, publish it, and run a published report that used it in the Builder, but selecting the shared data source in the Builder and attempting to use it in any other way, same error, the data source couldn't be loaded. Is there any chance I need to modify the server policy in some other way? Or perhaps there's a computer-wide security setting somewhere? Or even, really, any way of getting logging information about why the dll is loaded successfully most of the time, but not there.