在TSQLQuery中使用

use*_*257 4 delphi sqlite delphi-xe4

我一直在评估Delphi XE4(针对win32编译,但最终平台将是iOS),我需要创建SQLite数据库(没问题)并进行一些查询.这是我想要使用的一个查询:

  select id as _id, name, note as description from notes
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

  q := TSQLQuery.Create(nil);
  try
    q.SQLConnection := MainForm.sqlite1;
    q.SQL.Text := sql;
    q.Open;
  finally
    q.Free;
  end;
Run Code Online (Sandbox Code Playgroud)

问题是查询返回原始字段名称(id,name,note),而不是我使用的名称(_id,name,description).

  q.Fields[0].FieldName = 'id' //it should be _id
  q.Fields[2].FieldName = 'note' //it should be description
Run Code Online (Sandbox Code Playgroud)

这会产生各种各样的问题.运用

  count(*) as myfield
Run Code Online (Sandbox Code Playgroud)

回报

q.Fields[0].FieldName = Column0 //it should be myfield
Run Code Online (Sandbox Code Playgroud)

这是不可接受的.

有人有同样的问题吗?

RRU*_*RUZ 5

为了获得字段的正确别名,必须使用值将ColumnMetaDataSupportedparam 添加到TSQLConnection组件的Params属性中False.

在此输入图像描述