DELPHI ADOQuery - 检测是否返回数据集

时间:2011-04-18 16:30:48

标签: sql delphi ado tadoquery

我正在努力执行SQL查询的正确程序。

基本上,我有文本字段,用户可以输入SQL代码,程序将执行它。 不幸的是,我不知道是否会返回数据集,所以我不知道要使用哪个函数:ADOQuery.Open或ADOQuery.ExecSQL

但如果有结果返回,我需要进行一些计算。

有没有办法预测查询是否会返回某些结果,或者它是否只是UPDATE ...如何处理这种情况?

3 个答案:

答案 0 :(得分:4)

忘掉TADOQuery,TADOTable,TADOStoredProc。它们是旨在简化使用使用其对应的BDE的应用程序移植的组件。在您的情况下,您可以使用TADOCommand,它的Execute()方法将在需要时返回一个recorset,您可以通过TADODataset为其RecordSet属性分配Execute()返回值来访问它。

答案 1 :(得分:0)

如果没有完全解析和分析查询文本,无法确定。

但是你可以(在你的情况下应该)每次都使用ADOQuery.Open ,就像没有返回命令一样,一个空的结果集将是返回 - 您可以通过TADOQuery.Bof and TADOQuery.Eof或更低级别的属性TADOQuery.Recordset轻松检测到。

答案 2 :(得分:0)

最好的方法是在执行之前分析查询。 您将在此open source software

中找到“如何”的示例