Конференция "Базы" » Создать запрос из списка значений полей [D7, Access]
 
  • sniknik © (02.11.11 11:43) [40]
    > А замечания приветствуются!
    1 комментарии бессмысленны... описывать что вот здесь а присваивается б... и при этом не написать я для чего это вообще... т.е. цель процедуры. да лучше бы их просто не было.
    2 запрос "единым" форматированным куском лучше смотрится и понятнее.
    3 ADOQueryLog, до сих пор? я с тобой больше не разговариваю.
  • Ega23 © (02.11.11 12:26) [41]

    > > Нахрена каждую таблицу держать в отдельном mdb?
    >
    >
    > Приехал с радиоэкспедиции - привез свою базу. Нужно слить
    > все данные в "основную" базу на компе дома.


    Ты, походу, либо путаешься в терминах "таблица БД" и "БД", либо у тебя канонiчный вариант полностью денормализованной базы, состоящей из одной единственной таблицы.
  • Alex_C (02.11.11 13:38) [42]

    > ADOQueryLog, до сих пор?


    Учитывая что я всего 5 дней занимаюсь переделыванием своей программы с VolgaTable на ADO+Access мне простительно.
    Во-вторых для начала хотел разобраться в тонкостях написания SQL-запосов.
    Теперь пришло время разбираться в тонкостях использования ADO+Delphi.
    Пока в этом направлении не понял, почему многие против ADOQuery, но за ADOCommand.

    По поводу первых двух пунктов - это я для себя, для полного понимания так сказать! :)


    > либо путаешься в терминах "таблица БД" и "БД"


    Возможно. БД - это я называю файл .MDB. Таблица - это то, что в файле.
  • Anatoly Podgoretsky © (02.11.11 13:46) [43]
    > Alex_C  (02.11.2011 13:38:42)  [42]

    Ну тогда не поздно заменить Акцесс на MS SQL
  • Ega23 © (02.11.11 13:46) [44]

    > Возможно. БД - это я называю файл .MDB. Таблица - это то,
    >  что в файле.


    Ну тогда, похоже, имеем самый жуткий вариант: полностью денормализованную базу.
    Геморрой тебе обеспечен. Сочувствую.
  • Alex_C (02.11.11 13:59) [45]

    > Ну тогда не поздно заменить Акцесс на MS SQL


    Вообще не поздно что-то другое выбрать. В данном случае я только в начале переделки.

    Когда выбирал БД исходил из следующих пунктов:
    1. Один EXE-файл.
    2. Нет необходимости устанавливать драйвера БД.
    3. Официально бесплатная.
    4. Скорость выборки (вот именно то что я и делал выше).
    5. Максимальное количество записей в таблице не более 300 тыс.

    Я выбирал из Access, FireBird, SQLite. Почитав отзывы остановился на Access.
    MS SQL как я знаю требует отдельной установки и хоть минимальной настройки. Т.к. многие из пользователей моей программы компьютерами очень плохо владеют, то это было для меня не совсем удобно.


    > полностью денормализованную базу.


    Пока еще ничего толком не имеем :)
    Сейчас после понятия общих принципов SQL приступаю к нормализации БД, что мне советовали выше.
  • Alex_C (02.11.11 14:01) [46]

    > ADOQueryLog, до сих пор?


    Заметил на ADODataset.
    В моем распоряжении сейчас только маленькая БД - всего 10000 тыс записей. Разницы конечно не чувствуется. А на сколько она вообще ощутима на более больших БД?
  • Ega23 © (02.11.11 14:08) [47]

    > Во-вторых для начала хотел разобраться в тонкостях написания SQL-запосов.
    > Теперь пришло время разбираться в тонкостях использования ADO+Delphi.


    Начни с теории РСУБД и нормализуй базу. Серьёзно. Иначе хлебнёшь проблем по самые гланды.
  • sniknik © (02.11.11 14:20) [48]
    > маленькая БД - всего 10000 тыс записей.
    разные понятия. количество... а вот если 1 запись, но у нее 1000000 тыс полей? (невозможно, но смысл)
    это очень маленькая? одно поле всего то...

    > А на сколько она вообще ощутима на более больших БД?
    количество записей практически не имеет значения. при нормальной структуре/индексах, грамотной работе с ней (выборка только нужного/объединения только по индексированным полям ну и т.д. по месту).
    а вот что имеет так это размер базы. проблемы начинались с 1.8 гб.  при официальном ограничении в 2 гб.
  • Ega23 © (02.11.11 14:37) [49]

    > при официальном ограничении в 2 гб.


    Это для MSDE 2000, позже, вроде как, увеличили. До скольки Гб - не помню.
  • Inovet © (02.11.11 14:48) [50]
    > [49] Ega23 ©   (02.11.11 14:37)
    > > при официальном ограничении в 2 гб.
    >
    > Это для MSDE 2000, позже, вроде как, увеличили. До скольки Гб - не помню.

    Это про jet видимо было сказано.
  • Ega23 © (02.11.11 14:54) [51]

    > Это про jet видимо было сказано.


    Про MSSQL
  • sniknik © (02.11.11 15:58) [52]
    > Это для MSDE 2000, позже, вроде как, увеличили.
    MSDE осталось, это уже новые версии 2008(?) оно уже как то по другому называется, экспресс что-ли... до 4х, а после даже до 10ти гиг. вроде так, да.

    > Про MSSQL
    вообще то именно про Jet.
  • sniknik © (02.11.11 15:59) [53]
    > вообще то именно про Jet.
    в смысле, в [48] говорил про Jet.
  • Ega23 © (02.11.11 16:04) [54]

    > в смысле, в [48] говорил про Jet.


    А, ну может быть, я в Access ни бум-бум.
  • Alex_C (02.11.11 16:40) [55]

    > Начни с теории РСУБД и нормализуй базу. Серьёзно. Иначе
    > хлебнёшь проблем по самые гланды.


    Здесь дух мнений быть не может. Абсолютно прав. На выходных буду прорабатывать структуру. Кто бы спорил, я ж не буду (С) Пословица.

    Прошу прощения может за глупые вопросы, просто навалилось как бы много всего нового и SQL, и ADO. Вот пока по этому и несколько бестолковые вопросы.


    > разные понятия. количество... а вот если 1 запись, но у
    > нее 1000000 тыс полей?


    Тут несколько другое. У меня есть конкретная база. Да я конечно читал замечательную статью в инете про выбор базы. Выбрать идеальную базу - не возможно. Каждая лучше для конкретного случая.
    У меня получается так: реально количество записей от 10 до 300 тыс максимум. Количество полей - до 100 и то это ну на очень будущее. Вот из этого и исхожу.
  • Ega23 © (02.11.11 16:53) [56]

    > Количество полей - до 100 и то это ну на очень будущее.
    > Вот из этого и исхожу.


    Это крайне плохой признак. В 99% случаев ненормализованная база.
    На своей практике встречал 40 полей в таблице, но это было один единственный раз.
  • Alex_C (02.11.11 17:12) [57]

    > Это крайне плохой признак.


    Извини не знаю как тебя зовут, но знаешь.... уже очень долго думал над этим. Тут ОЧЕНЬ большая палка о двух концах. Поверь. Все уж очень специфично.
    Ок! Приведу пример: Сначала надо было в базе сохранять минимум сведений: позывной, дата/время, частота, диапазон, модуляция, имя, город, рапорт о приеме. Все. Время идет. Добавляются новые поля. Чисто информативные в своем роде. Не боле того. Например наименование острова с которого работал и т.п. Причем самое главное: вот допустим по островам - ну очень мало кому нужна статистика. Но есть кому нужна. Вот и получается: смысла по этому полю что то думать - нет - и так все в секунду считается.

    Опять же: может я не прав. Все еще думаю с позиции ТТабле :)
  • Ega23 © (02.11.11 17:15) [58]

    > Например наименование острова с которого работал и т.п.


    Ну вот и создаёшь в базе таблицу "Острова".
    create table Islans(ID int, Name varchar(255));
    А в "рабочей" таблице добавляешь ссылку на эти самые острова. Т.е. Island_ID.
    По-умолчанию - null.
  • Alex_C (02.11.11 17:25) [59]

    > Ну вот и создаёшь в базе таблицу "Острова".
    > create table Islans(ID int, Name varchar(255));
    > А в "рабочей" таблице добавляешь ссылку на эти самые острова.
    >  Т.е. Island_ID.
    > По-умолчанию - null.


    Не катит. Боле того - в основной базе такая таблица по островам есть.
    Теперь очень распространенное положение - чувак едет на новый остров. Да забыл сказать - многое в базе "информации" появляется после, а не до того, как оно попало в основную базу.

    Да забыл сказать - по остовам есть отдельный столбец. Там для каждого диплома выбираются ОТДЕЛЬНЫЕ коды островов.

    Теперь вот что получается: человек сработал с "непонятным островом", которого нет в справочнике островом. Его обозначение занес в в лог (таблицу). После выхода новой версии лога справочник по островам обновился - его код острова появился.

    Я понимаю что может для стороннего человека это не понятно... Прошу прощения!
 
Конференция "Базы" » Создать запрос из списка значений полей [D7, Access]
Есть новые Нет новых   [134431   +10][b:0.001][p:0.001]