Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > OleDb and SqlClient


Автор: Real 29.3.2008, 13:42
Как сделать чтоб прога работала как из базами данных Microsoft SQL Server 2005 и Access?
Я то знаю как сделать строку подключения и патом изменять.
Но как обойтися без повторного использования исходного кода?

Код

SqlCommand
SqlDataReader
OleDbCommand
OleDbDataReader


Что мне прейдьотся переписывать весь код программы дважды?
Для Microsoft SQL Server 2005 и для Access




Автор: thomas 29.3.2008, 13:47
Real, 
заюзай два класса оболочки для выполнения действий с БД.
Один заточи под OleDb, а второй под SQLClient.
И в зависимости какой базой будешь пользоваться вызывай конструктор соответствующего класса и его методы.
Или делай фабрику.

А в чём собственно проблема
Цитата

Что мне прейдьотся переписывать весь код программы дважды?

копи-паст еще ни кто не отменял.  smile 

Автор: vponomarov 1.4.2008, 17:57
Real, как вариант можно подключаться и к Sql Server'у через OleDB smile 

Автор: Rififi 1.4.2008, 18:04
Цитата
Или делай фабрику

всё уже сделано за нас.

Real, 
используй классы из System.Data.Common
Код

DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
DbConnection cnn = factory.CreateConnection();
cnn.ConnectionString = ...
cnn.Open();
...


соответственно в GetFactory передаёшь имя соответствующего провайдера, которым желаешь пользоваться.

Автор: Real 2.4.2008, 11:17
Цитата(vponomarov @ 1.4.2008,  17:57)
Real, как вариант можно подключаться и к Sql Server'у через OleDB smile

Это класно, но как просканировать все серваки, если OleDb ?

Автор: vponomarov 2.4.2008, 12:23
Цитата(Real @  2.4.2008,  11:17 Найти цитируемый пост)
Это класно, но как просканировать все серваки, если OleDb ?

а разве можно просканировать аксесные серваки? smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)