for i:=1 to table.fieldcount-1 do showmessage(table.fields[i].fieldname);
sqlserver 2000。不要读系统表。
//*********************************************** //****查找一个表的所有列 //****结果返回TStringList //*********************************************** function TdataRelationPub.GetAllCol(sTableName:string):TStringList; var i:integer; begin with TADOTable.Create(nil)do try Connection := SystemDM.DbMain; TableName := sTableName; Open; Result:=TStringList.Create; GetFieldNames(Result); free; except on E: Exception do begin ShowMessage(E.Message); Free; end; end;end; 如果不想连接表的话,可以使用系统表。
大家没理解我的意思,就是不能open表。
for i:=1 to table.fieldcount-1 do showmessage(table.fields[i].fieldname); 同意,这样能够取得字段名,但是其他属性,什么意思? 请指教!~~~ 你还要想取得什么属性呢 ?
//看看数据表的属性 select * from syscolumns where id=object_id('tablename')
……
晕!
showmessage(table.fields[i].fieldname);
//****查找一个表的所有列
//****结果返回TStringList
//***********************************************
function TdataRelationPub.GetAllCol(sTableName:string):TStringList;
var
i:integer;
begin
with TADOTable.Create(nil)do
try
Connection := SystemDM.DbMain;
TableName := sTableName;
Open;
Result:=TStringList.Create;
GetFieldNames(Result);
free;
except
on E: Exception do
begin
ShowMessage(E.Message);
Free;
end;
end;end;
如果不想连接表的话,可以使用系统表。
showmessage(table.fields[i].fieldname);
同意,这样能够取得字段名,但是其他属性,什么意思?
请指教!~~~
你还要想取得什么属性呢 ?
select * from syscolumns where id=object_id('tablename')
然后用原其产生的LIB文件来对数据库表进行操作.
又不能直接读系统表?
你可以用sp_help table_name,但是他的实现方法也是通过读系统表阿!所以,还是不太懂你的意思.......
要不借用sql-dmo
我看了相应的源代码是通过openschema实现的。
如果我要得到所有字段类型怎么做?怎么通过ado实现?