2

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

当我在 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

正如上面使用 TADOQuery 所讨论的,我在 SQL Server 数据库中没有发现任何问题。

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; 

有人能把重点放在可能是什么问题上吗?

4

1 回答 1

0

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

有什么猜测吗?

于 2012-10-26T08:08:23.537 回答