具有子串函数的DAO记录集

时间:2011-08-24 14:37:37

标签: vb6 dao foxpro

我有一个vb6应用程序,我正在使用DAO创建与数据库的连接并尝试打开记录集。该数据库是一个foxpro数据库,我已经参考了Microsoft DAO 2.5 / 3.5兼容性库。

我的代码如下

  Dim gdbSMS As Database
  If gdbSMS Is Nothing Then
     Set gdbSMS = OpenDatabase("C:\Work\M2M Test\DATA", False, False, "Foxpro 2.6;")
  End If
  Dim sql As String
  sql = "select *, substr(lineitem,8,6)  as aa from shippers where shipper = '001322' order by aa"

  Dim rsShipper As DAO.Recordset
  Set rsShipper = gdbSMS.OpenRecordset(sql)
  Do While Not rsShipper.EOF
      Beep
      rsShipper.MoveNext
  Loop
  rsShipper.Close

当我为openrecordset执行teh行时,我在表达式中得到一个错误“未定义的函数'substr' 我在foxpro中运行完全相同的查询,它工作正常。关于我需要做什么才能让它与子串函数一起工作的任何想法? 感谢

2 个答案:

答案 0 :(得分:0)

尝试使用T-SQL SUBSTRING函数。

SUBSTRING ( value_expression , start_expression , length_expression )

答案 1 :(得分:0)

不使用DAO记录集,而是使用DataTables,使用OleDBProvider for Foxpro数据的数据适配器(绝对不会回到Fox 2.x)为您提供更多当前的查询灵活性....

那就是说,你可以尝试做SUBSTR()实际做的事情......尝试改为

RIGHT( LEFT( LineItem, 14 ), 6 ) as AA