Набор записей DAO с функцией подстроки - PullRequest
0 голосов
/ 24 августа 2011

У меня есть приложение 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, я получаю ошибку"неопределенная функция 'substr' в выражении я выполняю тот же самый запрос в foxpro, и он работает нормально. Есть мысли о том, что мне нужно сделать, чтобы заставить его работать с функциями подстроки? спасибо

Ответы [ 2 ]

0 голосов
/ 26 августа 2011

Без использования наборов записей DAO, но с использованием DataTables и адаптеров данных, использующих OleDBProvider для данных Foxpro (определенно не возвращаясь к Fox 2.x), дает вам большую гибкость в запросах ....

Тем не менее, вы можете попробовать сделать то, что на самом деле делает SUBSTR () ... Попробуйте изменить на

RIGHT( LEFT( LineItem, 14 ), 6 ) as AA
0 голосов
/ 24 августа 2011

Попробуйте вместо этого использовать функцию T-SQL SUBSTRING.

SUBSTRING ( value_expression , start_expression , length_expression )
...