Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: СУБД и Delphi/Lazarus

  Все выпуски  

RFpro.ru: СУБД и Delphi/Lazarus


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Jimhucksly
Статус: 5-й класс
Рейтинг: 710
∙ повысить рейтинг »
LanK
Статус: Профессионал
Рейтинг: 305
∙ повысить рейтинг »
Selax
Статус: 5-й класс
Рейтинг: 173
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / СУБД и Delphi/Lazarus

Номер выпуска:552
Дата выхода:18.12.2009, 16:00
Администратор рассылки:Gh0stik, Модератор
Подписчиков / экспертов:362 / 100
Вопросов / ответов:3 / 7

Вопрос № 29430: Здравствуйте, подскажите как поступают умные? Есть несколько таблиц-справочников с полями ID, NAME. Как называть Primary Key, чтобы по его названию было понятно что это за Primary Key? Может так PK_ID_TABLENAME? Я так понимаю, чт...


Вопрос № 59447: Сталкивались ли вы с такой проблемой? В базе данных InterBase создано поле VARCHAR(500). При определенном количестве символов (~300-400) в этом поле во время выполнения запроса возникает ошибка. Запрос такого рода (select ... group by <это поле>...
Вопрос № 91725: Здравствуйте. Подскажите как правильно написать запрос к БД Аксцесс на выбор за определенный период. В приведённом коде Д7 ругается,что min не имеет значения по умолчанию. Заранее спасибо....

Вопрос № 29430:

Здравствуйте,
подскажите как поступают умные?

Есть несколько таблиц-справочников с полями ID, NAME.
Как называть Primary Key, чтобы по его названию было понятно что это за Primary Key?
Может так PK_ID_TABLENAME? Я так понимаю, что создать несколько Primary Key в базе данных с названием PK_ID не получится...

Отправлен: 12.11.2005, 19:03
Вопрос задал: Vitava, 5-й класс
Всего ответов: 2
Страница вопроса »


Отвечает Архангельский Андрей Германович, Специалист :
Здравствуйте, Vitava!
Реально, СУБД позволяет иметь одинаковые названия полей в двух разных табицах, но чисто для человеческого понимания лучше чтобы в каждом поле был признак таблицы.
Например я делаю трех-буквенное сокращение названия таблицы и добавляю его в начало названия поля. При этом все поля, которые имею одинаковую функцию имеют одинаковые имена с учетом трехбуквенного префикса.
-----
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО

Ответ отправил: Архангельский Андрей Германович, Специалист
Ответ отправлен: 12.11.2005, 19:20

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 71544 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает sir Henry, Старший модератор :
    Здравствуйте, Vitava!
    Индекс относится не ко всей базе данных, а к каждой конкретной таблице. Так что не парьте голову и назовите все ID. :)
    Вот только зря Вы не пишете формат Вашей базы. Ответ был бы более приближен к реальности. :) Россия, Красноярск

    -----
    Я только в одном глубоко убеждён - не надо иметь убеждений! :)

    Ответ отправил: sir Henry, Старший модератор
    Ответ отправлен: 13.11.2005, 07:45

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 71574 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 59447:

    Сталкивались ли вы с такой проблемой? В базе данных InterBase создано поле VARCHAR(500). При определенном количестве символов (~300-400) в этом поле во время выполнения запроса возникает ошибка. Запрос такого рода (select ... group by <это поле>), то есть при группировке по этому полю. Ошибка: потеря соединения с сервером InterBase. Подскажите есть ли ограничения по размеру поля, по которому производиться группировка. Связано ли это с тем, что при количестве символов > 255 поле не индексируется. (хотя 256 символов работают - проверял). Заранее спасибо...

    Отправлен: 19.10.2006, 10:05
    Вопрос задал: Kotsa
    Всего ответов: 3
    Страница вопроса »


    Отвечает Архангельский Андрей Германович, Специалист :
    Здравствуйте, Kotsa!
    Скорее всего это ошибка построения индекса по group by
    предельный размер индекса зависит от нескольких факторов для одиночного поля и 1-байтной кодировки этот размер 256-12=244 символов. Более точно в конкретном случае определяется опытом. Просто определи поле и построй индекс в случае ошибки уменьши размер поля. В предыдущих версиях этот размер равен 176 символов.

    В случае нескольких полей все сложнее. Лучше тестировать.
    -----
    Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО

    Ответ отправил: Архангельский Андрей Германович, Специалист
    Ответ отправлен: 19.10.2006, 10:17

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 122537 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает sir Henry, Старший модератор :
    Здравствуйте, Kotsa!
    До версии 2.0 длина любого индекса не должна была превышать 252 байта. В версии 2.0 это ограничение убрали, теперь размер индекса зависит от размера страницы. Однако сами понимаете, что чем больше размер индекса, тем больше замедляется работа с данными.
    Group by использует индекс, если он есть по этому полю. Выводы делайте сами. :) Россия, Красноярск

    -----
    Я только в одном глубоко убеждён - не надо иметь убеждений! :)

    Ответ отправил: sir Henry, Старший модератор
    Ответ отправлен: 19.10.2006, 10:49

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 122543 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Химяк Виктор Васильевич, 5-й класс :
    Здравствуйте, Kotsa!
    В своих базах, я стараюсь поля VARCHAR не делать больше 255 символов, если больше использую BLOB. Попробуйте перестроить базу, если это возможно.

    Ответ отправил: Химяк Виктор Васильевич, 5-й класс
    Ответ отправлен: 19.10.2006, 19:57

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 122619 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 91725:

    Здравствуйте.
    Подскажите как правильно написать запрос к БД Аксцесс на выбор за определенный период. В приведённом коде Д7 ругается,что min не имеет значения по умолчанию.
    Заранее спасибо.

    Отправлен: 17.06.2007, 10:46
    Вопрос задал: Шмаров Сергей, 4-й класс
    Всего ответов: 2
    Страница вопроса »


    Отвечает Устинов С.Е., Профессионал :
    Здравствуйте, Шмаров Сергей!

    Сделайте так:
    AbonentModule.DeaktivQuery.SQL.Add(\'WHERE DateDeactiv BETWEEN #\'+datetostr(min)+ \'# AND #\'+datetostr(max)+\'#\');

    На своем компьютере найдите файл JETSQL40.CHM. (у меня лежит в "C:\Program Files\Common Files\Microsoft Shared\OFFICE11\1049\")
    В "Указателе" выберите "WHERE - предложение".
    По поводу даты там написано:

    При указании аргумента условиеОтбора литералы даты (символы дат) должны вводиться в американском формате, даже если используется неамериканская версия ядра базы данных Jet. Например, дата 10 мая 1996 года записывается в России как 10.05.96, а в США как 5/10/96. Обязательно заключите даты в символы «решетки» (#), как показано в следующих примерах.

    Для отбора записей с этой датой в российской базе данных необходимо использовать следующую инструкцию SQL:

    SELECT * FROM Заказы WHERE ДатаИсполнения = #5/10/96#;

    Кроме того, можно применять функцию DateValue, которая поддерживает международные стандарты, заданные в Microsoft Windows®. Например, для отбора записей в американской базе данных создайте текст программы:

    SELECT * FROM Заказы WHERE ДатаИсполнения = DateValue(\'5/10/96\');

    Для российской базы данных текст программы будет выглядеть так:

    SELECT * FROM Заказы WHERE ДатаИсполнения = DateValue(\'10.5.96\');


    А насчет сортировки по полю дат добавьте в конец запроса ORDER BY поле_даты ASC.

    Также можно глянуть здесь (правда на английском языке )

    Удачи!
    -----
    Ждешь квалифицированного ответа? Задай правильно вопрос!

    Ответ отправил: Устинов С.Е., Профессионал
    Ответ отправлен: 17.06.2007, 11:22

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 167892 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Кайгородов Сергей Александрови, Посетитель :
    Здравствуйте, Шмаров Сергей!
    Запрос в виде ADOQuery

    select Telefon, Famili, Name1, Name2, Sity, Street, Dom, Kvart, DateDeactiv, DaektivParam
    Where DateDeactiv >= :min and DateDeactiv <= :max

    Затем параметры, которые передаются в ADOQuery
    ADOQuery.Close;
    ADOQuery1.Parameters.ParamValues[\'min\'] := \'10.06.2007;
    ADOQuery1.Parameters.ParamValues[\'max] := \'18.06.2007;
    AdoQuery1.Open;

    Ответ отправил: Кайгородов Сергей Александрови, Посетитель
    Ответ отправлен: 17.06.2007, 12:09

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 167906 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    подать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.12 от 30.11.2009

    В избранное