我在程序中得到一文件名保存在CString str;
打开数据库后要查询与这个文件名相同的字段,语句如下
SELECT Data FROM table1 WHERE FileName=str
好像这里"WHERE FileName=str"是不正确的,那么应该怎么转换呢?请高手指教!

解决方案 »

  1.   

    文本字段要加单引号Posted By EasyCsdn1.0
      

  2.   

    SELECT Data FROM table1 WHERE FileName='"+str+"' 
      

  3.   

    SELECT Data FROM table1 WHERE FileName = 'str'
      

  4.   


    CString str("c:\\test.txt");
    CString strSQL;strSQL.Format("SELECT Data FROM table1 WHERE FileName = '%s' ", str);
    字符串为什么要加【单引号】,原因是【数据库引擎】是这样规定的;如果【数据库引擎】规定使用【井号】,那就需要用#号;
    大多数【DBMS】都使用【单引号】。
      

  5.   

    strSql="SELECT Data FROM table1 WHERE FileName ='"+str+"'";
      

  6.   

    SELECT Data FROM table1 WHERE FileName = 'str'或者用sprintf格式化一个字符串出来,str作为被格式化的值。
      

  7.   

    貌似不管用啊,SELECT Data FROM table1 WHERE FileName = 'sfnv.bin'直接用文件名是可以的,换成
    SELECT Data FROM table1 WHERE FileName = 'str'就不行
    SELECT Data FROM table1 WHERE FileName ='"+str+"'";更不行了ps:我的是vs2005
      

  8.   

    "SELECT Data FROM table1 WHERE FileName= '" + str + "'" 
      

  9.   

    strSQL.Format("SELECT Data FROM table1 WHERE FileName= '%s'",str); 
      

  10.   

    strSQL.Format("select Data from table1 where FileName=%s",str);
      

  11.   

    strSQL.Format("SELECT * FROM table1 where FileName=%s",str); 
    //或者strSQL.Format("SELECT * FROM table1 where FileName='"+str+"'"); 
    m_pRst->Open((_variant_t)strSQL,m_pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);