我正在使用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;
有人可以把重点放在可能出现问题的地方吗?
答案 0 :(得分:0)
问题已解决,我尝试将“ImageCode”作为主键,现在TADOQuery返回peroper记录计数,即预期的1。以前没有主键,但是,如果有主键,TADOQuery应该返回所需的数据集。
有什么猜测吗?