带子串函数的DAO记录集

问题描述:

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

我的代码如下

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我得到一个错误“undefinied功能‘SUBSTR’在表达 我运行在FoxPro中完全相同的查询,它工作正常。任何什么我需要做的想法得到这个与子职能的工作? 感谢

+0

你尝试使用'Mid'而不是'substr'? – wqw

尝试使用T-SQL字符串函数来代替。

SUBSTRING (value_expression , start_expression , length_expression) 

不使用DAO记录集,而是使用数据表,并使用OleDBProvider的FoxPro数据数据适配器(绝对不会回到福克斯2.X)为您提供了更多的查询当前的灵活性....

这就是说,你可以尝试做什么SUBSTR()实际上做...尝试改变为

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