Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
*И еще маленькое дополнение. Не во всех системах PK необходим для редактирования. Таблица ORACLE, например, редактируется и при отсутствии PK (например, в ней нет PK, но есть пара UK) Он как-бы даже и не нужен. Главное чтобы не было 2-х полностью одинаковых записей. У меня например в базе нет ни PK ни FK в чистом виде. Есть некие условные составные ключи, не обьявленные в базе как ключи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2004, 14:38 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
У меня например в базе нет ни PK ни FK в чистом виде. Извините конечно, но ПРОСТО ЗАШИБИСЬ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2004, 15:28 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
У меня например в базе нет ни PK ни FK в чистом виде. Есть некие условные составные ключи, не обьявленные в базе как ключи. К сожалению довольно распространеная ситуация. Иногда даже понятно как она сложилась исторически. Но всеравно руки разработчику оторвать хочется ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2004, 16:08 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
2 * Не во всех системах PK необходим для редактирования. Таблица ORACLE, например, редактируется и при отсутствии PK (например, в ней нет PK, но есть пара UK) Акес тоже позволяет редактировать данные без PK и вообще без каких-либо индексов. Получаеться Акес круче Оракла ? Пример, который я привел - искусственный, но он демонстрирует неразумность принятого в Access 97 правила проверки FK "Неразумность" Акеса слихвой компенсируеться разумностью разработчика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2004, 16:19 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
Хе-хе. Меряться генераторами будем? Для чего нужны ключи на практике? PK: 1 - обеспечение уникальности каждой записи. Псевдоключи в моей базе имеют все признаки уникальности: 2 поля отвечают за уникальность базы на планете Земля (есть сложная система репликации и они указывают на источник записи) и 1 поле формируется генератором. Неуникальной данная связка быть не может. 2 - для обновления таблицы. Таблицы как объект типа *Table не использую вообще. Использую запросы к хранимым процедурам и для рефреша (какой нахиг рефреш, когда навигаторов всего 3 на 60 форм) нужные *UpdateSQL. Кстати редактирование в сетке почти не использую. Не нужно. FK: 1 - Связи между таблицами. Ну понимаешь через SQL и хранимые процедуры можно такое навернуть, что никакому любителю Paradox не снилось. 2 - Запрет на удаление подчиненной записи. Ну перед удалением идет строгая проверка на правильность такого решения как клиентом, так и серверной логикой и в случае принятия узером такого решения она не удаляется, а помечается удаленной. Удалять можно лет через 5 после отметки как удаленной только после помещения записи и подчиненных ей в долгосрочный архив. Да и триггеры ставят надежный заслон в крайнем случае. Все-таки 350 кило серверной логики уже накатал. 3 - каскадные действия по отношению к подчиненной таблице. А триггеры для чего? В носу ковырять? Ну убедите меня что я не прав. Вот только аргументы не забудьте. Не люблю пустые споры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2004, 16:36 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
aPT Псевдоключи в моей базе имеют все признаки уникальности Так чего там у вас нет - ключей или constraint'ов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2004, 16:44 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
У меня нет PK,FK и constraint'ов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2004, 16:46 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
Это означает что вы отказались от DRI а не от ключей - ключи это группа(1..*) полей отвечающих за уникальность записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2004, 16:47 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
>"Неразумность" Акеса слихвой компенсируеться разумностью разработчика. К сожалению нет. Ибо способностью предвидеть будущее обладают немногие... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2004, 17:37 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
2 IgorM >Там все к месту было, перечитай внимательнее. Я был не прав. DAO не входит в систему акцесовской обработки данных, поэтому приводить DAO-шный синтаксис в качестве доказательства было некорректно, поскольку транзакции в принципе могут быть реализованы не в самом акцесе а в системе DAO-акцес. А если коннектится через ODBC, транзакции пропадут или нет? > А почему правил Кодда всего 8? Я читал 12: Посмотрел по ссылке. Мы говорим о немного разных вещах: в цитируемой статье приводятся не правила, а возможности или сервисы, которыми с необходимостью должна обладать СУБД (не обязательно реляционная). В статье их 8: 1) data storage, retrirval and update 2) a user-accessable catalog 3) transatction support 4) concurrency control services 5) recovery services 6) autorization services 7) support for data communaications 8) integrity services >И серьезных противоречий с ними Access имхо не имеет. Просто не удовлетворяет некоторым и все, это не всегда противоречие. Например в полной мере не поддерживает транзакции: Transactions are not supported for linked tables. Сразу говорю, я не знаю, что это значит, это цитата из хелпа по TRANSACTION Statement. Но вообще-то мы говорили о MySQL, там транзакций нет вообще никаких. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 06:46 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
с127DAO не входит в систему акцесовской обработки данных, поэтому приводить DAO-шный синтаксис в качестве доказательства было некорректно, поскольку транзакции в принципе могут быть реализованы не в самом акцесе а в системе DAO-акцес. А если коннектится через ODBC, транзакции пропадут или нет? Что значит в "самом Access"? Access - это клиент, data access systems в терминах MS, просто максимально интегрированный с Microsoft Jet database engine. По умолчанию, MSA'97 использует DAO для доступа к базам mdb, в которых MS Jet поддерживает транзакции, поэтому пример в "синтаксисе" DAO вполне оправдан. А если коннектится через ODBC поддержка транзакций будет зависеть от подключаемой БД и драйвера ODBC. с127в цитируемой статье приводятся не правила, а возможности или сервисы, которыми с необходимостью должна обладать СУБД (не обязательно реляционная). Later Dr. Codd clarified his model by defining twelve rules (Codd’s Rules) that a database management system (DBMS) must meet in order to be considered a relational database . In practice, many database products are considered 'relational' even if they do not strictly adhere to all 12 rules Идеал обычно редко достижим. c127Transactions are not supported for linked tables linked tables могут быть, например, текстовыми файлами, для них действительно транзакции не поддерживаются, если же внешняя таблица будет из другого mdb, то транзакции могут использоваться. А что касается MySQL, то цитату из предыдущей ссылки я уже приводил: "In practice..." и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 12:15 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
2 IgorM >По умолчанию, MSA'97 использует DAO для доступа к базам mdb, в которых MS Jet поддерживает транзакции, ... . А если я из акцесса буду коннектится к mdb файлам через ODBC (если вдруг такое возможно), то будут ли поддерживаться транзакции? Будет ли задействован MS Jet в этом случае? >А если коннектится через ODBC поддержка транзакций будет зависеть от подключаемой БД и драйвера ODBC. Дельфи умеет разговаривать через одбц с кем угодно. Будет ли дельфи поддерживать транзакции в mdb файлах? Будет ли задействован MS Jet в этом случае? >Later Dr. Codd clarified his model by defining twelve rules (Codd’s Rules) that a database management system (DBMS) must meet in order to be considered a relational database. In practice, many database products are considered 'relational' even if they do not strictly adhere to all 12 rules 1) Есть определение Кодда, есть его толкования. Предлагаю толкования пока не обсуждать. 2) В моей ссылке речь идет о СУБД, в твоей - о РСУБД, которые есть подмножеством первых. Это одна из причин непонимания. >linked tables могут быть, например, текстовыми файлами, для них действительно транзакции не поддерживаются, ... Раз транзакции не поддерживаются, то это не СУБД в смысле Кодда. У него для внешних файлов исключений не предусмотрено: транзакции либо есть либо их нет. Если вдруг оракл или ДБ2 не поддерживает транзакции с внешними файлами, то это тоже не СУБД в смысле Кодда. Или же поддержкой внешних файлов никогда не нужно пользоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2004, 04:46 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
c127А если я из акцесса буду коннектится к mdb файлам через ODBC (если вдруг такое возможно), то будут ли поддерживаться транзакции? Будет ли задействован MS Jet в этом случае? Возможно, почему нет... 1. Да. 2. Может быть задействован, а может не быть (я имею ввиду до ODBC драйвера). с127Дельфи умеет разговаривать через одбц с кем угодно. Будет ли дельфи поддерживать транзакции в mdb файлах? Будет ли задействован MS Jet в этом случае? 1. У меня дельфи нет, BC++Builder против StartTransaction, Commit или Rollback, при ODBC-подключения к mdb, не возражает и они отрабатывают как надо. 2. Честно говоря, точно не знаю, как ODBC-драйвер взаимодействует с mdb, но очень вероятно, что посредством MS Jet Engine (во всяком случае, ссылки на него в odbcjt32.dll присутствуют). По теории (Р)СУБД спорить не буду, меня не очень беспокоит вопрос полного соответствия каких-либо конкретных БД правилам Кодда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2004, 14:49 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
Есть подозрение, что при соединении с mdb-базой через ODBC индексы игнорируются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 13:26 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
Есть подозрение, что при соединении с mdb-базой через ODBC индексы игнорируются Смотря откуда В связке "Jet + ODBC + какой-нить сервер" с индексами точно беда, по крайней мере рашмор для них не будет использоваться. Но это из-за уродской связки "Jet+ODBC". При использовании ODBCDirect все работает как и должно. З.Ы. А как вы себе представляете коннект из mdb в mdb через ODBC? Сам аксес ведь не даст так прилинковаться. Не из аксеса - можно, и помоему индексы не протераются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 13:33 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
ЛПА как вы себе представляете коннект из mdb в mdb через ODBC? Сам аксес ведь не даст так прилинковаться. Без линковки, программно через CreateWorkspace, OpenConnection и соответствующий DSN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:08 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
>З.Ы. А как вы себе представляете коннект из mdb в mdb через ODBC? Сам аксес ведь не даст так прилинковаться. Не из аксеса - можно, и помоему индексы не протераются. И Access и VB - нет, клиент был написан на C скорость заметно падала уже на сотнях записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:14 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
2 IgorM >2. Честно говоря, точно не знаю, как ODBC-драйвер взаимодействует с mdb, но очень вероятно, что посредством MS Jet Engine (во всяком случае, ссылки на него в odbcjt32.dll присутствуют). Получается что MS Jet Engine выполняет роль сервера. А DAO в этом участвует? Если DAO живет в odbcjt32.dll, то я согласен, его наверное нужно считать частью MS Jet Engine. >По теории (Р)СУБД спорить не буду, меня не очень беспокоит вопрос полного соответствия каких-либо конкретных БД правилам Кодда. Дело в том что MySQL вообще никак не соответсвует, разве что в последней версии ввели транзакции. Но вроде бы еще нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2004, 03:10 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
IgorMЧестно говоря, точно не знаю, как ODBC-драйвер взаимодействует с mdb, но очень вероятно, что посредством MS Jet Engine Даже очень вероятно. Без установленного Jet'а с mdb вроде как не получится работать - ни через ODBC, ни через OLEDB, ни с использованием ADO, ни с использованием DAO 2 с127 Получается что MS Jet Engine выполняет роль сервера. А DAO в этом участвует? Не участвует. Если DAO живет в odbcjt32.dll, то я согласен, его наверное нужно считать частью MS Jet Engine. Не живет. Ты все еще не можешь отойти от примера, который я для Cat2 привел? Сочувствую. Дело в том что MySQL вообще никак не соответсвует, разве что в последней версии ввели транзакции. Но вроде бы еще нет. В самом MySQL вроде как ввели. А уж тем более в его клонах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2004, 10:17 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
c127Получается что MS Jet Engine выполняет роль сервера. А DAO в этом участвует? Access через DAO к jet'у и обращается. Точно так же можно обращаться через ADO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2004, 10:35 |
|
||
|
Поругайте Акцесс. Очень надо.
|
|||
|---|---|---|---|
|
#18+
2 Лох Позорный >В самом MySQL вроде как ввели. Да, только что появились в версии 4 (это последняя релиз версия, пятого релиза еще нет). До последнего времени MySQL был знаменит тем, что транзакции не поддерживал. >А уж тем более в его клонах. А что такое клоны MySQL, ты его с интербейзом случайно не перепутал? 2 IgorM >Access через DAO к jet'у и обращается. Точно так же можно обращаться через ADO. Речь не об акцессе, с ним все понятно, а о взаимодействии ODBC и акцесовской БД (IgorM>Честно говоря, точно не знаю, как ODBC-драйвер взаимодействует с mdb, но очень вероятно, что посредством MS Jet Engine (во всяком случае, ссылки на него в odbcjt32.dll присутствуют). Но Лох Позорный уже ответил. Благодарю за разьяснения, кое-какие вопросы прояснились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 06:38 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=32393463&tid=1553597]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 177ms |
| total: | 302ms |

| 0 / 0 |
