pass:=Edit2.Text;
//使用ADOQuery1组件时要养成好的习惯,先将其关闭,
//将原来的SQL语句清除后再添加新的SQL语句
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select 用户编号 from 用户清单 where 姓名='''+user+'''and 密码='''+pass+'''';
9 个解决方案
#1
你自己试试不就知道了
...
var
s: string;
begin
s := '''sss''';
self.caption := s;
...
...
var
s: string;
begin
s := '''sss''';
self.caption := s;
...
#2
在delphi的字符串中''相当于C语言中的转义符\',用来在字符串中表示一个'号
由于delphi中的字符串是用两个'号括起来表示,如s:='abcd';表示字符串 abcd
那么,如果字符串如果是 ab'cd ,就应该这样写s:='ab''cd';其中''表示一个'号
理解了这个,再看你那句代码,就应该明白了。
由于delphi中的字符串是用两个'号括起来表示,如s:='abcd';表示字符串 abcd
那么,如果字符串如果是 ab'cd ,就应该这样写s:='ab''cd';其中''表示一个'号
理解了这个,再看你那句代码,就应该明白了。
#3
这么写的话代码的可读性更高一些
ADOQuery1.SQL.Text:='select 用户编号 from 用户清单 where 姓名='+QuotedStr(user)+'and 密码='+QuotedStr(pass);
ADOQuery1.SQL.Text:='select 用户编号 from 用户清单 where 姓名='+QuotedStr(user)+'and 密码='+QuotedStr(pass);
#4
D中符串单引号都要成对出现,4个'中最后一个'是和:='对应的;
比如SQL语句最终要像这样:
select * ftom t where f='A'
放在SQL.Text,是字符串,所以2边要加上单引号,就变成这样:
SQL.Text:='select * ftom t where f='A'';
但在D中,单引号是2个变成一个,所以A的2边要再加上引号,正确结果就是这样了:
SQL.Text:='select * ftom t where f=''A''';
如果A是变量,变量和字符串连接是这样:'字符串'+A+'字符串',把中间的A替换成'+A+'
所以上面的语句就变成这样:
SQL.Text:='select * ftom t where f='''+A+'''';
但如果变量A中也有引号,那还会出错的,所以最好Quotedstr()这个函数,它会帮你处理单引号,即写成这样:
SQL.Text:='select * ftom t where f='+Quotedstr(A);
好好理解吧
比如SQL语句最终要像这样:
select * ftom t where f='A'
放在SQL.Text,是字符串,所以2边要加上单引号,就变成这样:
SQL.Text:='select * ftom t where f='A'';
但在D中,单引号是2个变成一个,所以A的2边要再加上引号,正确结果就是这样了:
SQL.Text:='select * ftom t where f=''A''';
如果A是变量,变量和字符串连接是这样:'字符串'+A+'字符串',把中间的A替换成'+A+'
所以上面的语句就变成这样:
SQL.Text:='select * ftom t where f='''+A+'''';
但如果变量A中也有引号,那还会出错的,所以最好Quotedstr()这个函数,它会帮你处理单引号,即写成这样:
SQL.Text:='select * ftom t where f='+Quotedstr(A);
好好理解吧
#5
代表SQL中的字符Field='A'
#6
最简单的方法,ShowMessage一下
#7
楼主是刚入门学习DELPHI编程的吧
你还是用这个 QuotedStr() 来处理“引号”的问题吧
这位仁兄 liuhengwinner 说的很详细的
#8
三个是和前面或者后面的'匹配的
四个就是代表一个'
四个就是代表一个'
#1
你自己试试不就知道了
...
var
s: string;
begin
s := '''sss''';
self.caption := s;
...
...
var
s: string;
begin
s := '''sss''';
self.caption := s;
...
#2
在delphi的字符串中''相当于C语言中的转义符\',用来在字符串中表示一个'号
由于delphi中的字符串是用两个'号括起来表示,如s:='abcd';表示字符串 abcd
那么,如果字符串如果是 ab'cd ,就应该这样写s:='ab''cd';其中''表示一个'号
理解了这个,再看你那句代码,就应该明白了。
由于delphi中的字符串是用两个'号括起来表示,如s:='abcd';表示字符串 abcd
那么,如果字符串如果是 ab'cd ,就应该这样写s:='ab''cd';其中''表示一个'号
理解了这个,再看你那句代码,就应该明白了。
#3
这么写的话代码的可读性更高一些
ADOQuery1.SQL.Text:='select 用户编号 from 用户清单 where 姓名='+QuotedStr(user)+'and 密码='+QuotedStr(pass);
ADOQuery1.SQL.Text:='select 用户编号 from 用户清单 where 姓名='+QuotedStr(user)+'and 密码='+QuotedStr(pass);
#4
D中符串单引号都要成对出现,4个'中最后一个'是和:='对应的;
比如SQL语句最终要像这样:
select * ftom t where f='A'
放在SQL.Text,是字符串,所以2边要加上单引号,就变成这样:
SQL.Text:='select * ftom t where f='A'';
但在D中,单引号是2个变成一个,所以A的2边要再加上引号,正确结果就是这样了:
SQL.Text:='select * ftom t where f=''A''';
如果A是变量,变量和字符串连接是这样:'字符串'+A+'字符串',把中间的A替换成'+A+'
所以上面的语句就变成这样:
SQL.Text:='select * ftom t where f='''+A+'''';
但如果变量A中也有引号,那还会出错的,所以最好Quotedstr()这个函数,它会帮你处理单引号,即写成这样:
SQL.Text:='select * ftom t where f='+Quotedstr(A);
好好理解吧
比如SQL语句最终要像这样:
select * ftom t where f='A'
放在SQL.Text,是字符串,所以2边要加上单引号,就变成这样:
SQL.Text:='select * ftom t where f='A'';
但在D中,单引号是2个变成一个,所以A的2边要再加上引号,正确结果就是这样了:
SQL.Text:='select * ftom t where f=''A''';
如果A是变量,变量和字符串连接是这样:'字符串'+A+'字符串',把中间的A替换成'+A+'
所以上面的语句就变成这样:
SQL.Text:='select * ftom t where f='''+A+'''';
但如果变量A中也有引号,那还会出错的,所以最好Quotedstr()这个函数,它会帮你处理单引号,即写成这样:
SQL.Text:='select * ftom t where f='+Quotedstr(A);
好好理解吧
#5
代表SQL中的字符Field='A'
#6
最简单的方法,ShowMessage一下
#7
楼主是刚入门学习DELPHI编程的吧
你还是用这个 QuotedStr() 来处理“引号”的问题吧
这位仁兄 liuhengwinner 说的很详细的
#8
三个是和前面或者后面的'匹配的
四个就是代表一个'
四个就是代表一个'