`

看你知道不知道之-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的内容来做逻辑判

分享到:
评论

相关推荐

    Java调用SQL Server的存储过程详解

     使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列。不带参数的 call 转义序列的语法如下所示: {call procedure-name}  作为实例,在 SQL Server 2005 AdventureWorks 示例数据库中...

    grub4dos-V0.4.6a-2017-02-04更新

    作用之二,直接作为菜单的背景(即不加载图像背景)。此时只设置字体的前景色即可。 2.增加动画菜单。 splashimage --animated=[type]=[delay]=[last_num]=[x]=[y] START_FILE 类型[type]:bit 0-3: 播放次数 bit...

    批处理教程

    - **CALL** - 调用另一个批处理脚本或同一脚本中的函数。 - **shift** - 用于处理脚本传入的参数。 - **IF** - 条件判断语句,支持多种用法。 - **setlocal 与 变量延迟** - `setlocal`:创建新的环境变量...

    美团点评2017秋招笔试真题-前端开发工程师B.pdf

    - 字符转义序列:`'\n'`代表换行,`'\101'`在ASCII编码中对应字符'A'。 8. **Android组件**: - **Activity**:是Android应用的主要组成部分,负责用户界面的呈现。 - **IntentService**:用于执行后台一次性...

    美团2017秋招笔试真题-前端开发、运维工程师.docx

    - `'\101'`:八进制转义序列表示的字符,也是有效的字符常量。 ### 5. 改变作用域链的方式 - **不会改变作用域链**: - `with`:可以改变作用域链。 - `while`:循环语句,不会改变作用域链。 - `try catch`:...

    Windows批处理教程(有目录_很齐全)

    - `@` 符号放在命令前可以隐藏该命令的执行过程,即不显示该命令本身而直接显示其结果。 - **PAUSE** - `PAUSE` 命令用于暂停批处理的执行,直到用户按下任意键才会继续执行后续命令。这有助于用户查看执行结果。...

    DOS批处理高级教程精选合编(for_windows_Xp)完整版.pdf

    ### DOS批处理高级教程知识点梳理 #### 一、批处理基础概述 - **批处理**是一种在计算机上执行一系列预定义命令的方式。它通常用于自动化重复性任务,提高工作...随着实践经验的积累,你将成为一名批处理脚本的高手。

    CMD命令行高级教程

    - **参数 /L**:迭代数字序列。 - **参数 /F**:迭代文件列表或文本文件中的数据。 #### 第三章 FOR 命令中的变量 - **~I-删除任何引号("),扩展%I** - **%~fI-将%I扩展到一个完全合格的路径名** - **%~dI-仅将%I...

    CMD命令行高级教程精选合编

    - `^`:转义字符,用于转义特殊字符。 - `&`:同时执行命令。 - `&&`:如果前一个命令成功,则执行下一个命令。 - `||`:如果前一个命令失败,则执行下一个命令。 - `""`:字符串引用。 - `,`:逗号,用于分隔...

    IDL培训教材(基于IDL8.0)-Esri培训班教材

    - **特殊字符**:处理转义序列等特殊字符。 - **部分字符操作函数**:例如字符串连接、分割等。 - **结构体**: - **概述**:IDL中的结构体是一种复合数据类型,包含多个成员变量。 - **创建结构体**:使用...

    C语言错误解释和总结

    - **Invalid escape sequence in string literal**: 字符串字面量中的转义序列无效,例如错误的转义字符。 - **Invalid preprocessing token**: 预处理标记无效,可能是因为使用了非法字符或格式错误的指令。 - **...

    remote-copy.vim:通过OSC 52从Vim复制文本

    它取决于OSC52转义序列。 与其他OSC52 Vim脚本(例如)不同,它解决了复制文本时出现的Flash问题。 要求 Vim 7.3或更高版本。 Python3 +。 支持OSC52转义序列的终端。 安装 您可以通过Vim插件管理器安装此插件。 ...

    DOS批处理高级教程精选合编

    - 用于在指定范围内生成数字序列。 - **参数 /F**: - 用于处理文件中的文本数据。 - **%~修饰符**: - `%~fI`:扩展为完整路径名称。 - `%~dI`:扩展为驱动器盘符。 - `%~pI`:扩展为路径。 - `%~nI`:扩展...

    DOS批处理高级教程精选

    - `@` 放在命令前面表示该命令不显示命令行提示。 3. **PAUSE** - `PAUSE` 命令使得批处理暂停,直到用户按下任意键才继续执行。 4. **ERRORLEVEL** - `ERRORLEVEL` 是一个环境变量,用来记录上一个命令的退出...

    2011年Esri-IDL培训教材(基于IDL8.0)

    - **特殊字符**:了解并使用转义序列,如换行符、制表符等。 - **部分字符操作函数**:使用内置函数进行字符串的拼接、分割等操作。 ##### 结构体: - **概述**:结构体是用于组织不同类型数据的一种复合数据类型。...

    DOS批处理高级教程资料精选

    - `%~I`:扩展为不包含引号的完整路径。 - `%~fI`:扩展为包含完整路径的文件名。 - `%~dI`:扩展为驱动器盘符。 - `%~pI`:扩展为路径。 - `%~nI`:扩展为文件名。 - `%~xI`:扩展为文件扩展名。 - `%~sI`:扩展为...

    dos命令和批处理教程

    - FOR /L 命令用于迭代数字序列。 - FOR /F 命令用于解析文件内容或命令输出。 - FOR /R 命令用于递归地处理目录中的文件。 - FOR /D 命令用于处理目录。 - **FOR 命令中的变量** - 通过 `%~` 语法可以获取文件...

    CMD命令行高级教程.pdf

    - **^**:转义字符,用于表示特殊字符。 - **&**:组合命令,连续执行多个命令。 - **&&**:逻辑AND操作符,前一个命令成功才执行后一个命令。 - **||**:逻辑OR操作符,前一个命令失败才执行后一个命令。 - **""**...

Global site tag (gtag.js) - Google Analytics