Vb6 具有子字符串函数的DAO记录集
我有一个vb6应用程序,我正在使用DAO创建到数据库的连接,并尝试打开一个记录集。该数据库是一个foxpro数据库,我已经参考了Microsoft DAO 2.5/3.5兼容性库 我的代码如下Vb6 具有子字符串函数的DAO记录集,vb6,dao,foxpro,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
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执行第行时,我在表达式中得到一个错误“未定义函数'substr'
我在foxpro中运行了完全相同的查询,它运行得很好。我需要做些什么才能使它与子字符串函数一起工作呢?
谢谢尝试改用T-SQL子字符串函数
SUBSTRING ( value_expression , start_expression , length_expression )
不使用DAO记录集,而是使用DataTables,以及使用OleDBProvider for Foxpro数据的数据适配器(肯定不会返回到Fox 2.x),为您提供了更大的查询灵活性 也就是说,您可以尝试执行SUBSTR()实际执行的操作…尝试更改为
RIGHT( LEFT( LineItem, 14 ), 6 ) as AA
您是否尝试使用
Mid
而不是substr
?