为了保证安全性,如果数据库的密码采用了特殊字符,例如0xa,0xd或者";"等;
但是使用ADO连接就会出问题,例如:
char pass[7]={0x30,0x0a,0x0d,0x0a,0xa,0xd,0};
conn->Open("provider=MSDAORA.1;Data Source=ctais_moni",user,pass,adConnectUnspecified);
使用ADO就不能正常连接,怎样解决这个问题。

解决方案 »

  1.   

    数据库的密码不可能是有0x0d0x0a的,他们俩合起来就是一个回车了,
      

  2.   


    char pass1[15]={0x22,0x0a,0x0d,0x0a,0xa,0xd,0x22,0x0};

    char c[200]="alter user useridentified by ";
    memcpy(c+strlen(c),pass1,strlen(pass1));
    execute(c)
    然后执行就可以改变口令为含有回车的特殊符号
      

  3.   

    char  pass1[15]={0x22,0x0a,0x0d,0x0a,0xa,0xd,0x22,0x0};  
                 
               char  c[200]=  "alter  user  useridentified  by    ";  
               memcpy(c+strlen(c),pass1,strlen(pass1));  
    execute(c)