zoukankan      html  css  js  c++  java
  • 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+'''';
  • 相关阅读:
    Axis2、Axis1 以及其他接口的调用方式
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
    百度、谷歌、雅虎网站地图提交地址
    MyEclipse 死掉,JVM terminated. Exit code=1073807364
    有关Servlet的面试题
    SpringMVC文件的上传与下载实现
    Java API 操作HBase Shell
    Java内存模型与线程(二)线程的实现和线程的调度
    Java内存模型与线程(一)
    ubuntu环境下搭建Hadoop集群中必须需要注意的问题
  • 原文地址:https://www.cnblogs.com/jinshizuofei/p/3420581.html
Copyright © 2011-2022 走看看