1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

Тема в разделе "С и С++", создана пользователем Diana, 24 дек 2009.

  1. Diana

    Diana Гость

    Репутация:
    0
    нужно программно создать источник данных,нашла ф-ю SQLConfigDataSource()
    Код:
    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);
    но видно я параметры не правильно задаю,подскажите что не так делаю
     
  2. ????

    ???? Гость

    Репутация:
    0
    а какую ошибку выдаёт?
     
  3. Diana

    Diana Гость

    Репутация:
    0
    никакую,просто ничего не создаёт
     
  4. xKlonx

    xKlonx Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    10 сен 2009
    Сообщения:
    410
    Симпатии:
    0
    Под дебагом смотрели?Что говорит?
     
  5. Diana

    Diana Гость

    Репутация:
    0
    нашла код,помогите разобраться
    Код:
    	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,стоит проверка учётной записи,хотя мне это не нужно :offtop: целый день парюсь
     
  6. ????

    ???? Гость

    Репутация:
    0
    Diana
    к первому посту:
    судя по http://msdn.microsoft.com/en-us/library/aa...8SQL.80%29.aspx драйвер Microsoft® SQL Server™ ODBC не поддерживает UID и PWD, т.е. строка подключения составлена неправильно.

    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
     
  7. Diana

    Diana Гость

    Репутация:
    0
    TENZO-M\WINCC - это и есть имя сервера,база-database
     
Загрузка...

Поделиться этой страницей