在TSQLQuery中使用

时间:2013-06-04 09:13:41

标签: sqlite delphi delphi-xe4

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

  select id as _id, name, note as description from notes

这是我的代码:

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

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

  q.Fields[0].FieldName = 'id' //it should be _id
  q.Fields[2].FieldName = 'note' //it should be description

这会产生各种各样的问题。使用

  count(*) as myfield

返回

q.Fields[0].FieldName = Column0 //it should be myfield

这是不可接受的。

有人有同样的问题吗?

1 个答案:

答案 0 :(得分:5)

要获取字段的正确别名,您必须将ColumnMetaDataSupported参数添加到TSQLConnection组件的Params属性中,并带有False值。

enter image description here