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的内容来做逻辑判

  • 相关阅读:
    [hdu6271]Master of Connected Component
    [hdu5468]Puzzled Elena
    [hdu4582]DFS spanning tree
    [poj2054]Color a Tree
    [luogu4107]兔子和樱花
    整除的尾数[HDU2099]
    胜利大逃亡[HDU1253]
    Bitset[HDU2051]
    折线分割平面[HDU2050]
    不容易系列之(4)——考新郎[HDU2049]
  • 原文地址:https://www.cnblogs.com/Duiker/p/330375.html
Copyright © 2011-2022 走看看