用FDQuery执行创建临时表,查不到临时表,用ADOQuery和BDEQuery均正常,比较发现用ADOQuery执行的时候只有SQL没有调用sql的系统存储过程sp_prepexec.

是fdquery哪里设置的问题吗,用FDConnection->ExecSQL("sql");是可以查到临时表不调用系统存储过程sp_prepexec但是不能获得影响的行数,

set @p1=NULL 改为NULL创建的临时表可以查到,但是如何才能设置到NULL。

declare @p1 int
set @p1=1
exec sp_prepexec @p1 output,NULL,N'select top 50 * into #ls from myTable'
select @p1
go --------------------
exec sp_unprepare 1
go
exec [adb].[sys].sp_pkeys N'#ls',N'dbo',N'adb'
go
declare @p1 int
set @p1=NULL
exec sp_prepexec @p1 output,NULL,N'select top 50 * from #ls
'
select @p1
go

FDConnection.ResourceOptions.DirectExecute := True;

或者

dm->FDConnection1->ExecSQL(sql);

这样就解决了!!

qry->ResourceOptions->DirectExecute=true;

http://docs.embarcadero.com/products/rad_studio/firedac/frames.html?frmname=topic&frmfile=uADCompClient_TADRdbmsDataSet_ResourceOptions.html

对sql server有啥执行效果的区别,没有说明

Description

Use DirectExecute property to specify should FireDAC prepare SQL statement before execution (False) or execute it directly (True). The default value is False.

This property was introduced at first for MS SQL Server support. Where prepared and direct execution may have different effects. Or even prepared execution may fail. If you will get "strange" errors, then try to set DirectExecute to True.

还有一个办法,

exec sp_executesql N'select * into #ls from mytable'

select * from #ls

这样是访问不到临时表的,可以在命令前先create talbe #ls(a int)...

这个就是先创建临时表,得知道有哪些字段。

FDQuery sqlserver 临时表的更多相关文章

  1. sqlserver 临时表、表变量、CTE的比较

    原文地址:  sqlserver 临时表.表变量.CTE的比较 1.临时表 1.1 临时表包括:以#开头的局部临时表,以##开头的全局临时表. 1.2 存储 不管是局部临时表,还是全局临时表,都会放存 ...

  2. Oracle、SqlServer——临时表

    一.oracle 1.概述: oracle数据库的临时表的特点: 临时表默认保存在TEMP中: 表结构一直存在,直到删除:即创建一次,永久使用: 不支持主外键. 可以索引临时表和在临时表基础上建立视图 ...

  3. SqlServer 临时表

    SqlServer中临时表分为两种:一种是局部(本地)临时表,用#TableName表示.一种是全局(服务器)临时表,用##TableName表示. 创建临时表: 1. create table #T ...

  4. SqlServer——临时表

    1.表的类型: SqlServer数据库中分为两个表:永久表.临时表:通过表名的前缀区分. 永久表:与物理文件.C# 中的静态类 类似,任何用户均可对其执行操作并且相互影响: 临时表:简单的说就是使用 ...

  5. SQLServer 临时表的使用

    临时表在Sqlserver数据库中,是非常重要的,下面就详细介绍SQL数据库中临时表的特点及其使用,仅供参考. 临时表与永久表相似,但临时表存储在tempdb中,当不再使用时会自动删除.临时表有两种类 ...

  6. sqlserver临时表操作

    创建临时表        方法一:      create table #临时表名(字段1 约束条件,                       字段2 约束条件,                  ...

  7. SqlServer 临时表 与 表变量(转)

    1. 表变量 变量都以@或@@为前缀,表变量是变量的一种,另外一种变量被称为标量(可以理解为标准变量,就是标准数据类型的变量,例如整型int或者日期型DateTime).以@前缀的表变量是本地的,因此 ...

  8. SqlServer 临时表、表变量、函数 替代游标

    http://www.cnblogs.com/chongzi/archive/2011/01/19/1939106.html 临时表 存放在tempdb中 --存储过程中将多表连接结果写入到临时表中, ...

  9. sqlserver临时表排序问题

    在2005和2008中,如果将有序的记录插入临时表,则从临时表查看出来的记录是有序的(不使用Order by也是有序状态) 但从2012开始,即使插入的记录集是有序的,查看出来的结果变得无序了,需要依 ...

随机推荐

  1. web 移动端事件总结

    1.https://www.jianshu.com/p/6f85e957a725 (web 移动端事件总结)

  2. java基础第5天

    数组概述 数组是储存多个变量(元素)的东西(容器} 这多个变量的数据类型要一致 概念:数组是存储同一种数据类型多个元素的集合.也就是一个容器,这个容器有个名字,就是数组名. 数组就是在内存中开辟出一段 ...

  3. kvm虚拟机添加网卡

    前几篇文章介绍了有关KVM安装虚拟机以及如何给虚拟机添加硬盘,今天我们再来介绍下有关如何给KVM虚拟机添加网卡. 给KVM虚拟机添加网卡,可以分为两种形式:图形界面的和virsh attach-int ...

  4. python 之 多线程、多进程代码

    thread-多线程 multiprocessing-多进程 #!/usr/bin/python # -*- coding:utf-8 -*- import os import threading i ...

  5. promise的基础知识

    promise 相当于异步操作结果的占位符 它不会去订阅一个事件,也不会传递一个回调函数给目标函数,而是让函数返回一个promise,例如: let promise = readFile('a.txt ...

  6. ES6中箭头函数的作用

    我们知道在ES6中,引入了箭头函数,其本质就是等同有ES5中的函数.类似于下面的写法: let test1=() => “abc”; let test2=() => { return “a ...

  7. JQuery和Zepto的差异(部分)

    1.width()/height() Zepto.js: 由盒模型(box-sizing)决定 jQuery: 忽略盒模型,始终返回内容区域的宽/高(不包含 padding.border) jQuer ...

  8. ImportError: No module named 'serial'

    /******************************************************************************** * ImportError: No ...

  9. 对MYSQL慢查询slow query 日志记录内容的疑惑

    初始:由于新装服务器出现CPU占用过高,响应不及时的问题排查,因为环境基于最基础的LAMP构架 想到开启 MYSQL slow_query_log 慢查询日志做原因分析: 但是看到日志内容之后有点茫然 ...

  10. 20155236 2016-2017-2 《Java程序设计》第六周学习总结

    20155236 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 InputStream与OutputStream 从应用程序角度来看,如果要将数据从来源取出 ...