asp前端无法获取后端中select *查询带出来的全部字段
1、环境
前端:ASP、vbscript
后端:vb
数据库:Sql Server
2、问题描述
最近在做需求时碰到一个很奇怪的问题,后端通过select *查询带出来的字段,在前端只能获取到部分字段的值,有些字段的值获取不到。

3、解决方法
后来是把sql语句中 p.*的位置放在所有字段的最后面,并且调整了该表的字段顺序,把”text“类型的字段的位置放在最后,即:

在sql语句中,把.*查询也放到最后。

再次调试程序,之前缺失的字段都显出出来了。

4、产生原因
在sql server中是不建议使用select *查询,因为.*查询会查出许多不必要的字段,增大数据库负担,数据传输时间和网络开销。并且在数据库中出现了text这种大数值类型。sqlserver中text字段的最大长度是2^31-1给字符(即2G的存储容量)。因为text字段没有指定长度,所以对于表中的text字段数据库会默认分配很大的空间给这个字段。对于这些大字段,在查询的时候,长度超过 728 字节的时候,会先把超出的数据序列化到另外一个地方,因此读取这条记录会增加一次 io 操作。sqlserver执行select *操作时,是按表结构中字段的定义顺序依次查询的,由于测试环境比较差,因此对于text这种类型的大字段,有可能出现查询超时,导致其他字段也查不到的现象。解决方案是建表的时候尽量避免使用像text这种未定义长度的大字段,如果用了,则把text这种大字段放到表结构所有字段的最后,以及在查询时把大字段的查询顺序放在最后以避免影响其他字段的查询。
5、关联问题
ADODB.Recordset 错误 '800a0bcd' BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
这个问题是由于获取到的select查询的结果集为空导致的,其产生原因也有可能是上文所说的大字段然后查询超时导致其他字段查不到。
6、参考资料
SQL Server中Text和varchar(max)数据类型区别 - 亮将 - 博客园 (cnblogs.com)
https://www.cnblogs.com/liangjiang/p/5660902.htmlSQL server 数据库TEXT字段的最大长度问题 急急!-CSDN社区
https://bbs.csdn.net/topics/266764
asp前端无法获取后端中select *查询带出来的全部字段的更多相关文章
- 获取request中的查询参数
//获取request中的查询参数 public static Map<String, Object> getRequestParamsByMap(HttpServletRequest r ...
- C# 获取url中的查询字符串参数
/// <summary> /// 获取url中的查询字符串参数 /// </summary> public static NameValueCollection Extrac ...
- Oracle中如何查询一个表的所有字段名和数据类型
Oracle中如何查询一个表的所有字段名和数据类型 查询语法 select A.COLUMN_NAME,A.DATA_TYPE from user_tab_columns A where TABLE_ ...
- 【本周面试题】第1周 - 获取URL中的查询字符串参数、get和post的区别
[此系列优先解决自己经历的面试题] 2018.11.16 面试题一:你如何获取浏览器URL中查询字符串中的参数? 题目代码: 测试地址为 https://www.sogou.com/tx?query= ...
- 用正则表达式获取URL中的查询参数
总结获取url中查询参数的两种方式 通过正则表达式获取单个参数 url中的所有查询参数可以通过 window.location.search 字段获取,以字符串的形式返回.并有固定的格式 ?param ...
- sqlite数据库 select 查询带换行符数据
在sqlite 数据库中用 select 语句查询带 换行符的 数据信息 实现 SELECT * from questions_exec where title like '%'||x'0 ...
- Mysql 在 select 查询时追加(添加)一个字段并指定值
在特定时候,在 mysql 的查询结果中我们需要追加一个字段来实现某些特定的功能,这时我们可以用到以下语法来实现 值 as 字段比如我们需要给这个查询结果追加一个 xx 字段并赋值为 null ,可以 ...
- 【mybatis】mybatis 中select 查询 select * 查询出来的数据,字段值带不出来 数据不全
原来的代码如下: <select id="findByGoodsUid" resultType="com.pisen.cloud.luna.ms.goods.bas ...
- 在sql脚本中获取变量中的查询结果
)--变量 ) set @itemValue='select @a=getdate()'--赋值 exec sp_executesql @itemValue,N'@a nvarchar(max) ou ...
随机推荐
- 驱动开发:Win10内核枚举SSDT表基址
三年前面朝黄土背朝天的我,写了一篇如何在Windows 7系统下枚举内核SSDT表的文章<驱动开发:内核读取SSDT表基址>三年过去了我还是个单身狗,开个玩笑,微软的Windows 10系 ...
- 1NF | 2NF | 3NF的区分以及什么是函数依赖、部分函数依赖、值传递依赖(最详细的讲解1NF、2NF、3NF的关系)
1NF | 2NF | 3NF的区分以及什么是函数依赖.部分函数依赖.值传递依赖 符合3NF一定符合2NF.一定符合1IF 简单区分.2NF不存在部分函数依赖,3NF不存在传递函数依赖 第一范式1NF ...
- springboot+mybatis+shiro项目中使用shiro实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、
要实现的目的:根据登录用户.查询出当前用户具有的所有权限.然后登录系统后.根据查询到的权限信息进行不同的操作. 以下的代码是在搭好的框架之下进行的编码. 文章目录 核心实现部分. 第一种是将用户表和角 ...
- 齐博x1如何开启自定义标签模板功能
为安全起见,同时也为了避免用户随意添加风格导致默认模板不协调,系统默认关闭了类似V系列的自定义修改模板功能.如下图所示,默认是关闭的 你如果需要启用的话,把下面的代码,参考下图导进去后,就可以增加一个 ...
- win10桌面右键卡顿卡死解决方法
win+R,打开命令行 输入services.msc 找到NADIA Display Container LS,将其由自动改为禁用,解决问题. PS:网上有些改注册表的方法,确实可以治标,但是大家都应 ...
- Linux操作系统,笔录!
1.Linux 1.1.Linux介绍: Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX ...
- 嵌入式-C语言基础:字符串strlen和sizeof的区别
strlen表示的实际的字符串长度,不会把字符串结束符'\0'计算进去,而sizeof则不是实际的字符串长度,它会把字符串的结束标识符'\0'也包含进去. #include<stdio.h> ...
- 嵌入式-C语言基础:二级指针
二级指针:可以理解为指向指针的指针,存放的是指针变量的地址. 下面用一级指针来保存一个指针变量的地址: #include<stdio.h> int main() { int *p1; in ...
- 工作总结:kafka踩过的坑
餐饮系统每天中午和晚上用餐高峰期,系统的并发量不容小觑.公司规定各部门都要轮流值班,防止出现线上问题时能够及时处理. 后厨显示系统属于订单的下游业务. 用户点完菜下单后,订单系统会通过发 Kafka ...
- 2022春每日一题:Day 35
题目:[NOI Online #1 提高组] 冒泡排序 看到范围这么大,求逆序对,有修改,估计也只能树状数组了,考查冒泡排序性质,排第i次冒泡排序,总逆序对个数会减少i的逆序对个数,然后交换两个数,他 ...