我有一个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中运行完全相同的查询,它工作正常。关于我需要做什么才能让它与子串函数一起工作的任何想法? 感谢
答案 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