我使用这个sql命令来获取列名:
select COLUMN_NAME from
INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'MyTableName'但是我不知道如何使用执行的SQL命令结果!
例如,这种方法不能将列名提取为字符串值,并且我得到了这个错误=不支持操作:
for i := 1 to Qry1.RecordCount do
begin
end;发布于 2010-07-22 17:20:05
下面这样的代码将适用于TADOQuery (不确定对于dbExpress是否有所不同):
Qry1.Open;
while not Qry1.Eof do begin
// do whatever with Qry1.Fields[0].AsString here
Qry1.Next;
end;
Qry1.Close;发布于 2010-07-22 21:13:22
另一种方法是查询表本身以获得一个空数据集,然后遍历该数据集中的字段。
这样的查询将返回没有记录的表结构:
Qry1.SQL.Text := 'SELECT * FROM MyTableName WHERE 1<>1';
Qry1.Open;这样的循环将遍历每个字段
for I := 0 to Qry1.FieldCount-1 do
begin
X := Qry1.Fields[I].FieldName;
// and do whatever you want with X
end;发布于 2010-07-22 17:20:43
据我所知,你无法取回这些报告。
Qry1.First;
while not Qry1.Eof do
begin
X := Qry1.FieldByName('column_name').AsString;
Qry1.Next;
end;这是一段对我来说一直有效的代码
或者,您可以阅读此链接,该链接解释了在调用.RecordCount (http://edn.embarcadero.com/article/28494)时引发异常的原因
总而言之,它建议您的查询区分大小写,您可能应该检查表名(MyTableName)
https://stackoverflow.com/questions/3307251
复制相似问题