delphi7中如何获取SQLServer2000里字段说明?
如“Tabel1”中“Sn”,字段说明为“序号”
想在Delphi中编写函数获取指定表指定字段的说明?
如func('Tabel1','Sn')返回“序号”。
追问:真的可以了,再问一句,能否获得表的说明?
如“Tabel1”中“Sn”,字段说明为“序号”
想在Delphi中编写函数获取指定表指定字段的说明?
如func('Tabel1','Sn')返回“序号”。
追问:真的可以了,再问一句,能否获得表的说明?
答案:用系统函数 fn_listextendedproperty 可以获取很多扩展属性,
下边的函数应该能帮你解决问题.
//***************************************
// 因空格键会被问问过滤, 所以把
// 空格键替换成不可见字符“ ”
// 因此复制代码到DELPHI后, 复制
// 双引号内字符全替换成两个空格// 就行了
//***************************************
//
function GetFieldDesc(ADOConnection: TADOConnection;
aTableName, aFieldName:String): String;
const
Const_GetDesc='SELECT value FROM ::::fn_listextendedproperty(NULL,''user'''+
',''dbo'',''table'',''%s'',''column'',default) where objName=''%s''';
begin
Result:='';
if not ADOConnection.Connected then exit;
with TADOQuery.Create(nil) do
begin
try
Connection:=ADOConnection;
Close;
SQL.Text:=format(Const_GetDesc, [aTableName, aFieldName]);
SHOWMESSAGE(SQL.Text);
try
Open;
Result:=FieldByName('value').AsString;
except
end;
finally
Free;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(GetFieldDesc(ADOConnection1,'Table1','Sn')); //可以返回 "序号"
end;