在设计界面SQL.TEXT:=select * from TB_ConLoad_Con
where CODE_VESSEL = :sCODE_VESSEL1
and VOYAGE = :sVOYAGE1
and CTN_NO in (
select CTN_NO from TB_ConLoad_Rel
WHERE CODE_VESSEL = :sCODE_VESSEL
and VOYAGE = :sVOYAGE
and BLNO = :sBLNO
)
其中5个参数,在程序中赋值,而且追踪都是正确的,但是结果没有返回数据
在调试过程中,我把sql.text的赋值语句写到pas文件中,结果是正确的,代码如下:
if aq_con.Active then aq_con.Close;
aq_con.SQL.Text:='select * from TB_ConLoad_Con where CODE_VESSEL ='+''''+CODE_VESSEL+''''+'and VOYAGE ='+''''+VOYAGE +''''+'and CTN_NO in (select CTN_NO from TB_ConLoad_Rel WHERE CODE_VESSEL ='+''''+CODE_VESSEL +''''+'and VOYAGE ='+''''+VOYAGE+''''+'and BLNO ='+''''+BLNO+''''+')';aq_con.Open;
我把sql换成参数时又是没有数据,代码如下:
aq_con.Parameters.ParamByName('sCODE_VESSEL1').Value:=self.code_Vessel;
aq_con.Parameters.ParamByName('sVOYAGE1').Value:=self.voyage;
aq_con.Parameters.ParamByName('sCODE_VESSEL').Value:=self.code_Vessel;
aq_con.Parameters.ParamByName('sVOYAGE').Value:=self.voyage;
aq_con.Parameters.ParamByName('sBLNO').Value:=self.blno;
请问这是什么问题?
哪个大哥知道怎么追踪adoquery在open前和数据库实际操作的sql语句,不是显示参数的那种,比如说
'select * from a where b='123''其中b是参数
where CODE_VESSEL = :sCODE_VESSEL1
and VOYAGE = :sVOYAGE1
and CTN_NO in (
select CTN_NO from TB_ConLoad_Rel
WHERE CODE_VESSEL = :sCODE_VESSEL
and VOYAGE = :sVOYAGE
and BLNO = :sBLNO
)
其中5个参数,在程序中赋值,而且追踪都是正确的,但是结果没有返回数据
在调试过程中,我把sql.text的赋值语句写到pas文件中,结果是正确的,代码如下:
if aq_con.Active then aq_con.Close;
aq_con.SQL.Text:='select * from TB_ConLoad_Con where CODE_VESSEL ='+''''+CODE_VESSEL+''''+'and VOYAGE ='+''''+VOYAGE +''''+'and CTN_NO in (select CTN_NO from TB_ConLoad_Rel WHERE CODE_VESSEL ='+''''+CODE_VESSEL +''''+'and VOYAGE ='+''''+VOYAGE+''''+'and BLNO ='+''''+BLNO+''''+')';aq_con.Open;
我把sql换成参数时又是没有数据,代码如下:
aq_con.Parameters.ParamByName('sCODE_VESSEL1').Value:=self.code_Vessel;
aq_con.Parameters.ParamByName('sVOYAGE1').Value:=self.voyage;
aq_con.Parameters.ParamByName('sCODE_VESSEL').Value:=self.code_Vessel;
aq_con.Parameters.ParamByName('sVOYAGE').Value:=self.voyage;
aq_con.Parameters.ParamByName('sBLNO').Value:=self.blno;
请问这是什么问题?
哪个大哥知道怎么追踪adoquery在open前和数据库实际操作的sql语句,不是显示参数的那种,比如说
'select * from a where b='123''其中b是参数
解决方案 »
- delphi中对文本加密的方法是什么?
- 如何调用默人的邮件程序发送邮件带上附件还要
- delphi2005--indy10中邮件加载附件与以前不同了!求助!!!
- 超级郁闷的问题!!真的超级郁闷!!现在我用OLEVariant接收了一个二进制值。然后把这个OLEVariant转换成Stream,然后保存成文件。但是在
- 一个很奇怪的问题?在98、XP下能运行,但在2000下不能运行??
- 为什么我的query组件出现这样的错误提示
- 如果要学习网络编程,应该看些什么书及达到什么目的?
- 谁能把下面代码翻译成Delphi代码,谢谢
- 紧急求助!!Delphi6.0的序列号?
- 有谁会多线程编程,请帮忙
- 怎么拷贝一个表里的一条记录到另外一个表里 有这样的方法吗
- 一个简单的图片变换的问题。等于是送分了
if aq_con.Active then aq_con.Close;
aq_con.SQL.Text:='select * from TB_ConLoad_Con where CODE_VESSEL ='+''''+CODE_VESSEL+''''+'and VOYAGE ='+''''+VOYAGE +''''+'and CTN_NO in (select CTN_NO from TB_ConLoad_Rel WHERE CODE_VESSEL ='+''''+CODE_VESSEL +''''+'and VOYAGE ='+''''+VOYAGE+''''+'and BLNO ='+''''+BLNO+''''+')';aq_con.Open;
但是用参数就错了,首先可以排除掉sql语句没有错误,参数的值也没有错误,我的意思是:在用参数的过程中,是不是delphi在把参数组合成sql语句的时候出了问题,有没有办法追踪到adoquery在open之前于数据库操作的sql语句?