当前位置:主页>仓库管理软件> 列表

Tquery的问题?菜鸟问题

销售管理软件版1楼: query.SQL.Add(''select * from Operator where UserName=:UserName
and UserPwd=:UserPwd'');
请问一下UserName=:UserName 前面的UserName 是指表中的字段名称吗?后面的UserName是指参数吗? 到底是谁赋谁啊?
Query.Parameters.ParamByName(''UserName'').Value := cmbUsername.Text ;
Query.Parameters.ParamByName(''userpwd'').Value := edtpassword.Text ;

ParamByName(''UserName'')这个肯定是表中的字段名称.他是指的UserName=:UserName 中前者还是后者?

2楼: query.SQL.Add(''select * from Operator '');
query.SQL.Add('' where UserName= :pUserName ''); //这样你就明白了
query.SQL.Add('' and UserPwd=:pUserPwd'');
Query.ParamByName(''pUserName'').Value := cmbUsername.Text ;
Query.ParamByName(''puserpwd'').Value := edtpassword.Text ; 如管家婆软件教程

3楼: 前一个UserName是字段名,而后面的(:UserName)是参数名.
不是赋值,而是找出字段UserName等于参数(:UserName)的记录,


Query.Parameters.ParamByName(''UserName'').Value := cmbUsername.Text ;
上面的这个UserName当然是参数名了,赋值后它的意思是这样的:
select * from Operator where UserName = embUsreName.Text and .....
当然不能象上面这样写.[:)]

其实你这样写就明白了:
select * from Operator where UserName = :sName......
Query.ParamByName(''sName'').Value := cmbUsername.Text ;

4楼: query.SQL.Add('' where UserName= :pUserName ''); 小弟不懂,是不是UserName= :pUserName 必须相同,前者指什么,后者指什么?

5楼: 前者是字段名,后者是参数名(和字段名无关,比如可以是 :p1, :px)

6楼: 多人接受答案了。

销售管理软件版7楼: :变量名
:pUserName, :pUserpwd只是代表一个变量.如果值分别为''guest'',''1234'',那么语句
select * from Operator where UserName=:pUserName and UserPwd=:pUserPwd
实际发给SQL Server时是
select * from Operator where UserName=''guest'' and UserPwd=''1234''

我比较喜欢这样的方法
query.SQL.Add(format(''select * from Operator where UserName=%s
and UserPwd=%s'',[cmbUsername.Text, edtpassword.Text]));