当前位置: 首页 > news >正文

ADOQuery 查询MSSQL存储过程一个莫名其妙的错误;

在 SSMS 中执行完成正常的的存储过程。

也能正常的返回想要的数据,,然后通过 ADO 查询时,总是提法 某 字段不存在的问题;

此问题困扰了一天。

例如(当然,实际数据结构比下面举例的复杂):

存储过程A:

PROCEDURE  AAAS BEGINCREATE TABLE #T01(ID INT,NAME VARCHAR(10))INSERT INTO #T01 SELECT ID,NAME FROM USERTABLESELECT * FROM #T01END 

存储过程B:

PROCEDURE  BBAS BEGINCREATE TABLE #TAA(ID INT,NAME VARCHAR(10))CREATE TABLE #T01(USER_ID INT,USER_NAME,VARCHAR(10),FUN_CODE VARCHAR(10))INSERT INTO #TAA EXEC AA  --调AA存储过程,将查询结果放入 #TAA 中INSERT INTO #T01SELECT USER_ID=ID,USER_NAME=NAME, FUN_CODE ='' FROM #TAAEND 

----

在 SSMS 中,执行 BB 存储过程,能够正常的得到想要的数据。

但是在 ADOQUERY 中使用 SQL语句执行 BB 时,总是提示字段“NAME“不存在

后面才发现。由于 BB过程 中调整的 AA过程 它都有 #T01 这个临时表。

这个才是造成问题的根本存在。

只需要修改其中一个过程的 #T01 为其它名字即可解决问题;

所以得到的结论:

在某过程调用另一过程时,切记两过程不要存在同名临时表名,否则就会出现类似的问题;

http://www.lryc.cn/news/395996.html

相关文章:

  • 变阻器的分类
  • 微服务节流阀:Eureka中服务限流策略的精妙实现
  • Keras实战之图像分类识别
  • Celery,一个实时处理的 Python 分布式系统
  • 源码编译安装 LAMP
  • PostgreSQL的pg_filedump工具
  • Java语言+后端+前端Vue,ElementUI 数字化产科管理平台 产科电子病历系统源码
  • Linux 服务器环境搭建
  • RabbitMQ 更改服务端口号
  • 16:9横屏短视频素材库有哪些?横屏短视频素材网站分享
  • 在Java中,创建一个实现了Callable接口的类可以提供强大的灵活性,特别是当你需要在多线程环境中执行任务并获取返回结果时。
  • Vuforia AR篇(八)— AR塔防上篇
  • Spring AOP源码篇四之 数据库事务
  • 小波与傅里叶变换的对比(Python)
  • Linux-sqlplus安装
  • LeetCode 算法:课程表 c++
  • 前端面试题30(闭包和作用域链的关系)
  • A股本周在3000点以下继续筑底,本周依然继续探底?
  • Javadoc介绍
  • C# Application.DoEvents()的作用
  • IDEA如何创建原生maven子模块
  • LCD EMC 辐射 测试随想
  • Docker安装遇到问题:curl: (7) Failed to connect to download.docker.com port 443: 拒绝连接
  • 阿里云安装rabbitMQ
  • 中文大模型基准测评2024上半年报告
  • 新火种AI|OpenAI的CEO又有新动作?这次他成立了AI健康公司
  • 中介子方程五十
  • 如何借助社交媒体影响者的力量,让品牌影响力倍增?
  • Python面试题:Python 中的 `property` 函数有什么用?
  • 十五、小型电脑没有数字键及insert,怎么解决IDEA快速插入getset构造这些方法