Мне нужно получить данные из базы данных MS Access, используя SQL-запрос в программе VB.
Результат сохраняется в наборе записей, одно из полей - f100
, оно рассчитывается путем соединения нескольких строк,
Если длина значения f100
меньше 255, результат верный, но если он длиннее 255, результат неверный: f100
просто остается длиной 255 символов и последующих символовисчезают.
Мой оператор SQL выглядит следующим образом:
Select iif(f1=1,'123','')+iif(f2=1,'456','')+...... as f100 from Table1
Моя программа выглядит так:
Dim Conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strConn$, strSQL$
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\try.mdb;Persist Security Info=False"
Conn.CursorLocation = adUseClient
Conn.Open strConn
strSQL="Select iif(f1=1,'123','')+iif(f2=1,'456','')+...... as f100 from Table1"
With rst
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.CursorLocation = adUseClient
.Open strSQL, Conn
End With
'here rst.fields("f100") remains a max of 255 char
'debug.print rst.fields("f100")
rst.Close
Conn.Close
Есть ли какое-либо решение, которое содержит длинную вычисляемую строку внабор записей только по SQL-запросу?