Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не заучивайте строку конекта... / 15 сообщений из 15, страница 1 из 1
06.09.2004, 16:25
    #32681794
Тень
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
Просто создайте файл с расширением UDL. Запустите его, появится визард.
Проделайте в нем нужный конент. Потом откройте этот файл любым текстовым редактором и скопируйте строку конекта.
...
Рейтинг: 0 / 0
06.09.2004, 16:49
    #32681857
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
Более того, в качестве строки подключения для OleDbConnection можно указать"File Name=myfile.udl;"и параметры подключения можно настраивать, не влезая в текст программы
---
PS о чем это мы ? поместить FAQ ?
...
Рейтинг: 0 / 0
06.09.2004, 17:07
    #32681918
Тень
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
Только пароль легко считать злоумышленникам.
...
Рейтинг: 0 / 0
06.09.2004, 17:27
    #32681978
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
тогда оставляем в программе

Код: plaintext
1.
2.
3.
string user="sa",   // заполняем через диалог 
       pswd="123",  // заполняем через диалог 
       file="config.udl";
connectionString="User Id="+user+";Password="+pswd+";File Name="+file;

или, если допускается Windows авторизация:

Код: plaintext
connectionString="Integrated Security=SSPI;File Name="+file;

и FAQ готов :)
в соавторы возьмешь ?
...
Рейтинг: 0 / 0
07.09.2004, 06:01
    #32682344
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
и теперь получим строку подключения через диалог "Data Link Properties"
(динамически во время выполнения программы)

добавляем к ссылкам проекта:
Microsoft ActiveX Data Objects 2.8 Library (2.7 тоже сойдет)

Microsoft OLE DB Service Component 1.0 Type Library

Код: plaintext
1.
2.
3.
 // вызов метода, возвращающего строку подключения 
 // изначально установлен, например,  
 // "Microsoft OLE DB Provider for SQL Server" 
string cs=GetConnectionString("Provider=SQLOLEDB;");

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public string GetConnectionString(string str)
{
string  connectionString=string.Empty;  // возвращаемая строка подключения 
ADODB.ConnectionClass cn=new ADODB.ConnectionClass();
MSDASC.DataLinksClass ud=new MSDASC.DataLinksClass();

  cn.ConnectionString=str;   // начальное значение параметров подключения 
  object ob          =cn;

  if(ud.PromptEdit(ref ob))  // показать диалог "Data Link Properties" 
  {  // нажали кнопку ОК: 
    connectionString=cn.ConnectionString; 
  }
   // вернуть строку подключения 
  return(connectionString);			
}

"не заучивайте строку коннекта ..." © тень

---
наверное, этот топик лучше перенести в ADO.NET
...
Рейтинг: 0 / 0
07.09.2004, 10:18
    #32682592
nex
nex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
А ещё можно вот тут подсмотреть : http://www.connectionstrings.com :)
...
Рейтинг: 0 / 0
11.09.2004, 09:00
    #32690566
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
все тоже самое, только через Reflection
( ! ничего к к ссылкам проекта добавлять не надо ! )

Код: plaintext
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.
29.
30.
31.
32.
33.
using System.Reflection;
using System.Runtime.InteropServices;


public string GetConnectionString(string str)
{
string connectionString=string.Empty;  // возвращаемая строка подключения 
object cn=null,  // ADODB.Connection 
       ud=null;  // MSDASC.DataLinks 
			
  try
  {
    Type AdoDbConnectionType=Type.GetTypeFromProgID("ADODB.Connection");
    Type MSDascDataLinksType=Type.GetTypeFromCLSID(new Guid("{2206CDB2-19C1-11D1-89E0-00C04FD7A829}"));
     // создать COM объекты ADODB.Connection и MSDASC.DataLinks 
    cn=AdoDbConnectionType.InvokeMember(null, BindingFlags.CreateInstance, null, null, new object[0]);
    ud=MSDascDataLinksType.InvokeMember(null, BindingFlags.CreateInstance, null, null, new object[0]);
			
    AdoDbConnectionType.InvokeMember("ConnectionString", BindingFlags.SetProperty, null, cn, new object[]{str});
    if((bool)(MSDascDataLinksType.InvokeMember("PromptEdit", BindingFlags.InvokeMethod, null, ud, new object[]{cn})))
    {  // нажали кнопку ОК: 
      connectionString=(string)(AdoDbConnectionType.InvokeMember("ConnectionString", BindingFlags.GetProperty, null, cn, new object[0]));
    }
  }
  catch{  /* обработка ошибок */  }
  finally
  { if(cn!=null) Marshal.ReleaseComObject(cn);
    cn=null;
    if(ud!=null) Marshal.ReleaseComObject(ud);
    ud=null;
  }
   // вернуть строку подключения 
  return(connectionString);	
}
...
Рейтинг: 0 / 0
11.09.2004, 09:55
    #32690576
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
2 кузя

