создать источник данных

  • Автор темы Diana
  • Дата начала
D

Diana

нужно программно создать источник данных,нашла ф-ю SQLConfigDataSource()
C++:
char* driver = "SQL Server";
char* params = "DSN=MyDR\0UID=sa\0PWD=server\0"
"DBQ=E:\\работа\\ALG.mdf\0";

SQLConfigDataSource(NULL, ODBC_ADD_DSN, driver, params);
но видно я параметры не правильно задаю,подскажите что не так делаю
 
D

Diana

никакую,просто ничего не создаёт
 
X

xKlonx

Под дебагом смотрели?Что говорит?
 
D

Diana

нашла код,помогите разобраться
C++:
	CString tmpStr; 
RETCODE nRetCode; 

CString strServer; 
strServer="TENZO-M\WINCC"; 
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; 
} 
AfxMessageBox(szAttributes);
nRetCode = SQLConfigDataSource(NULL, ODBC_ADD_DSN, szDriver, szAttributes); 
if(!nRetCode) 
{ 
AfxMessageBox("Error create DSN in registry!", MB_OK|MB_ICONSTOP); 
return FALSE; 
}

в результате создаётся источник данных с именем - SQL_DSNName, имя сервера - TENZO-MWINCC,вместо TENZO-M\WINCC,описание-SQL DSN description,стоит проверка учётной записи,хотя мне это не нужно :eek:fftop: целый день парюсь
 
?

????

Diana
к первому посту:
судя по драйвер Microsoft® SQL Server™ ODBC не поддерживает UID и PWD, т.е. строка подключения составлена неправильно.

в результате создаётся источник данных с именем - SQL_DSNName, имя сервера - TENZO-MWINCC,вместо TENZO-M\WINCC,описание-SQL DSN description, стоит проверка учётной записи
SQL_DSNName - правь на нужный в коде
TENZO-M\WINCC - имя сервера тут только TENZO-M, а WINCC - имя баз, т.е. strServer = "TENZO-M"; strDB = "WINCC";
стоит проверка учётной записи - проверка учётной записи Windows NT или SQL Server?
Trusted_Connection=yes - проверка учётной записи Windows NT
Trusted_Connection=no - проверка учётной записи SQL Server
(это надо добавить в строку подключения).

примерная строка должна получиться:
DSN=Имя\0DESCRIPTION=Описание\0SERVER=TENZO-M\0DATABASE=WINCC\0Trusted_Connection=no\0
 
D

Diana

TENZO-M\WINCC - это и есть имя сервера,база-database
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!