代码之家  ›  专栏  ›  技术社区  ›  MrTelly

access sql'或'返回真/假而不是数字

  •  0
  • MrTelly  · 技术社区  · 15 年前

    在Access中,SQL 1或2返回-1的真值。我怎样才能让它返回3,这是数字或数字(?)价值观。这在SQL Server中有效

    select 1 | 2
    

    返回3

    2 回复  |  直到 15 年前
        1
  •  2
  •   CRice    15 年前
        2
  •  0
  •   onedaywhen    15 年前

    只是为了增加哭泣的答案, BOR 这里需要什么。

    下面是一个使用jet 4.0的repro,它的ole db provider和ado的vba代码:

    Sub TestBOR()
    
      On Error Resume Next
      Kill Environ$("temp") & "\DropMe.mdb"
      On Error GoTo 0
    
      Dim cat
      Set cat = CreateObject("ADOX.Catalog")
      With cat
        .Create _
            "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & _
            Environ$("temp") & "\DropMe.mdb"
        With .ActiveConnection
    
          Dim Sql As String
          Sql = "SELECT 1 BOR 2;"
          .Execute Sql
          Dim rs
          Set rs = .Execute(Sql)
          MsgBox rs.GetString
        End With
        Set .ActiveConnection = Nothing
      End With
    End Sub
    

    结果是3,如预期的那样。

    如果要使用访问用户界面执行此操作,则需要确保它位于 ANSI-92 Query Mode . 如果你想用DAO来做这个…你不能!DAO总是使用ANSI-89查询模式。使用ADO是因为它总是使用ANSI-92查询模式。令人高兴的是,您可以在同一个项目中混合ADO代码和DAO代码。

    推荐文章