Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何仅通过sql查询在记录集中保存长计算字符串?_Vb.net_Ms Access_Recordset - Fatal编程技术网

Vb.net 如何仅通过sql查询在记录集中保存长计算字符串?

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

我需要在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.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中运行查询语句,结果是正确的。如果我在编程环境中使用相同的查询语句将数据填充到记录集,则结果是错误的。