Vb.net 如何仅通过sql查询在记录集中保存长计算字符串?
我需要在VB程序中使用SQL查询从MS Access数据库获取数据 结果存储在一个记录集中,其中一个字段是Vb.net 如何仅通过sql查询在记录集中保存长计算字符串?,vb.net,ms-access,recordset,Vb.net,Ms Access,Recordset,我需要在VB程序中使用SQL查询从MS Access数据库获取数据 结果存储在一个记录集中,其中一个字段是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.C
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
我的程序是这样的:
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查询在记录集中保存长计算字符串?可能重复。您是否使用len()函数验证了字符串的实际长度?是的,我已经验证过,如果我打开一个.mdb文件并在Access中运行查询语句,结果是正确的。如果在编程环境中使用相同的查询语句将数据填充到记录集,则结果是错误的。可能会重复。您是否使用len()函数验证了字符串的实际长度?是的,我已经验证过,如果我打开一个.mdb文件并在Access中运行查询语句,结果是正确的。如果我在编程环境中使用相同的查询语句将数据填充到记录集,则结果是错误的。