TADOQuery不返回任何记录

时间:2012-10-25 11:15:07

标签: sql oracle delphi delphi-7 ado

我正在使用Delphi 7,我有一个名为Table_1的表,其中有两个字段,IMageCode Varchar(50)ActImage [Blob in Oracle, VarBinary(Max) in SQL Server],它有四个记录,包括图像和相应的图像代码。< / p>

当我在Oracle中编写如下SQL时:

Select * from Table_1 where Upper(ImageCode) ='SUNSET'

TADOQuery不会返回任何记录,当我检查TADOQuery.RecordCount它显示0时,当我尝试TADOQuery.IsEmpty时会显示True。然后,当我在Oracle编辑器中执行时,它会按预期返回一条记录,但在delphi中,TADOQuery不会返回任何记录。

但是当我为oracle数据库编写以下简单的sql时,它会使用TADOQuery返回所有四条记录:

Select * from Table_1

我在SQL服务器数据库中没有发现任何问题,如上面使用TADOQuery所讨论的那样。

ADOConnection.Connected := False; 
ADOConnection.LoginPrompt := False; 
ADOConnection.ConnectionString := <Connection String>; 
ADOConnection.Connected := True; 
ADOQuery1.Connection := ADOConnection; 
with ADOQuery1 do begin 
  Active := False; 
  SQL.Clear; 
  //SqL.Add('Select * from Table_1 where Upper(ImageCode) = ' +    QuotedStr(Uppercase(Trim(edtImageCode.Text)))); 
  SqL.Add('Select * from Table_1 where Upper(ImageCode) = ''SUNSET'''); 
  Active := True; 
end; 

有人可以把重点放在可能出现问题的地方吗?

1 个答案:

答案 0 :(得分:0)

问题已解决,我尝试将“ImageCode”作为主键,现在TADOQuery返回peroper记录计数,即预期的1。以前没有主键,但是,如果有主键,TADOQuery应该返回所需的数据集。

有什么猜测吗?