delphi - 获取 TField 来自的表的名称

标签 delphi tdataset

我正在使用 TDataSet,其中 CommandText 属性设置为 SQL 查询。我还创建了以下函数,它根据 TDataSet 的字段创建了 SQL 查询的一部分。然而它是不完整的。如您所见,我仍然需要获取 TField 来自的表的名称。我如何实现这一点?

function GetDataSetFieldsMSSQL(Dataset: TDataSet): String;
var
  I, L: Integer;
  TableName: String;
begin
  Result := '';
  L := Dataset.Fields.Count;
  if (L > 0) then
  begin
    TableName := ... // Name of the table for the Dataset.Fields[0] field.
    Result := '[' + TableName + '].[' + Dataset.Fields[0].FieldName + ']';
    I := 1;
    while (I < L) do
    begin
      TableName := ... // Name of the table for the Dataset.Fields[I] field.
      Result := Result + ',[' + TableName + '].[' + Dataset.Fields[I].FieldName + ']';
      Inc(I);
    end;
  end;
end;

最佳答案

您可以使用 DBCommon 单元中的 Delphi 函数 GetTableNameFromQuery(SQL : String):String;。只需在用途上添加 DBCommon。 =)

关于delphi - 获取 TField 来自的表的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11099786/

相关文章:

delphi - Lazarus 中字符串的组件

delphi - 在嵌套方法中访问时,局部变量被闭包捕获破坏

Delphi:在 OnBeforePost 事件中取消 TDataSet.Post

delphi - 如何将 TDataSet.DisableControls 与主/详细数据集一起使用?

c# - 如何提供可以正确定位.NET Dll作为COM提供程序的私有(private)并排 list ?

delphi - 是否有像 TInterfacedObject 这样的非引用计数基类?

delphi - 桌面 Delphi 应用程序是否可以通过 Windows 8 认证(使用 Windows 应用程序认证套件)?

delphi - 避免在 TDataSet 中添加重复的列名

delphi - 我如何获取一个TDataset来存储空字符串而不是null?