我有一个使用 ADO 连接在 SQL 数据库上执行查询的函数,它只是为数据库条目提供单个结果,该数据库条目只能与一种SELECT
查询类型匹配(即从 ID 中获取 x 值45,其中只有一个 ID 45 条目)。
该函数工作正常,直到我遇到一个不返回结果的查询。查询只是挂起,应用程序无法继续。这是一个示例查询字符串:
'SELECT Cost FROM MaterialCost ' +
'WHERE MaterialType = ''' + 'MS' +
''' AND Thickness = ''' + '0.250' + '''';
同样,这个确切的字符串可以正常工作,直到我可能查询我之前知道的不存在的东西,它应该返回 null 或空字符串。这是功能:
function SelectOneQuery(AQueryString : String; AADOConnectionString : String) : String;
var
ADOQuery: TADOQuery;
begin
//Create empty ADO Query, then connect to connection string
ADOQuery := TADOQuery.Create(nil);
ADOQuery.ConnectionString:=AADOConnectionString;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(AQueryString);
ADOQuery.ExecSQL;
ADOQuery.Open;
//Set first query result and return first result
ADOQuery.First;
if(ADOQuery.Fields.Count > 0) then begin
result:=ADOQuery.Fields[0].Value;
end
else begin
result := '';
end;
end;
我添加了字段计数,但我不确定这是否有帮助。基本上,如果没有结果,我想要result := ''