Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Convert OleDb to SqlDb / 12 сообщений из 12, страница 1 из 1
14.05.2014, 18:38
    #38641434
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Convert OleDb to SqlDb
Доброго времени суток, знатоки!

Есть старый проект. В нём повсеместно используется OleDb. Я пытаюсь его постепенно переводить на нативный клиент. Есть метод который в качестве параметра принимает SqlConnection(можно и connection string). При запуске приложения создаётся OleDbConnection из файла Connect.udl. Как известно SqlConnection udl-файлы не признаёт. Вот мне надо "конвертировать" OleDbCon в SqlCon. Проблема в том, что если я обращаюсь к OleDbConnection con.ConnectionString, то получаю строку "file=Connect.udl". Как мне выковырять нужные данные, кроме как открывать сам файл?

Может кто с таким сталкивался? Как правильно решить эту задачку?
...
Рейтинг: 0 / 0
14.05.2014, 19:38
    #38641477
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Convert OleDb to SqlDb
Алексей Ку.Как мне выковырять нужные данные, кроме как открывать сам файл?
а сам, то ты как думаешь , возможно прочитать данные не открыв файл?
...
Рейтинг: 0 / 0
15.05.2014, 00:27
    #38641642
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Convert OleDb to SqlDb
pation,

Я думал есть способ их извлечь из уже инициализированного OleDBConnection
...
Рейтинг: 0 / 0
15.05.2014, 00:42
    #38641646
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Convert OleDb to SqlDb
Алексей Ку.,
а самому построить строку для idbconnection, никуда не заглядывая?
...
Рейтинг: 0 / 0
15.05.2014, 08:02
    #38641718
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Convert OleDb to SqlDb
Ты хотя бы тупо блокнотом этот udl открой и о чудо ты увидишь что там всего два пальца об асфальт.
...
Рейтинг: 0 / 0
15.05.2014, 12:09
    #38642044
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Convert OleDb to SqlDb
fortibransa, Да ладно? См. пост #3.
...
Рейтинг: 0 / 0
15.05.2014, 12:12
    #38642048
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Convert OleDb to SqlDb
Где-то в степиАлексей Ку.,
а самому построить строку для idbconnection, никуда не заглядывая?

Ну строка всегда разная и берётся из файла UDL. Поэтому жёстко зашить её не вариант.

Или имеется ввиду вытаскивать данные из OleDbConnection через idbconnection? Если да, то киньте, пожалуйста, небольшой пример (хотя бы для одного поля) как правильно обращаться к интерфейсу объекта.
...
Рейтинг: 0 / 0
15.05.2014, 12:34
    #38642084
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Convert OleDb to SqlDb
Алексей Ку.,
я имел ввиду построить строку подключения к новому провайдеру самому, в крайнем случае подсмотрет нужные параметры
из udi файла, как уже сказали это простой текстовый файл, если у вас этих файлов очень много можете построить
фабрику строк подключения, фабрика парсит udi файл, и выдает строку под уже нужного провайдера.
форматы строк для разных провайдеров можно подмсотреть http://www.connectionstrings.com/
по поводу вопроса по idbconnection, он как бы выдает что вы не компетентны ( пробел в знаниях) что такое нет провайдер
и какие требования он должен соблюдать для типизации как поставщик, легко восполняется прочтением тематической литературы.
...
Рейтинг: 0 / 0
15.05.2014, 12:37
    #38642091
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Convert OleDb to SqlDb
Алексей Ку.Ну строка всегда разная и берётся из файла UDL. Поэтому жёстко зашить её не вариант.
зачем зашивать - штатное место хранения строк соединения - конфиг файл приложения
а в чём проблема 4 строки вытащить из текстового файла(udl)?
...
Рейтинг: 0 / 0
15.05.2014, 12:42
    #38642105
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Convert OleDb to SqlDb
Где-то в степиАлексей Ку.,
я имел ввиду построить строку подключения к новому провайдеру самому, в крайнем случае подсмотрет нужные параметры
из udi файла, как уже сказали это простой текстовый файл, если у вас этих файлов очень много можете построить
фабрику строк подключения, фабрика парсит udi файл, и выдает строку под уже нужного провайдера.
форматы строк для разных провайдеров можно подмсотреть http://www.connectionstrings.com/
по поводу вопроса по idbconnection, он как бы выдает что вы не компетентны ( пробел в знаниях) что такое нет провайдер
и какие требования он должен соблюдать для типизации как поставщик, легко восполняется прочтением тематической литературы.

ну я пробелов и не скрываю )
...
Рейтинг: 0 / 0
15.05.2014, 12:43
    #38642109
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Convert OleDb to SqlDb
Изопропил,

Именно к такому формату я всё и перевожу постепенно.
Повторю: я думал есть способ выковырять эти данные из уже инициализированного OleDbConn. Ну вот я понял, что всё-таки придётся парсить файл.
...
Рейтинг: 0 / 0
16.05.2014, 20:25
    #38643912
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Convert OleDb to SqlDb
Я решил просто оставить это здесь. Для критики, ну и мало ли, вдруг кому пригодится...
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
 private SqlConnection OleToSql(OleDbConnection con)
        {
            string constring = con.ConnectionString;
            if (constring.Substring(0, 4).ToLower().Trim() == "file")
            {
                string file = constring.Split('=')[1].Trim();
                constring = File.ReadAllText(file);
            }
            string[] ss = constring.Split(';');
            var keys = new KeyValuePair<string, string>[ss.Length];
            for (int i = 0; i < ss.Length; i++)
            {
                if (ss[i].Split('=').Length > 1)
                {
                    keys[i] = new KeyValuePair<string, string>(ss[i].Split('=')[0].Trim(), ss[i].Split('=')[1].Trim());
                }
            }
            var strbldr = new SqlConnectionStringBuilder
            {
                DataSource = keys.Where(t => t.Key == "Data Source").Select(t => t.Value).First(),
                InitialCatalog = keys.Where(t => t.Key == "Initial Catalog").Select(t => t.Value).First(),
                UserID = keys.Where(t => t.Key == "User ID").Select(t => t.Value).First(),
                Password = keys.Where(t => t.Key == "Password").Select(t => t.Value).First(),
                PersistSecurityInfo = keys.Where(t => t.Key == "Persist Security Info").Select(t => t.Value.ToLower() == "true").First()
            };
            var sqlcon = new SqlConnection(strbldr.ConnectionString);
            return sqlcon;
        }
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Convert OleDb to SqlDb / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]