IDataInitialize. Класс не зарегистрирован ....
От: drot Беларусь  
Дата: 10.11.05 15:09
Оценка:
Привет всем !

Вот код выбора строки подключения к БД:

MSDASC.DataLinks oDataLink = new MSDASC.DataLinksClass();
ADODB.Connection oCon = new ADODB.ConnectionClass();
oCon.ConnectionString = sConnection;
oDataLink.hWnd = (int)Handle;
object objCon = (object)oCon;
if (oDataLink.PromptEdit(ref objCon)) // HERE — An unhandled exception
{
textConnectionString.Text = oCon.ConnectionString;
}
oDataLink = null;
oCon = null;

An unhandled exception:
Additional information: Initialization string cannot be retrieved from IDataInitialize. Класс не зарегистрирован

Вызвов в конструкторе формы Application.OleRequired() ситуацию не меняет

Код делающий то же самое, на той же машине, на С++ работает без проблем:

MSDASC::IDataSourceLocatorPtr dsl = NULL;
_ConnectionPtr pConn = NULL;
CString sConStr;
HRESULT hr;

GetDlgItem(IDC_EDIT_CONSTR)->GetWindowText(sConStr);
sConStr = sConStr.Trim();
try
{
hr = pConn.CreateInstance(__uuidof(Connection));
if (S_OK != hr)
{
throw(_com_error(hr, NULL));
}
pConn->ConnectionString = (TCHAR *)sConStr.GetBuffer();
hr = dsl.CreateInstance(__uuidof(MSDASC::DataLinks));
if (S_OK != hr)
{
throw(_com_error(hr, NULL));
}
dsl->PuthWnd((long)m_hWnd);
_variant_t vConn = pConn.GetInterfacePtr();
if (dsl->PromptEdit(&vConn.pdispVal))
{
sConStr = (TCHAR *)pConn->ConnectionString;
GetDlgItem(IDC_EDIT_CONSTR)->SetWindowText(sConStr);
}
}
catch (_com_error &e)
{
}
Re: IDataInitialize. Класс не зарегистрирован ....
От: Аноним  
Дата: 09.11.07 08:47
Оценка:
Судя по всему, на машине где запускается приложение необходимо установить SQL Native Client.
У меня была ровно такая же проблема,
помогло следующее:

1) качаем файл SQL Native Client — sqlcli.msi
http://download.microsoft.com/download/2/4/d/24da19c<a target="_blank" href="http://findbook.ru/search/?isbn=2-7893-4804-9&ozon=rsdn&bolero=rsdnru&biblion=791&booksru=rsdn&zonex=248&piter=3600&myshop=00776">2-7893-4804-9</a>a3d-74a29483df4f/sqlncli.msi

2) устанавливаем SQL Native Client — см .http://msdn2.microsoft.com/en-us/library/ms131321.aspx

после инсталляции все заработало.
Re[2]: IDataInitialize. Класс не зарегистрирован ....
От: Goga74 Россия http://dotnetdiagz.com
Дата: 09.11.07 08:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Судя по всему, на машине где запускается приложение необходимо установить SQL Native Client.

А>У меня была ровно такая же проблема,
А>помогло следующее:

А>1) качаем файл SQL Native Client — sqlcli.msi

А>http://download.microsoft.com/download/2/4/d/24da19c<a target="_blank" href="http://findbook.ru/search/?isbn=2-7893-4804-9&ozon=rsdn&bolero=rsdnru&biblion=791&booksru=rsdn&zonex=248&piter=3600&myshop=00776">2-7893-4804-9</a>a3d-74a29483df4f/sqlncli.msi

А>2) устанавливаем SQL Native Client — см .http://msdn2.microsoft.com/en-us/library/ms131321.aspx


А>после инсталляции все заработало.


Поскольку я использовал 2000-й SQL-сервер, то написал вот такой cmd для инсталляции:
@call msiexec /i sqlncli.msi /passive ADDLOCAL=All APPGUID={0CC618CE-F36A-415E-84B4-FB1BFF6967E1}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.