为什么类型名称_Recordset 中有下划线?
Why is there an underscore in the type name _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
类型开头的下划线。似乎下划线告诉我这种类型在某种程度上是“内部的”,不能在标准代码中使用。
这种代码有没有更标准的写法?如果不是,为什么会有下划线?
如果在use子句中加上Winapi.ADOInt,可以去掉下划线,使用RecordSet
.
这是因为在 Data.Win.ADODB 中我们有:
_Recordset = Winapi.ADOInt.Recordset;
在Winapi.ADOInt中我们有:
Recordset = _Recordset;
_Recordset = interface(Recordset21)
我有查询数据库的代码,如下所示:
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
类型开头的下划线。似乎下划线告诉我这种类型在某种程度上是“内部的”,不能在标准代码中使用。
这种代码有没有更标准的写法?如果不是,为什么会有下划线?
如果在use子句中加上Winapi.ADOInt,可以去掉下划线,使用RecordSet
.
这是因为在 Data.Win.ADODB 中我们有:
_Recordset = Winapi.ADOInt.Recordset;
在Winapi.ADOInt中我们有:
Recordset = _Recordset;
_Recordset = interface(Recordset21)