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