SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0","DSN=TryDB\0DBQ=D:\\Database\\try.mdb\0DEFAULTDIR=D:\\DATABASE\0\0");这是一个动态增加数据源的语句,已调试通过,但我把他改为下面这样就不行了,为什么
str="DSN=TryDB\0DBQ=";
str=str+m_FileName;
str=str+"\0DEFAULTDIR=D:\\DATABASE\0\0";

str="DSN=TryDB\0DBQ=D:\\Database\\try.mdb\0DEFAULTDIR=D:\\DATABASE\0\0";
SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",str);
系统一检测到"\0"就将str截止了,应如何改正

解决方案 »

  1.   

    str="DSN=TryDB\0DBQ=";
    str=str+m_FileName;
    str=str+"#DEFAULTDIR=D:\\DATABASE##";

    str="DSN=TryDB\0DBQ=D:\\Database\\try.mdb\0DEFAULTDIR=D:\\DATABASE##";
             int len=strlen(str);//一定要声明
             for(int i=0;i<len;i++)
               if(str[i]=='#')
                   str[i]='\0';
    SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",str);
      

  2.   

    char szDesc[223];
    int mlen;
    sprintf(szDesc,"DSN=%s? DBQ=%s? DEFAULTDIR=%s?? ","TryDB","D:\\Database\\try.mdb","D:\\DATABASE");mlen = strlen(szDesc);
    for (int i=0; i<mlen; i++)
    {
        if (szDesc[i] == '?')
            szDesc[i] = '\0';
    }SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)szDesc);
      

  3.   

    好象不太对,BUILD到str[i]='\0';时,提示错误
    D:\Documents and Settings\j\桌面\Manager\DlgQueryData.cpp(74) : error C2106: '=' : left operand must be l-value
      

  4.   

    tabby (20)跟我的方法一样呀!