unidac 访问sql server 字符查询参数失效问题及解决办法
在帮朋友调试kbmmw 服务器的时候,发现用uindac 访问sql server作为后台时,碰见一个问题。
具体如下:
cx.Close;
cx.sql.add('select * from T where id=:id'); // 这里id 是整数字段
cx.Prepare;
cx.ParamByName('id').AsString:='';
cx.Open;
这一句运行时不出现错误,但是返回结果为空,很是奇怪。
cx.Close;
cx.sql.add('select * from T where id=:id'); // 这里id 是整数字段
cx.Prepare;
cx.ParamByName('id').Asinteger:=;
cx.Open;
当改成这样的化,就可以返回正常结果。
经过查询devart 的论坛,发现这是sql server 本身的问题。
要使第一段代码正常工作,需要增加一行代码。
cx.SpecificOptions.Values['DescribeParams'] := 'True';
cx.Close;
cx.sql.add('select * from T where id=:id'); // 这里id 是整数字段
cx.Prepare;
cx.ParamByName('id').AsString:='';
cx.Open;
这样sql server 就可以正常解析参数了。
在kbmmw 中使用unidac 访问sql server 的同学,如果遇见类似这样的问题,可以参考一下。
q := TUniQuery.Create(nil);
q.Options.FieldsOrigin := True;
SetSpecificOptions(q.SpecificOptions);
q.Connection := c.Database;
q.SQL.Assign(CookedQuery); q.SpecificOptions.Values['DescribeParams'] := 'True'; // 这一句对sql server 很重要
q.Prepare;
UniDACCopyInputParamsValueAndType(Params,q.Params,
Connection.ConnectionPool.MetaData.UnicodeOptions);
q.Open; // After the query is open, also remember to get the resulting params from it.
Params.Assign(q.Params);
Result:=q;
2017.3.8
最新kbmmw已经支持直接在控件中设置上面属性,不用修改源码了。
unidac 访问sql server 字符查询参数失效问题及解决办法的更多相关文章
- SQL SERVER中查询参数为空(null)时默认查询所有的实现
最近在项目中碰到一个比较有意思的问题,网上查找了一些方法,在这里总结分享一下. 我们经常会碰到这样的场景:需要查询数据,有一些查询条件,但是查询的时候,我们希望在某个条件为空的时候,则不筛选这个条件, ...
- SQL SERVER 数据库被标记为“可疑”的解决办法
问题背景: 日常对Sql Server 2005关系数据库进行操作时,有时对数据库(如:Sharepoint网站配置数据库名Sharepoint_Config)进行些不正常操作如数据库在读写时而无故停 ...
- 安装 SQLManagementStudio_x86_CHS(SQL Server Management Studio) 老提示重启的解决办法
安装 SQL Server Management Studio(SQLManagementStudio_x86_CHS)时,检测时不通过,提示重启电脑,我以为她安装了什么心软件没有重启:所以重启了电脑 ...
- sql server 数据库正在使用该文件的解决办法
今天在帮朋友还原数据库时遇到了一个问题.朋友用的是sql server 2008数据库,本身有一个数据库,他在修改程序的时候,想修改数据库的内容.但是又不想在原数据库中修改.想备份还原出一个数据库然后 ...
- sql server 2008评估期已到的解决办法
点击开始-所有程序-Microsoft SQL Server 2008-配置工具-SQL Server 安装中心然后点击左侧的维护,在点击右侧的版本升级,接着按照提示一直点下一步,到产品密钥的时候输入 ...
- SQL server 2008无法连接Local服务器的解决办法
SQL的有些服务总是在关机的时候自动关闭,然后你可以打开 控制面板——管理工具——服务,然后找到SQL相关的服务,右键——属性,里面有设置,可以设成自动启动
- 【转】Sql Server参数化查询之where in和like实现详解
转载至:http://www.cnblogs.com/lzrabbit/archive/2012/04/22/2465313.html 文章导读 拼SQL实现where in查询 使用CHARINDE ...
- 转载 50种方法优化SQL Server数据库查询
原文地址 http://www.cnblogs.com/zhycyq/articles/2636748.html 50种方法优化SQL Server数据库查询 查询速度慢的原因很多,常见如下几种: 1 ...
- 【转载】Sql Server参数化查询之where in和like实现详解
文章导读 拼SQL实现where in查询 使用CHARINDEX或like实现where in 参数化 使用exec动态执行SQl实现where in 参数化 为每一个参数生成一个参数实现where ...
随机推荐
- MySQL 练习题4
1.表结构如下: #课程表 CREATE TABLE `course` ( `c_id` ) NOT NULL, `c_name` ) DEFAULT NULL, `t_id` ) DEFAULT N ...
- 怎样创造財富?硅谷创业之父 Paul Graham 《黑客与画家》思维导图
先送上亚马逊传送门:<黑客与画家>:硅谷创业之父 Paul Graham 文集 再送上一个思维导图: 下载大图:http://caifujianghu.com/article/ruhe-c ...
- 【python】Python框架、库和软件资源大全
很多来自世界各地的程序员不求回报的写代码为别人造轮子.贡献代码.开发框架.开放源代码使得分散在世界各地的程序员们都能够贡献他们的代码与创新. Python就是这样一门受到全世界各地开源社区支持的语言. ...
- keepalive配置db层的ha的一些注意点
具体db是那种都一样 db先做好replica,可以用自己带的,或者drbd的磁盘复制 db和keepalived必须在同一主机 keepalived里面的rs必须只有一个(否则,做不了主从,理论上会 ...
- 五、jdk工具之jmap(java memory map)、 mat之四--结合mat对内存泄露的分析、jhat之二--结合jmap生成的dump结果在浏览器上展示
目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...
- python3.3.5x64+win2003x64+aliyun oss sdk安装步骤
参考文章:https://help.aliyun.com/document_detail/32026.html?spm=5176.doc31890.6.690.S6ZrRn 1.安装python3.3 ...
- 关于centos7.5部署oelinker_php版本的问题点汇总
1.下载开源版本https://github.com/eolinker/eoLinker-AMS-Lite-For-PHP到本地,将release文件夹内容copy到apache的/var/www/h ...
- CNN网络参数
卷积神经网络 LeNet-5各层参数详解 LeNet论文阅读:LeNet结构以及参数个数计算 LeNet-5共有7层,不包含输入,每层都包含可训练参数:每个层有多个Feature Map,每个 ...
- WPF MVVM
MVVM全称:Model-View-ViewModel 优点:MVVM的引入使程序实现了松耦合设计,UI层与业务逻辑可以并行设计 1.Model:对现实世界的抽象 比如:需要做一个学校的管理系统,学校 ...
- Rhythmk 学习 Hibernate 09 - Hibernate HQL
1.初始数据 @Test public void test01() { Session session = null; try { session = HibernateUtil.getSession ...