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、参考资料

为什么大家都说SELECT * 效率低?看完这篇你就明白了!_程序员小乐-CSDN博客https://blog.csdn.net/xiaoxiaole0313/article/details/107350869/?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.no_search_link&spm=1001.2101.3001.4242.1

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 *查询带出来的全部字段的更多相关文章

  1. 获取request中的查询参数

    //获取request中的查询参数 public static Map<String, Object> getRequestParamsByMap(HttpServletRequest r ...

  2. C# 获取url中的查询字符串参数

    /// <summary> /// 获取url中的查询字符串参数 /// </summary> public static NameValueCollection Extrac ...

  3. Oracle中如何查询一个表的所有字段名和数据类型

    Oracle中如何查询一个表的所有字段名和数据类型 查询语法 select A.COLUMN_NAME,A.DATA_TYPE from user_tab_columns A where TABLE_ ...

  4. 【本周面试题】第1周 - 获取URL中的查询字符串参数、get和post的区别

    [此系列优先解决自己经历的面试题] 2018.11.16 面试题一:你如何获取浏览器URL中查询字符串中的参数? 题目代码: 测试地址为 https://www.sogou.com/tx?query= ...

  5. 用正则表达式获取URL中的查询参数

    总结获取url中查询参数的两种方式 通过正则表达式获取单个参数 url中的所有查询参数可以通过 window.location.search 字段获取,以字符串的形式返回.并有固定的格式 ?param ...

  6. sqlite数据库 select 查询带换行符数据

    在sqlite 数据库中用 select 语句查询带 换行符的 数据信息 实现 SELECT   * from questions_exec where title like     '%'||x'0 ...

  7. Mysql 在 select 查询时追加(添加)一个字段并指定值

    在特定时候,在 mysql 的查询结果中我们需要追加一个字段来实现某些特定的功能,这时我们可以用到以下语法来实现 值 as 字段比如我们需要给这个查询结果追加一个 xx 字段并赋值为 null ,可以 ...

  8. 【mybatis】mybatis 中select 查询 select * 查询出来的数据,字段值带不出来 数据不全

    原来的代码如下: <select id="findByGoodsUid" resultType="com.pisen.cloud.luna.ms.goods.bas ...

  9. 在sql脚本中获取变量中的查询结果

    )--变量 ) set @itemValue='select @a=getdate()'--赋值 exec sp_executesql @itemValue,N'@a nvarchar(max) ou ...

随机推荐

  1. 洛谷P2367 语文成绩(差分)

    标准的差分应用题,不要想的太复杂,写成了线段树. 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=5e6+10 ...

  2. Vue实现长按图片识别图中二维码

    Vue实现长按图片识别图中二维码 思路:要想实现可以识别图片中的二维码,那必定是要将这张图进行上传操作,上传则需要file对象格式.不管是在H5还是APP中,展示的图片都是通过url的方式展示在img ...

  3. 手写自定义springboot-starter,感受框架的魅力和原理

    一.前言 Springboot的自动配置原理,面试中经常问到,一直看也记不住,不如手写一个starter,加深一下记忆. 看了之后发现大部分的starter都是这个原理,实践才会记忆深刻. 核心思想: ...

  4. 齐博x1动态改变标签调用不同频道的数据

    标签默认需要设置标签参数 type 指定调用哪个频道的数据,比如下面的代码,需要默认指定商城的数据, {qb:tag name="qun_pcshow_shop001" type= ...

  5. 记录一次sshd服务启动失败

    记录一次sshd服务启动失败 问题描述: 服务器开机之后发现无法通过远程连接服务器终端,但是服务器并未宕机,于是考虑到sshd服务出现异常 解决思路: 查看服务器sshd服务运行情况 [root@ha ...

  6. .NET6打包部署到Windows Service

    1.安装Nuget包 安装以下nuget包支持windows service <PackageReference Include="Microsoft.AspNetCore.Hosti ...

  7. element-ui el-table 高度自适应

    element-ui  el-table 高度自适应 <div ref="searchHeader" class="div_search search_title& ...

  8. SpringBoot 常用注解的原理和使用

    @AutoConfiguration 读取所有jar包下的 /META-INF/spring.factories 并追加到一个 LinkedMultiValueMap 中.每一个url中记录的文件路径 ...

  9. 我要涨知识 —— TypeScript 常见面试题(一)

    1.ts 中的 any 和 unknown 有什么区别? unknown 和 any 的主要区别是 unknown 类型会更加严格:在对 unknown 类型的值执行大多数操作之前,我们必须进行某种形 ...

  10. ios手机键盘拉起之后页面不会回退的问题

    在input输入框输入内容之后,点击完成,键盘下去了,可是页面没有回退回去,也就是页面会空出浏览器高度那一块,这个问题发现于ios手机中的微信浏览器.解决方案如下 <input type=&qu ...