zoukankan      html  css  js  c++  java
  • 看你知道不知道之-Call转义序列

    今天在整理代码的时候,需要修改一个函数,使这个函数可以通过ADO的Command对象的CommandText的文本内容来判断,对象是否已经加载成功

    ,以避免重复的参数加载。

    这个函数需要通过CommandText的字符串比较来判断,但是在测试的时候,发现了一个有趣的问题如果在调用存储过程的时候,CommandText并

    不听话,而是返回类似于{? = CALL procname (?,?)},格式的内容,这到底是什么呢?

    查找MSDN得到如下内容:

    当 SQL 语句使用 ODBC CALL 转义子句调用存储过程时,Microsoft® SQL Server™ 驱动程序会使用远程存储过程调用 (RPC) 机制将此过程发

    送给 SQL Server。RPC 请求回避 SQL Server 中的许多语句分析和参数处理,因此比使用 Transact-SQL EXECUTE 语句的速度要快。

    构造一个使用 ODBC CALL 转义序列的 SQL 语句。该语句对每个输入、输入/输出和输出参数使用参数标记,对过程使用返回值(若有):
    {? = CALL procname (?,?)}

    原来利用Command调用存储过程当中,自动进行了转义,因此,不要通过CommandText的内容来做逻辑判

  • 相关阅读:
    Key and Certificate Conversion
    openssl
    python http通信实现
    鼠标右键添加cmd
    好文章
    wireshark里无网络接口解决办法
    python垃圾回收
    终于有人把 Docker 讲清楚了
    mongodb的监控与性能优化
    mongodb创建超级用户和普通用户(对应数据库的用户)
  • 原文地址:https://www.cnblogs.com/Duiker/p/330375.html
Copyright © 2011-2022 走看看