找到解决办法了,给我加分吧!procedure TfrmMain.GetViewNamesOnly(List: TStrings); var TypeField, NameField: TField; TableType: string; DataSet: TADODataSet; begin DataSet := TADODataSet.Create(nil); try DM.adoConnect.OpenSchema(siTables, EmptyParam, EmptyParam, DataSet); TypeField := DataSet.FieldByName('TABLE_TYPE'); { do not localize } NameField := DataSet.FieldByName('TABLE_NAME'); { do not localize } List.BeginUpdate; try List.Clear; while not DataSet.EOF do begin TableType := TypeField.AsString; if (TableType = 'View') then { do not localize } List.Add(NameField.AsString); DataSet.Next; end; finally List.EndUpdate; end; finally DataSet.Free; end; end;…………………………………………………………………… 上面唯一引用的外部变量就是DM.adoConnect,也就是你用的ADO connect,自己在uses重处理吧。
datamodule1.ADOConnection1.GetTableNames(listbox1.Items,false);
其中的我需要的一些英文表名我已知道了。
例如在SQL server中如何区分用户表和视图?
var
TypeField, NameField: TField;
TableType: string;
DataSet: TADODataSet;
begin
DataSet := TADODataSet.Create(nil);
try
DM.adoConnect.OpenSchema(siTables, EmptyParam, EmptyParam, DataSet);
TypeField := DataSet.FieldByName('TABLE_TYPE'); { do not localize }
NameField := DataSet.FieldByName('TABLE_NAME'); { do not localize }
List.BeginUpdate;
try
List.Clear;
while not DataSet.EOF do
begin
TableType := TypeField.AsString;
if (TableType = 'View') then { do not localize }
List.Add(NameField.AsString);
DataSet.Next;
end;
finally
List.EndUpdate;
end;
finally
DataSet.Free;
end;
end;……………………………………………………………………
上面唯一引用的外部变量就是DM.adoConnect,也就是你用的ADO connect,自己在uses重处理吧。