Friday, March 30, 2012

Managed Providers, Is it possible to use one not listed?

As I understand it, when setting up the data provider, even though it says
OLEDB that it is really using managed providers. The managed provider for
ODBC, for OLEDB, for SQL Server and for Oracle. So even though it says OLEDB
provider for Oracle it is really the managed provider. And even though it
says OLEDB Provider for SQL Server it is really the dotnet managed provider
for SQL Server.
First, is what I said correct?
Second. I have the dotnet managed provider for Sybase. I would like to use
this. Is it possible to use additional managed providers with RS? If so, how
do I do this? Thanks,
Bruce L-C#1:
What matters for the ReportServer is only the contents of the RDL file. If
the RDL says:
<ConnectionProperties>
<DataProvider>ORACLE</DataProvider>
<ConnectString>data source=server</ConnectString>
</ConnectionProperties>
it will use the managed Oracle provider.
This provider is registered in the config files (designer, server) as:
<Extension Name="ORACLE"
Type="Microsoft.ReportingServices.DataExtensions.OracleClientConnectionWrapp
er,Microsoft.ReportingServices.DataExtensions" />
Note: the behavior of PREVIEW in Report Designer is identical to the
ReportServer behavior!
However the DATA view in Report Designer is different for the visual
designer:
* the visual query designer with 4 panes will internally always use OleDB
providers for verifying and executing queries directly in "Data" view. (Main
reason: the visual query designer does not work with managed providers).
Example: if you choose "Oracle" in the data source dialog, the Data view has
to use the OleDB provider for Oracle behind the scenes, but Preview and
Server will use the managed Oracle provider.
* the generic text-based query designer (2 panes) will _always_ use the data
provider you specified.
#2:
Yes, in general you can use managed third party data providers. I'm not
familiar with the managed Sybase provider, but here is how you would
register the Oracle ODP.NET provider in RSReportServer.config:
<Extension Name="ODP"
Type="Oracle.DataAccess.Client.OracleConnection,Oracle.DataAccess"/>
See also:
http://msdn.microsoft.com/library/en-us/RSPROG/htm/rsp_prog_extend_dataproc_8iqq.asp
When using a managed provider, you can either use it directly (by just
registering it correctly in the config file as shown above) or write a
custom data extension which internally uses the provider. If the managed
Sybase provider behaves similarly as the MS managed providers, then you will
be able to use it in both, Report Designer and Report Server.
However, if it is implemented similar to the Oracle ODP.NET provider, you
can only use it directly within the report server right now, but it won't
work with report designer to design queries. The reason for this is related
to the way the ODP.NET provider is implemented by Oracle (and the way it
modifies database connection properties after the connection is opened). We
will try to avoid this issue by a code change for our SP2, so it should then
be possible to use ODP.NET in Report Designer also.
Would be very interesting to know if the managed Sybase provider works in
both, designer and server. At least it will work with the server.
--
This posting is provided "AS IS" with no warranties, and confers no rights.
"Bruce Loehle-Conger" <bruce_lcNOSPAM@.hotmail.com> wrote in message
news:%23wAdnlQaEHA.752@.TK2MSFTNGP09.phx.gbl...
> As I understand it, when setting up the data provider, even though it says
> OLEDB that it is really using managed providers. The managed provider for
> ODBC, for OLEDB, for SQL Server and for Oracle. So even though it says
OLEDB
> provider for Oracle it is really the managed provider. And even though it
> says OLEDB Provider for SQL Server it is really the dotnet managed
provider
> for SQL Server.
> First, is what I said correct?
> Second. I have the dotnet managed provider for Sybase. I would like to use
> this. Is it possible to use additional managed providers with RS? If so,
how
> do I do this? Thanks,
> Bruce L-C
>|||Thanks for the detailed reply. I'll let you know how I fare.
Bruce L-C
"Robert Bruckner [MSFT]" <robruc@.online.microsoft.com> wrote in message
news:Omp0wbRaEHA.3716@.TK2MSFTNGP11.phx.gbl...
> #1:
> What matters for the ReportServer is only the contents of the RDL file. If
> the RDL says:
> <ConnectionProperties>
> <DataProvider>ORACLE</DataProvider>
> <ConnectString>data source=server</ConnectString>
> </ConnectionProperties>
> it will use the managed Oracle provider.
> This provider is registered in the config files (designer, server) as:
> <Extension Name="ORACLE"
>
Type="Microsoft.ReportingServices.DataExtensions.OracleClientConnectionWrapp
> er,Microsoft.ReportingServices.DataExtensions" />
> Note: the behavior of PREVIEW in Report Designer is identical to the
> ReportServer behavior!
> However the DATA view in Report Designer is different for the visual
> designer:
> * the visual query designer with 4 panes will internally always use OleDB
> providers for verifying and executing queries directly in "Data" view.
(Main
> reason: the visual query designer does not work with managed providers).
> Example: if you choose "Oracle" in the data source dialog, the Data view
has
> to use the OleDB provider for Oracle behind the scenes, but Preview and
> Server will use the managed Oracle provider.
> * the generic text-based query designer (2 panes) will _always_ use the
data
> provider you specified.
>
> #2:
> Yes, in general you can use managed third party data providers. I'm not
> familiar with the managed Sybase provider, but here is how you would
> register the Oracle ODP.NET provider in RSReportServer.config:
> <Extension Name="ODP"
> Type="Oracle.DataAccess.Client.OracleConnection,Oracle.DataAccess"/>
> See also:
>
http://msdn.microsoft.com/library/en-us/RSPROG/htm/rsp_prog_extend_dataproc_8iqq.asp
> When using a managed provider, you can either use it directly (by just
> registering it correctly in the config file as shown above) or write a
> custom data extension which internally uses the provider. If the managed
> Sybase provider behaves similarly as the MS managed providers, then you
will
> be able to use it in both, Report Designer and Report Server.
> However, if it is implemented similar to the Oracle ODP.NET provider, you
> can only use it directly within the report server right now, but it won't
> work with report designer to design queries. The reason for this is
related
> to the way the ODP.NET provider is implemented by Oracle (and the way it
> modifies database connection properties after the connection is opened).
We
> will try to avoid this issue by a code change for our SP2, so it should
then
> be possible to use ODP.NET in Report Designer also.
> Would be very interesting to know if the managed Sybase provider works in
> both, designer and server. At least it will work with the server.
> --
> This posting is provided "AS IS" with no warranties, and confers no
rights.
>
> "Bruce Loehle-Conger" <bruce_lcNOSPAM@.hotmail.com> wrote in message
> news:%23wAdnlQaEHA.752@.TK2MSFTNGP09.phx.gbl...
> > As I understand it, when setting up the data provider, even though it
says
> > OLEDB that it is really using managed providers. The managed provider
for
> > ODBC, for OLEDB, for SQL Server and for Oracle. So even though it says
> OLEDB
> > provider for Oracle it is really the managed provider. And even though
it
> > says OLEDB Provider for SQL Server it is really the dotnet managed
> provider
> > for SQL Server.
> >
> > First, is what I said correct?
> >
> > Second. I have the dotnet managed provider for Sybase. I would like to
use
> > this. Is it possible to use additional managed providers with RS? If so,
> how
> > do I do this? Thanks,
> >
> > Bruce L-C
> >
> >
>sql

No comments:

Post a Comment