你将query1.sql.add('select * from huz where status=''有效'' and tstatus=:tstatus');
改为
query1.sql.add('select * from huz where status='+''''+'有效'+''''+' and tstatus=:tstatus');
试试
改为
query1.sql.add('select * from huz where status='+''''+'有效'+''''+' and tstatus=:tstatus');
试试
解决方案 »
- 网上有下载的P2p软件源码吗?我下了一个AresRegular但是里面缺好多文件。
- 关于Flash
- 记录中一个成员是类,能否让它自动Create?
- 散分:差一分升级的不妨进来看看
- 有关异常捕获的问题
- 请教高手:在ADOConnection里,Provider属性你们都怎么选啊?
- 唉,这个SYSUINT!(做过MIDAS的兄弟请进)
- 高分求教Delphi问题(+100)
- 牛虻紧急呼叫老鱼,牛虻紧急呼叫老鱼,牛虻紧急呼叫老鱼。//牛虻
- 急!DELPHI4程序升级到DELPHI5的问题!
- 请用户名为http1(http1),DepYuka()和dana(dana)和我联系好吗?
- 送分题,SQL语句请教?
query1.sql.add('select * from huz where status=''有效''
and tstatus='''+edit1.text+'''');
有问题
你定义一个变量让它等于edit1.text
然后 .asstring:=strxxx
sqlstr:='select * from huz where status=''有效'' and tstatus=''%s'''
sqlstr:=format(sqlstr,[edit1.text])
if 字段1_edit.text<> '' then
begin
条件1:=' 字段名1' + '=' + '''' + 字段1_edit.text+ '''';
sign:=1;
end
else
begin
条件1:= '';
sign:=0;
end;
if (字段2_edit.text<> '') and (sign=1) then //收货单位
条件2:=' and 字段2' +'=' + ''''+ 字段2_edit.text+ ''''
else if (edt_input_unit.text <> '') and (sign=0) then
begin
条件2:=' 字段2' +'=' + '''' +字段2_edit.text+ '''';
sign:=1;
end
else
条件2:='';
if (字段3_edit.text<> '') and (sign=1) then //收货单位
条件3:=' and 字段3' +'=' + ''''+ 字段3_edit.text+ ''''
else if (edt_input_unit.text <> '') and (sign=0) then
begin
条件3:=' 字段3' +'=' + '''' +字段3_edit.text+ '''';
sign:=1;
end
else
条件3:='';
exp1:=条件1+条件2+条件3;
更多查询同理;
此查询可以是任意条件的组合
query1.sql.clear
query1.sql.add('select * from huz where status=''有效''
and tstatus='''+edit1.text+'''');
query1.sql.prapare;
query1.sql.open
query1.parambyname('YX').asstring:=STR;
query1.parambyname('tstatus').asstring:=edit1.text;
1.先生成SQL语句,再赋值给Query执行。
如:
var
strSQL;
begin
strSQL := 'select * from huz where status = ''有效'' and tstatus = ';
strSQL := strSQL + #39 + Edit1.Text + #39;
Query1.SQL.Text := strSQL;
Query1.Open ;
end;
2.给Query赋值代参数的SQL语句,然后再赋值这个参数,就是你的那种方法end;