![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Диспетчер связи таблиц MS Access в Delphi [D5, MS Access]
bss © (2003-04-28 16:22:00)Программой, написанной в Delphi кроме всего прочего осуществляется копирование MS Access-ой базы данных для сохранения резервной копии. При этом существует файл *.mdb, содержащий собственно таблицы, и несколько файлов *.mdb с интерфейсом базы данных MS Access. Файл интерфейса считывает таблицы из файла с таблицами через диспетчер связи таблиц.
После копирования необходимо связать таблицы в файле интерфейса с копией файла с таблицами.
При использовании ADO функция getTablesNames дает список таблиц файла *.mdb всех, кроме тех, которые связаны.
Если кто-нибудь что-нибудь может посоветовать, буду очень благодарна!
bss (2003-05-06 14:06:00) [1]Спасибо!
sniknik (2003-04-28 17:51:00) [2]напиши свой getTablesNames, можеш мой за основу взять (или исходники дельфевские откуда я брал основу), нужно будет только "отсечь" лишнее (у меня выводится все) тебе нужно оставить TypeField.AsString = TABLE или LINK ну и естествено ограничится одним списком как в стандартном.
procedure TMainForm.GetTableNames(StringGrid: TStringGrid; List: TStrings);
var TypeField, NameField: TField;
TableName: string;
DataSet: TADODataSet;
begin
DataSet:= TADODataSet.Create(nil);
try
ADOConnection1.OpenSchema(siTables, EmptyParam, EmptyParam, DataSet);
TypeField:= DataSet.FieldByName("TABLE_TYPE");
NameField:= DataSet.FieldByName("TABLE_NAME");
List.BeginUpdate;
try
List.Clear;
StringGrid.RowCount:= 2;
StringGrid.Cells[0,1]:= "";
StringGrid.Cells[1,1]:= "";
while not DataSet.EOF do begin
TableName:= NameField.AsString;
List.Add(TableName);
StringGrid.Cells[0,StringGrid.RowCount-1]:= TableName;
StringGrid.Cells[1,StringGrid.RowCount-1]:= TypeField.AsString;
StringGrid.RowCount:= StringGrid.RowCount + 1;
DataSet.Next;
end;
if not DataSet.IsEmpty then StringGrid.RowCount:= StringGrid.RowCount - 1;
finally
List.EndUpdate;
end;
finally
DataSet.Free;
end;
end;