Форум: "Базы";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];
ВнизРабота с подтаблицами в MDB Найти похожие ветки
← →
Магнум (2005-06-15 17:14) [0]Работа с таблицами ведется, понятное дело, через GetTableNames и TableName. Подскажите, пожалуйста, как работать с подтаблицами через ADO.
← →
-=XP=- © (2005-06-15 18:17) [1]как работать с подтаблицами через ADO
Через ADO.
← →
Магнум (2005-06-15 19:08) [2]Я и работаю через ADO.
← →
Zacho © (2005-06-15 19:22) [3]Магнум (15.06.05 17:14)
А что такое "подтаблицы" ? Нарушение 1НФ ?
← →
Магнум (2005-06-15 20:08) [4]О подтаблицах
В подтаблице можно просматривать и редактировать связанные или объединенные данные таблицы, запроса, формы или подчиненной формы. Например, в базе данных «Борей» таблица «Поставщики» имеет отношение «один-ко-многим» с таблицей «Товары»; поэтому для каждой строки таблицы «Поставщики» в режиме таблицы можно просматривать и редактировать в подтаблице связанную строку таблицы «Товары».
Щелкните индикатор развертывания, чтобы развернуть или свернуть подтаблицу
Microsoft Access автоматически создает подтаблицу в таблице, имеющей отношение «один-к-одному» или являющейся стороной «один» в отношении «один-ко-многим», если свойство таблицы Имя подтаблицы (SubdatasheetName) имеет значение Авто. Отношение определяется по совпадению полей первичного ключа и внешнего ключа в связанных таблицах.
Тем не менее, подтаблицу можно добавить в любую таблицу, запрос или форму. Подтаблица может использовать в качестве источника данных таблицу или запрос (указанный в свойстве Имя подтаблицы (SubdatasheetName)). Подтаблица, относящаяся к подчиненной форме, может использовать в качестве источника данных таблицу, запрос или форму (указанную в свойстве подчиненной формы Объект-источник (SourceObject)).
В пределах таблицы можно вложить до восьми уровней подтаблиц. Однако каждая таблица или подтаблица может иметь только одну вложенную подтаблицу. Например, таблица «Клиенты» может содержать одну подтаблицу таблицы «Заказы», а подтаблица таблицы «Заказы» может содержать одну подтаблицу «Заказано». Но содержать подтаблицу таблицы «Заказы» и подтаблицу запроса «Продавцы» одновременно таблица «Клиенты» не может.
Формы, подчиненные формы и подтаблицы
Форма в режиме формы или таблицы также может иметь подтаблицу, но между подтаблицей формы и подтаблицей таблицы или запроса существуют отличия.
В форму подтаблица вставляется путем добавления подчиненной формы с последующим определением объекта-источника путем указания таблицы, запроса или формы в свойстве Объект-источник (SourceObject) подчиненной формы. При просмотре формы в режиме таблицы, подчиненная форма отображается в виде подтаблицы. Если в качестве объекта-источника подчиненной формы используется форма, то для свойства Режим по умолчанию (DefaultView) может быть задано значение Таблица, Простая форма или Ленточная форма. Таким образом, в форме в режиме таблицы можно также просматривать подтаблицу в виде простой или ленточной формы.
Хотя форма может иметь более одной подчиненной формы, каждая из которых может иметь до двух уровней вложения, в режиме таблицы для формы отображается только одна подтаблица. Microsoft Access выводит подтаблицу, соответствующую первой подчиненной форме в порядке перехода по форме.
При первом открытии таблицы, запроса или формы в режиме таблицы подтаблица не развертывается; однако при первом открытии формы в режиме формы подтаблица, соответствующая подчиненной форме, развертывается.
Если объектом-источником для подчиненной формы является форма, то в подтаблице, соответствующей этой подчиненной форме, можно постоянно отображать внешний ключ или связанные поля.
← →
Zacho © (2005-06-15 21:38) [5]Магнум (15.06.05 20:08) [4]
Читай лучше другую документацию, в которой используется общепринятая для СУБД терминология, а не какие-то загадочные "подтаблицы", которые на деле оказываются стандартной связкой Master-Detail.
И изучи любой учебник по работе с БД в Дельфи.
А вот ответ на твой вопрос: посмотри в хелпе, например, раздел Making the table a detail of another dataset И не забудь нажать на ссылку "See Also" :)
← →
Магнум (2005-06-16 07:13) [6]Где sniknik?
Нужна ваша квалифицированная помощь!!!
← →
sniknik © (2005-06-16 08:30) [7]да здесь я, только не понимаю вопроса вот и не вмешиваюсь... ;о))
не в принципе понятно что ты имееш ввиду (достаточно открыть аксес) но то что там видим это скорее такой оригинальный DBGrid а не свойства таблиц (подтаблицы ;о))). он просто так отображает внешние ключи (FOREIGN KEY). если хочеш у себя также, придется делать визуальный контрол аналогичный аксесовскому. (муторно и долго, хотя и возможно)
если же хочеш делать таблицы которые в при открытии базы в аксессе дадут тот же эффект, то это просто достаточно сделать связь... открываем справку jet-а, "срисовываем" пример запросов, выполняем через ADO,
CREATE TABLE Клиенты (ИндексКлиента INTEGER PRIMARY KEY, CLstNm NCHAR VARYING (50))
CREATE TABLE Заказы (КодЗаказа INTEGER PRIMARY KEY, ИндексКлиента INTEGER, ПримечанияЗаказа NCHAR VARYING (255),
CONSTRAINT ВнКлЗаказыИндексКлиента FOREIGN KEY (ИндексКлиента) REFERENCES Клиенты ON UPDATE CASCADE ON DELETE CASCADE)
осталось наполнить данными, получиш тоже самое (в аксессе, как ты будеш показывать это в дельфях, твое личное дело...).
> Making the table a detail of another dataset
это тоже связь, аналогичная, мастер детайл, но обеспеченая на уровне клиента (программа на дельфи), foreign key на уровне сервера (базы).
← →
sniknik © (2005-06-16 08:41) [8]в > Магнум (15.06.05 20:08) [4] ты все в принципе описал (значит понимаеш что такое внешний ключ), и как работает. но что хочеш сделать непонятно. вопрос "как работать с "...любой несуществующий термин..." через "...неважно что..."" как вопрос не воспринимается.
если чегото нет, то как с ним работать? ;о))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.034 c