为什么类型名_Recordset下划线?

乔尔·范

我有查询数据库的代码,如下所示:

uses Data.DB, Data.Win.ADODB;

// ...

var
  cmd: TAdoCommand;
  r: _Recordset;
  firstName: string;

begin
  cmd := TAdoCommand.Create(nil);
  try
    cmd.ConnectionString := 'Server=dbServer;Database=master';
    cmd.CommandText := 'select FirstName from customers where id=123';
    r := cmd.Execute;
    firstName := '';
    if not r.EOF then firstName := r.Fields.Item['FirstName'].Value
  finally
    cmd.Free
  end

  // ...
end

这行得通,但我想知道它是否不是理想的编写方式,因为该_Recordset类型的开头是下划线下划线似乎告诉我,此类型在某种程度上是“内部的”,并且不能在标准代码中使用。

有没有更标准的方式来编写这种代码?如果没有,为什么下划线在那里?

fpiette

如果将Winapi.ADOInt添加到use子句,则可以删除下划线并使用RecordSet

这是因为在Data.Win.ADODB中,我们具有:

 _Recordset = Winapi.ADOInt.Recordset;

在Winapi.ADOInt中,我们有:

Recordset = _Recordset;
_Recordset = interface(Recordset21)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在ObservableList下划线?

为什么对Unit和()类型的_(下划线)进行不同的处理?

为什么下划线比连字符的下划线更好?

下划线作为Java中的变量名。为什么?

为什么Razor _layout.cshtml的文件名中带有下划线?

为什么路径名中的下划线会使Perl脚本挂起?

_t(下划线-t)后面的类型表示什么?

下划线表示什么?

为什么“IsPost”和“AsPost”下划线为红色?

为什么我的javascript getter / setter要求下划线?

为什么下划线不能与'\ W'匹配?

为什么Java-regex匹配下划线?

为什么不能添加黑线下划线字符?

为什么我需要快速下划线?

为什么在输出中忽略_(下划线)?

为什么存在下划线前缀变量?

为什么此JavaScript Regex与下划线匹配?

为什么下划线不起作用?

为什么下划线放在\ w下?

为什么命名为“下划线”或“ lodash”?

为什么下划线(_)不被视为非单词字符?

为什么括号“()”在 CSS 中没有下划线?

文字下划线检测会导致错误-为什么?

为什么在 c 中为结构使用下划线?

为什么我的预赛匹配阻止下划线?(PHP)

为什么在创建类型类实例时不能在类型变量下加下划线(忽略)?

为什么在`float.is_integer`中加下划线,而在`str.isnumeric`中不加下划线?

为什么BEM经常使用两个下划线而不是一个下划线?

为什么在PHP的类中带下划线的变量可以在不带下划线的情况下读取?