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

关于子查询语句的问题!!! 找库存管理

库存管理软件版1楼: 我用的是SQL2000数据库,DEHILP6.0,作了一个子查询:

AQ_XzQuery.Active:=false;
AQ_XzQuery.sql.Clear;
AQ_XzQuery.SQL.add(''select * From ywmx where jgbm in (select mc from jggl where substring(dm,1,6)=:a) and zt=:b'');
AQ_XzQuery.Parameters[0].Value:=''431201'';
AQ_XzQuery.Parameters[1].Value:=''正常'';
AQ_XzQuery.Active:=True;
AQ_XzQuery.open;

为何在表中查询不到数据,我用:select * from ywmx where jgbm in (select mc from jggl where substring(dm,1,6)=''431201'') and zt=''正常''

在SQL2000的查询分析器中能查询到记录。

请高手指点迷津!!!

2楼: ADOQUERY中 SQL语句引号的用法,按以下:
''''''+string1+'''''' //字符型变量
''+float1+'' //数值型变量
''+field1+'' //字段常量
''''const1'''' //常量

尽量不要用动态赋值,否则可能出现莫名其妙的错误 如管家婆软件价格

3楼: 另外


AQ_XzQuery.Active:=True;
AQ_XzQuery.open;
去掉一句

4楼: 还是不行!!!

5楼: 你把修改后的帖出来

6楼: 修改后的:
AQ_XzQuery.Active:=false;
AQ_XzQuery.sql.Clear;
AQ_XzQuery.SQL.add(''select * From ywmx where jgbm in (select mc from jggl where substring(dm,1,6)=:a) and zt=:b'');
AQ_XzQuery.Parameters[0].Value:=''431201'';
AQ_XzQuery.Parameters[1].Value:=''正常'';
AQ_XzQuery.Active:=True;

库存管理软件版7楼: 把 :变量名 动态赋值改成上面我说的那种方式试下

8楼: 那种方式我不是很习惯,你能说明白点吗?

9楼: 比如查询edit1.text的SQL
SQL.ADD(''Select * from 表名 where 字段名=''''''+EDIT2.TEXT+'''''''');

简单说,就是按照你写SQL语句的习惯,然后将内容用我给的标准替换

10楼: 那我再试试,马上回来!!!

11楼: 怎么样了
如果不行,把修改后代码贴上来

12楼: AA02:=''431201'';
AA03:=''正常'';
AQ_XzQuery.Active:=false;
AQ_XzQuery.sql.Clear;
AQ_XzQuery.SQL.add(''select * From ywmx where jgbm in (select mc from jggl where substring(dm,1,6)=''''''+AA02+'''''') and zt=''''''+AA03+'''''');


AQ_XzQuery.Active:=True;
连编译都通不过了,提示:
[Error] ZH_JgQuery.pas(194): Unterminated string
[Error] ZH_JgQuery.pas(200): '')'' expected but identifier ''AQ_XzQuery'' found
[Fatal Error] ZhongHuaBaoXian.dpr(26): Could not compile used unit ''ZH_JgQuery.pas'' 如库存管理

13楼: AA03+''''''''
这里多加上个引号,因为这是句尾
快啊

库存管理软件版14楼: 谢谢你!!!

15楼: 不客气[:)]
记得以后写语句要按我给你的规则写啊