Шаг 18 - SQLConfigDataSource для MS SQL-server

Тема: 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.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.