Как держать длинную вычисляемую строку в наборе записей просто по SQL-запросу? - PullRequest
1 голос
/ 05 мая 2019

Мне нужно получить данные из базы данных 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-запросу?

...