• sql语句中的字符串拼接


    在使用sql语句的时候,我们经常会遇到使用字符串变量的时候,比如说,查询,str:='select *  from Table where Name='''+Name+'''';在.net里面使用sqlparameter,就不需要自己手动转换了,但是在delphi中,好像是没有那种用法,组织sql语句时,怎么把拼接的字符串转成符合规范的sql语句,这就是个问题了。

    就像上面写那句一样,我要想把name的值传到sql语句中间,还要带上单引号,形如str:='select *  from Table where Name='JueJiang‘',就要考虑delphi中单引号的用法了。

    首先,单引号必须是成对的,运行之后可能会出现’123''之类的情况,但是编译期写成str := '123''肯定是不行的。

    第二,单引号的意义,成对的单引号,是标准的字符串赋值格式。在成对单引号之间的单引号,每两个相当于一个转换之后的单引号字符。还是举个例子说明一下吧。

        str := '''';
        str1 := '123''';
        str2 := '123'+'';
    
    
    -------------------------------------
      显示结果:
    str:' str1:123' str2:123

    去掉指定字符串格式的两个单引号,中间的部分,两个单引号代表一个'字符,加号运算符的效果相当于去掉中间的两个单引号。

    使用变量也是一样:

        str3 := '123'+Name;
        str4 := '123'''+Name;
        str5 := '123'''+Name+'';
        str6 := '123'''+Name+'''';
    
    -------------------------------------
    显示结果:
        str3:123456
        str4:123'456 
        str5:123'456
        str6:123'456'

    通常sql语句中的拼接用的都是最后的一种情况。

    补充一下,双引号,在delphi没有什么特殊的含义,就是普通的字符

      str7 := '"123"';
    
    -------------------------------------
    显示结果:
      str7:"123"

    最后,还有sql语句的换行,换行就相当于是两个字符串的拼接了,需要使用加号连接起来。

      str:='select *  from Table '+
            'where Name='''+Name+'''';
  • 相关阅读:
    剑指offer——最小的K个数和数组中第K大的元素
    Leetcode刷题指南链接整理
    160. Intersection of Two Linked Lists
    100. Same Tree
    92. Reverse Linked List II
    94. Binary Tree Inorder Traversal
    79. Word Search
    78,90,Subsets,46,47,Permutations,39,40 DFS 大合集
    0x16 Tire之最大的异或对
    0x16 Tire
  • 原文地址:https://www.cnblogs.com/jinshizuofei/p/3420581.html
Copyright © 2020-2023  润新知