query.sql.text := 'select name , money * ' + inttostr(aa) + ' from record';
如果aa是数值,则 query.sql.text := 'select name , money * ' + floattostr(aa) + ' from record'
aa:=trim(edit1.text); query.sql.text:='select name,money * ' + aa + ' from record';
哦,问题解决了,你们太棒了,总结一下,就是,变量 在显示列的部分可以用 '+aa+' 在子句中 用 '''+aa+''' 当然 aa 是字符变量 ,对吗
可以使用 Select * From Atable where AField = :aa 作为参数,至于加法是用''''括起来是最基本的。
总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法以 及SQL语句中日期格式的表示(#)、('') 在Delphi中进行字符变量连接相加时单引号用('''),又引号用('''')表示 首先定义变量 var AnInt:integer=123;//为了方便在此都给它们赋初值。虽然可能在引赋初值在某些情况下不对 AnIntStr:string='456'; AStr:string='abc'; AFieldName: string='字符型编号'; ATableName: string='YourTable'; ADate:Tdatetime=now; Adoquery1:tadoquery; 1,Delphi语句 adoquery1.sql.text:= 'select 字符型编号 from YourTable where 字符型编号='abc' and 整型编号=123'; 等价于 adoquery1.sql.text:= 'select '+AFieldName+' from '+ATableName+' where '+AFieldName +'='''+AStr+''' and 整型编号='+AnIntStr; 也等价于 adoquery1.sql.text:= 'select '+AFieldName+' from '+ATableName+' where '+AFieldName +'='+QuotedStr(AStr)+' and 整型编号='+Inttostr(AnInt); 传到数据库服务器为: select 字符型编号 from YourTable where 字符型编号='abc' and 整型编号=123
sql server 中SQL指令中包括动态参数,在D环境下是这样处理的:在SQL中使用“:”号来表示一个动态参数;如下例: with adoquery do begin close; sql.clear; sql.add('select count(*) from tbl_person where person_age>=:param_age'); parameters.parambyname('param_age').value:=25;//---这句是为动态参数指定参数值; prepared; open; end;
query.sql.text := 'select name , money * ' + floattostr(aa) + ' from record'
query.sql.text:='select name,money * ' + aa + ' from record';
在子句中 用 '''+aa+''' 当然 aa 是字符变量 ,对吗
及SQL语句中日期格式的表示(#)、('')
在Delphi中进行字符变量连接相加时单引号用('''),又引号用('''')表示
首先定义变量
var
AnInt:integer=123;//为了方便在此都给它们赋初值。虽然可能在引赋初值在某些情况下不对
AnIntStr:string='456';
AStr:string='abc';
AFieldName: string='字符型编号';
ATableName: string='YourTable';
ADate:Tdatetime=now;
Adoquery1:tadoquery;
1,Delphi语句
adoquery1.sql.text:=
'select 字符型编号 from YourTable where 字符型编号='abc' and 整型编号=123';
等价于
adoquery1.sql.text:=
'select '+AFieldName+' from '+ATableName+' where '+AFieldName
+'='''+AStr+''' and 整型编号='+AnIntStr;
也等价于
adoquery1.sql.text:=
'select '+AFieldName+' from '+ATableName+' where '+AFieldName
+'='+QuotedStr(AStr)+' and 整型编号='+Inttostr(AnInt);
传到数据库服务器为:
select 字符型编号 from YourTable where 字符型编号='abc' and 整型编号=123
with adoquery do
begin
close;
sql.clear;
sql.add('select count(*) from tbl_person where person_age>=:param_age');
parameters.parambyname('param_age').value:=25;//---这句是为动态参数指定参数值;
prepared;
open;
end;