Re: Can you use the OleDb classes for SQL Server?
- From: "William \(Bill\) Vaughn" <billvaRemoveThis@xxxxxxxxx>
- Date: Thu, 5 Jul 2007 18:34:47 -0700
While both can be called in pretty much the same way, the way resultsets and
returned parameters and multiple rowsets are handled is very different.
--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
INETA Speaker
www.betav.com/blog/billva
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________
Visit www.hitchhikerguides.net to get more information on my latest book:
Hitchhiker's Guide to Visual Studio and SQL Server (7th Edition)
and Hitchhiker's Guide to SQL Server 2005 Compact Edition (EBook)
-----------------------------------------------------------------------------------------------------------------------
"Milosz Skalecki [MCAD]" <mily242@xxxxxxxxxxxxxxxxx> wrote in message
news:EA07F097-A5AC-4BF6-84B5-EE8AE1CE76F5@xxxxxxxxxxxxxxxx
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
.
- References:
- Can you use the OleDb classes for SQL Server?
- From: Gustaf
- Re: Can you use the OleDb classes for SQL Server?
- From: Gustaf
- Can you use the OleDb classes for SQL Server?
- Prev by Date: Datatables and TableAdapters in separate files
- Next by Date: Re: Datatables and TableAdapters in separate files
- Previous by thread: Re: Can you use the OleDb classes for SQL Server?
- Next by thread: Error Delete Datacolumn of a Datatable
- Index(es):
Relevant Pages
|