一般连接字串是这样的:
m_pConnection->ConnectionString="DRIVER={Sybase ASE ODBC Driver};UID=abc;SRVR=HB;PWD=password";
因为连接字串是靠分号分隔各个属性的,当密码中有分号的时候,会连接失败, 想问一下应该怎样处理;
比如 密码为 “pass;word”连接字串为
m_pConnection->ConnectionString="DRIVER={Sybase ASE ODBC Driver};UID=abc;SRVR=HB;PWD=pass;word";在不改变密码的情况下,这种情况应该怎样处理呢?

解决方案 »

  1.   

    密码用引号引起来
    类似于
    m_pConnection->ConnectionString="DRIVER={Sybase ASE ODBC Driver};UID=abc;SRVR=HB;PWD=\"pass;word\"";
      

  2.   

    m_pConnection->ConnectionString="DRIVER={Sybase ASE ODBC Driver};UID=abc;SRVR=HB;PWD='password'";
      

  3.   

    // 用单引号将password引起来
      

  4.   

    // 用单引号引起来是可以的
    // 你将m_pConnection->ConnectionString="DRIVER={Sybase ASE ODBC Driver};UID=abc;SRVR=HB;PWD='pass;word'";
    // 这句语句放到try{}catch(_com_e e){}语句块中,看看catch到了什么错误?
      

  5.   


    错误是 :指定的初使化字符串不符合 OLE DB 规定如果不用引号m_pConnection->ConnectionString="DRIVER={Sybase ASE ODBC Driver};UID=abc;SRVR=HB;PWD=pass;word";
    的错误是:Login failed
    我想是因为把密码搞成了pass,所以登陆失败!难道就没有别的办法了?
      

  6.   

    如果不用 ConnectionString 的话
    直接用Open方法应该怎么写?
      

  7.   

    m_pConnection->Open("DRIVER={Sybase ASE ODBC Driver};SRVR=HB","abc","pass;word",adModeUnknown);
    // 似乎是这样
      

  8.   

    难道大家都没有遇到过这种问题?可以建个MDB测试一下啦
      

  9.   

    用udl文件生成就可以了,google一下"udl文件"
      

  10.   

    ado.net可以用引号来处理
    但ado似乎不行啊,等高人出现
      

  11.   

    // 你先试试udl文件吧。
    // 然后在udl的基础上修改链接字符串。
      

  12.   

    把密码单独出来。
    如果不用ADO连接,用其它:oledb,odbc。
      

  13.   

    PB能连上,VC用OLEDB连不上,疯了之中啊有没有其它解决方案???
      

  14.   

    看来只有用ct-library编程了,谢谢各位了!