在sql数据表中如何根据第几列找到其字段名
在sql数据表中怎么根据第几列找到其字段名
我用循环对一个表操作,我想从第一条遍历到最后一条,然后循环遍历每一条记录的每一字段,当遇到我想要的字段时,我想根据其第几列提出其字段名。请赐教,谢谢。
------解决方案--------------------
不知道楼主想要做什么,我把我的思路和大家分享一下:
检索字段,然后根据字段搜索记录。找到后返回字段名。
function getNeedField(value:string):string;
var
AQuery:TADOQuery;
ASQL:string;
i:integer;
begin
AQuery:=TADOQuery.create(nil);
AQuery:=DataModual1.ADOConnection1;
with AQuery do
begin
ASQL:= 'select count(1) n from yourTable where '+Fields[i].FieldName+ '= '+QuotedStr(value);
for i:=0 to AQuery.FieldCount -1 do
begin
Close;
sql.clear;
sql.text:=ASQL;
open;
if fieldbyname( 'n ').asinteger> 0 then
begin
result:=Fields[i].FieldName;
break;
end
else result:= ' ';
end;
end;
AQuery.free;
AQuery:=nil;
end;
//没有测试,你自己调试一下。
------解决方案--------------------
不知道楼主是怎么连接数据库的,如果是ADO的话为什么不用这个呢?
ADOConnection1.GetFieldNames(TableName, FieldList);
我用循环对一个表操作,我想从第一条遍历到最后一条,然后循环遍历每一条记录的每一字段,当遇到我想要的字段时,我想根据其第几列提出其字段名。请赐教,谢谢。
------解决方案--------------------
不知道楼主想要做什么,我把我的思路和大家分享一下:
检索字段,然后根据字段搜索记录。找到后返回字段名。
function getNeedField(value:string):string;
var
AQuery:TADOQuery;
ASQL:string;
i:integer;
begin
AQuery:=TADOQuery.create(nil);
AQuery:=DataModual1.ADOConnection1;
with AQuery do
begin
ASQL:= 'select count(1) n from yourTable where '+Fields[i].FieldName+ '= '+QuotedStr(value);
for i:=0 to AQuery.FieldCount -1 do
begin
Close;
sql.clear;
sql.text:=ASQL;
open;
if fieldbyname( 'n ').asinteger> 0 then
begin
result:=Fields[i].FieldName;
break;
end
else result:= ' ';
end;
end;
AQuery.free;
AQuery:=nil;
end;
//没有测试,你自己调试一下。
------解决方案--------------------
不知道楼主是怎么连接数据库的,如果是ADO的话为什么不用这个呢?
ADOConnection1.GetFieldNames(TableName, FieldList);