2011-08-24 112 views
0

我有一個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

回答

0

嘗試使用T-SQL字符串函數來代替。

SUBSTRING (value_expression , start_expression , length_expression) 
0

不使用DAO記錄集,而是使用數據表,並使用OleDBProvider的FoxPro數據數據適配器(絕對不會回到福克斯2.X)爲您提供了更多的查詢當前的靈活性....

這就是說,你可以嘗試做什麼SUBSTR()實際上做...嘗試改變爲

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