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

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

  1. Diana

    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);
    но видно я параметры не правильно задаю,подскажите что не так делаю
     
  2. ????

    ???? Гость

    а какую ошибку выдаёт?
     
  3. Diana

    Diana Гость

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

    xKlonx Lotus team
    Lotus team

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

    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: целый день парюсь
     
  6. ????

    ???? Гость

    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 Гость

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

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