Тема: SQLConfigDataSource для MS SQL-server Дата: 14.02.01 13:06 От кого: Vladislav MogilevskyКому: 'kaev@yandex.ru' kaev@yandex.ru
Привет! Я не нашел примера для создания DSN для SQL-сервера. Посылаю. Этот код вымучан долгими попытками.
CString tmpStr;
RETCODE nRetCode;
CString strServer;
strServer="ServerName";
CString strDB;
strDB="DataBase";
//create DSN on this computer
char *szDriver = "SQL Server";
tmpStr="DSN=SQL_DSNName\\DESCRIPTION=SQL DSN description\\SERVER=";
tmpStr+=strServer;
tmpStr+="\\ADDRESS=1433\\NETWORK=DBMSSOCN,";
tmpStr+=strServer;
tmpStr+="\\DATABASE=";
tmpStr+=strDB;
tmpStr+="\\";
//change double slashes to terminate symbol
char *szAttributes=tmpStr.GetBuffer(tmpStr.GetLength());
for(int i=0;i<tmpStr.GetLength();i++)
{
if(*(szAttributes+i)==(int) '\\')
*(szAttributes+i)=NULL;
}
nRetCode = SQLConfigDataSource(NULL, ODBC_ADD_DSN, szDriver, szAttributes);
if(!nRetCode)
{
AfxMessageBox("Error create DSN in registry!", MB_OK|MB_ICONSTOP);
return FALSE;
}
В принципе все аналогично обычной установке соединения, но есть особенность с "ADDRESS=1433\\NETWORK=DBMSSOCN,ИмяСервера". Коннекты должны по умолчанию для MS SQL идти на 1433 порт, тип сети - тоже пришлось из registry вытаскивать. Хрень какая-то вообще с документацией по этому поводу. Так что считаю своим долгом поделиться.
С уважением, Vlad Mogilevsky.