在delphi中有时对变量用三引号'''+edit1.text+'''而有时用双引号如table1.filter:='name<>''Canada'

  • 主题发起人 主题发起人 wecap
  • 开始时间 开始时间
W

wecap

Unregistered / Unconfirmed
GUEST, unregistred user!
在delphi中有时对变量用三引号'''+edit1.text+'''而有时用双引号如table1.filter:='name<>''Canada''';我想知道在delphi中双引号与三个单引号什么时候用,为什么用,我搞不懂(50分)<br />在delphi中有时对变量用三引号'''+edit1.text+'''而有时用双引号如table1.filter:='name<>''Canada''';我想知道在delphi中双引号与三个单引号什么时候用,为什么用,我搞不懂
 
用这种格式 filter=' ca<>'''+edit1.text+''' and ib='+inttostr(int_b);
还有 filter=' ca<>'''+edit1.text+'''' ; 结尾就用4个,输入字符条件 时,两个''
转换成一个 '
filter=' ca<>''canda''' 表示 ca<>'canda'
filter=' ca<>'''+edit1.text+'''' 表示 把 edit1.text 的内容取出来,然后
加上前 ca<>' 后加上 ' 组成一个字符串 再付值给 filter
 
在两个单引号之间的'',相当于一个'。
例如: S:=''''; 则 S 的内容为 '
请看下句,
SQLstr:='Select * from '+TableName+' WHERE word like '''+S+''''
^^ ^^
假设 TableName:='Table1'; S:='abc';
则 变量SQLstr的内容为:Select * from Table1 WHERE word like 'abc'
下一句
S:='Select * from table1 WHERE word like ''Something'' order by ID'
^^ ^^
则将变量S的内容置为:Select * from table1 WHERE word like 'Something' order by ID
如果还有什么不清楚,自己编个小程序试试就行了
 

如果你实在不能理解,你可以这样记住,四个"'"代表一个"'",多用几个"+"连接就行了。
这种东西,多用就清楚啦。
 
用quotedstr('fff')
会一个字符的两边加上''

给分!
 
一般sql语句都用'''+somestring+''',或'+somestring+'
翻译成sql语句就是somestring,和'somestring'
 
在Delphi中''的是表示他是字符串或者字符,但是很特殊的是在SQL语句中的某个字段的类型
是字符型,那么在SQL语句中就必须要把这个字段的值用单引号''引起来,所以在Delphi中
写SqL语句的话就有了这样的写法SQL.add('select * from table1 where name='''+edtName.text+'''')
其中第一个单引号表示的是一个字符串的开始,而在中间的三个连在一起的'''中的前两个''表示
用来表示SQL语句中引字符字段的前半个',而后面一个是表示Delphi中字符串的结束,
+edtName.text+表示Delphi中用一个固定的字符串连接一个字符变量,接下来的连续的'''',
应该就好理解了吧,和前面一样,第一个'表示Delphi中一个字符串的开始,接下来的两个表是
SQL语句中用来引字符字段的后半个',最后的'是表示Delphi中字符串的结束。
可以这样来解释:如果edtName.text:='make'
'select * from table1 where name='''+edtName.text+''''
字符串select * from table1 where name='连接edtName.text连接字符串'
如果输出的话就是:select * from table1 where name='make'
不知道我说的是不是明白:如果两个''在一个字符串中出现的话表示一个'字符,所以如果
上面的nanme确定的话就应该写成这样:
sql.add('select * from table1 where name=''make''');
 
多人接受答案了。
 
TNND,还没有给分!!

用quotedstr('fff')
会一个字符的两边加上''
 
后退
顶部