Может два твоих последних поста в FAQ ?
http://www.sql.ru/faq/faq_add.aspx?rid=15000

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
13.09.2004, 15:26
    #32692102
вопрос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
А как из возвращаемого результата убрать провайдера?
...
Рейтинг: 0 / 0
13.09.2004, 16:36
    #32692295
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
Это для отличных от OleDbConnection ?

можно, например, через разбор строки (поиск "provider=") и удаление всего содержимого до ";" или конца строки.

можно возвращать массив строк, вытаскивая нужные Properties подключения из объекта ADODB.Connection
...
Рейтинг: 0 / 0
13.09.2004, 22:25
    #32692805
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
примерно так можно достать поименованные свойства объекта ADODB.Connection

пример для Initial Catalog:

Код: plaintext
1.
2.
3.
4.
5.
string ic=string.Empty;  // Initial Catalog 
object cp=AdoDbConnectionType.InvokeMember("Properties", BindingFlags.GetProperty, null, cn, new object[]{"Initial Catalog"});
if(cp!=null)
{ ic=(string)cp.GetType().InvokeMember("Value", BindingFlags.GetProperty, null, cp, new object[0]);
  Marshal.ReleaseComObject(cp);
}
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
30.05.2010, 10:30
    #36657421
AnarkiSib
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
кузя,

А как этот код:

// вызов метода, возвращающего строку подключения
// изначально установлен, например,
// "Microsoft OLE DB Provider for SQL Server"
string cs=GetConnectionString("Provider=SQLOLEDB;");


public string GetConnectionString(string str)
{
string connectionString=string.Empty; // возвращаемая строка подключения
ADODB.ConnectionClass cn=new ADODB.ConnectionClass();
MSDASC.DataLinksClass ud=new MSDASC.DataLinksClass();

cn.ConnectionString=str; // начальное значение параметров подключения
object ob =cn;

if(ud.PromptEdit(ref ob)) // показать диалог "Data Link Properties"
{ // нажали кнопку ОК:
connectionString=cn.ConnectionString;
}
// вернуть строку подключения
return(connectionString);
}


Переделать так, чтобы в свойствах связи с данными можно было выбирать среди поставщиков данных SQL Server, а не OLE DB?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.07.2011, 14:12
    #37370941
Akisawa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
AnarkiSib,

теперь (в новой студии) надо при подключении к COM пользоваться не классами, а интерфейсами, иначе выскаивает ошибка компиляции ("Внедрение типа взаимодействия невозможно. Используйте вместо него доступный интерфейс."), то есть:

ADODB.Connection cn=new ADODB.Connection();
MSDASC.DataLinks ud=new MSDASC.DataLinks();

Такой синтаксис вызывает недоумение (откуда у интерфейсов конструкторы?), но он работает и в старых версиях. Более того, у меня, например, при использовании классов в таком случае не приходили сообщения на обработчик событий COM, а с использованием интерфейсов приходят.
...
Рейтинг: 0 / 0
28.07.2011, 21:40
    #37371792
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
Akisawaтеперь (в новой студии) надо при подключении к COMне надо в студии без особой нужды пользоваться COM, особенно при тривиальных задачах, вроде коннекта к базе.
...
Рейтинг: 0 / 0
31.07.2011, 13:57
    #37374271
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не заучивайте строку конекта...
Чем так опасен ком, Кэт второй? )Чем так опасен ком, Кэт второй? )
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не заучивайте строку конекта... / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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