While both can be called in pretty much the same way, the way resultsets and
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
-----------------------------------------------------------------------------------------------------------------------
"Milosz Skalecki [MCAD]" <mily242@DONTLIKESPAMwp.pl> wrote in message
news:EA07F097-A5AC-4BF6-84B5-EE8AE1CE76F5@microsoft.com...
> Howdy,
>
> I didn't mean using the same stored procedures for different RDBMSes. I
> meant you can use OleDb to call SPs (which is pretty much the same ADO.NET
> code), but you would have to implement them differently for each RDBMS. In
> addition, real life applications are much more advanced than simple
> SELECT,
> INSERT, UPDATE statements, and that's why i mentioned you would end up
> with
> different versions of queries for different RDBMS. I definitely agree with
> William it's better to use abstraction in the code such as providers and i
> mention about in my previous post.
>
> Best regards
> --
> Milosz
>
>
> "Gustaf" wrote:
>
>> Milosz Skalecki [MCAD] wrote:
>>
>> > Yes you can. OleDb is the old style way of abstracting database
>> > providers.
>> > The best way of doing abstraction is using stored procedures, as you
>> > can
>> > delegate sql queries to database, otherwise you end up with different
>> > version
>> > of queries for different RDBMSes.
>>
>> I agree that it would be neat to just call a stored procedure for the
>> INSERT method I need. But a stored procedure I write for SQL Server can't
>> be moved directly to Oracle, can it? I know nothing about stored
>> procedures in Oracle. So I think I need to put the INSERT statment in the
>> C# code, or possibly in a config file.
>>
>> > In addition, if you use .NET 2.0, it offers
>> > another way od specialization for different RDBMS via providers and
>> > factories:
>> >
http://www.simple-talk.com/dotnet/.net-framework/ado.net-2.0-factory-classes/
>>
>> That's a good article. I was able to make use of the
>> System.Data.SqlClient provider, but the OleDb provider did not work. When
>> opening the connection, I get the useless error (type OleDbException):
>>
>> No error message available, result code:
>> DB_E_ERRORSOCCURRED(0x80040E21).
>>
>> The app.config file currently looks like this:
>>
>> <?xml version="1.0" encoding="utf-8"?>
>> <configuration>
>> <appSettings>
>> <add key="provider" value="System.Data.OleDb"/>
>> <add key="connectionString" value="Provider=SQLOLEDB;Data
>> Source=.;Initial
>> Catalog=MyCompany;Integrated Security=true;User Instance=True"/>
>> </appSettings>
>> </configuration>
>>
>> The solution would still be very useful, if I can just change
>> "System.Data.SqlClient" to "System.Data.OracleClient" at deployment.
>>
>> Gustaf
>>