AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.11.2008, 10:01   #1  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
->
Цитата:
Сообщение от ZooY Посмотреть сообщение
CRM 4.0
В плагине нужно получить данные, но не с помощью CrmService, а с помощью обращения к базе SQL. Для подключения к базе нужно как минимум знать ее имя.
По началу сделал так:
Код:
...
string databaseName = сontext.OrganizationName + "_MSCRM";
string connectionString = 
    "Data Source=localhost;Initial Catalog=" + databaseName +
    ";Integrated Security=SSPI";
...
Думал что для всех баз CRM имя базы - есть имя организации плюс суфикс _MSCRM. Но в одной конторе столкнулся с проблемой: имя, используемое в имени базы данных не совпалает с именем компании.
Собственно вопрос: можно ли каким нибудь образом получить имя базы данных CRM?
Будь вместо плагина обычная ASP.NET страничка, я бы не парился и вбил имя базы в web.config, а вот что делать с плагином - ума не приложу...
Тоже сталктвался с такой проблемой. Решил её так:

Код:
RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\MSCRM");
						
//Retreive MSCRM DataBase connection string
						
string configDBConnectionString = key.GetValue("configdb").ToString();
						
//next part - i connect to config db and retreive data to config connection to client db
						
DataSet clientDBConnectionData = new DataSet();
						
using(SqlConnection connection = new SqlConnection(configDBConnectionString))
{
        connection.Open();
							
        using (SqlCommand cmd = new SqlCommand())
	{
		cmd.Connection = connection;
		cmd.CommandType = CommandType.Text;
		cmd.CommandText = string.Format("Select SqlServerName, DatabaseName From Organization Where UniqueName = '{0}'", crmOrganizationName);
								
		using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
			adapter.Fill(clientDBConnectionData);
         }
							
	connection.Close();
}
						
if (clientDBConnectionData.Tables.Count == 0 || clientDBConnectionData.Tables[0].Rows.Count == 0)
	throw new Exception("Check your config parameters!");

string connectionString = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=SSPI",
								new object[] { (string)clientDBConnectionData.Tables[0].Rows[0]["SqlServerName"], 
											   (string)clientDBConnectionData.Tables[0].Rows[0]["DatabaseName"]});
В результате - строка подключения к требуемой клиентской базе. Из параметров - собственно название организации - crmOrganizationName.

PS харкодинг localhost-a - не хороший стиль, потому что Application Server и DB Server - могут быть разнесены.

Последний раз редактировалось a33ik; 04.11.2008 в 10:10.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Доступ к SQL ZooY Dynamics CRM: Разработка 30 05.02.2009 00:50
Мир CRM: Улучшение Dynamics CRM 4.0 производительности и безопасности данных под SQL Server 2008 Blog bot Dynamics CRM: Blogs 0 03.02.2009 02:07
Мир CRM: Новости об одной из составляющих работы Dynamics CRM - Microsoft SQL Server Blog bot Dynamics CRM: Blogs 0 03.11.2008 06:18
ansle: Выпущен SQL Server 2008 Blog bot Dynamics CRM: Blogs 1 07.08.2008 10:34
Microsoft Dynamics CRM Team Blog: Accessing a SQL Database from a Microsoft Dynamics CRM Plug-in Blog bot Dynamics CRM: Blogs 0 14.07.2008 13:05

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:44.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.