请知各位大虾,你们写数据库软件的时候,是如何处理SQL语句里的关健字的呀。例如,我建立一个货品档案的表存放货品的名称规格,用户使用时,难免会输入 ' " / * 等符号。如果这些符号存在数据表里,当写查询语句时,该如何处理呢?请指教。

解决方案 »

  1.   

    由于是字符型的,这里关键的是引号。在引号内的其他符号都会被当做原意字符处理。一个变通的办法是,引号在数据库中照存不误,仅仅在组成 SQL 语句时处理一下。例如:tmp = txtType
    For i = 1 To Len(tmp)
       i = Instr(i, tmp, "'")
       If i = 0 Then Exit For
       If Mid(tmp, i + 1 , 1) <> "'" Then
          tmp = Left(tmp, i) & "'" & Mid(tmp, i + 1)
       End If
       i = i + 2
    Next i
    For i = 1 To Len(tmp)
       i = Instr(i, tmp, """)
       If i = 0 Then Exit For
       If Mid(tmp, i + 1 , 1) <> """ Then
          tmp = Left(tmp, i) & """ & Mid(tmp, i + 1)
       End If
       i = i + 2
    Next istrSQL = "SELECT * FORM tablename WHERE field1='" & tmp & "'"
      

  2.   

    附带说一句,以上不是 SQL 保留字,而是组成 SQL 语句字符串时,引起 VB 解释程序误解的符号。
      

  3.   

    通常的做法,不是放在SQL里面处理的。
    ---------------------------------
    限制用户输入就行了...