Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IBTable1.Filtered - Дата1 - Дата2   ? [D6, D7, FireBird 1.0]


Страницы:   1 2 3

Filat ©   (2003-05-19 09:27:00) 

Доброго утра всем (для кого утро)!!!
Делаю такой фильтр, работает.
IBTable1.Refresh;
IBTable1.Filter:="(DATA="+#39+DateToStr(Date)+#39+")";
IBTable1.Filtered:=True;
А как сделать фильтр на промежуток м/у датами?

P.S.: SELECT ... не предлагать!!!
Спасибо!


Zacho   (2003-05-21 20:53:00) [21]


> Filat © (21.05.03 20:18)
> Итак, изучил материал на который указал Zacho, кстати, этого
> оказалось достаточно :)))

Поверь, недостаточно :) Со временем убедишься.

> 1. Если таблицу надо очистить, полностью, как обнулить Primary
> key?

Зачем ? Если у тебя искуственный ПК, то его значение ничего не значит (извеняюсь за каламбур).

> 2. Как после фильтра и поиска получить значение этого Primary
> key и переместить позицию в DBGrid на эту запись, интуитивно
> есть догадки, но все же.

Точно так же, как и значение любого другого поля. А переместить позицию - Locate по ПК. В чем конкретно затруднения ?

> 3. Если у меня будет поле с Primary key, надо ли мне ещё
> делать индексы по другим полям, у меня же не ОДБ в конце
> концов :))))?

Весьма желательно сделать UNIQUE INDEX на поля, входящие в естественный ПК (и потенциальные ключи).
Насчет других полей - тебе как разработчику БД лучше знать, по каким полям нужны индексы. Разберись, что такое индексы и для чего они нужны. Кстати, первичные ключи (и внешние ключи) - не есть индексы, хотя при создании PK и FK индексы для соответсвующих полей создаются автоматически. Разберись, в чем разница между constraint и index.
Все-таки твой пост свидетельствует о том, что ты не понимаешь базовыхпринципов РСУБД. Почитай, все-же сначало теорию. И вопросов станет гораздо меньше :-)


Filat   (2003-05-21 20:18:00) [22]

Итак, изучил материал на который указал Zacho, кстати, этого оказалось достаточно :))) Но применительно к моей задаче как сделать следующее.
Во первых, скажем так, кол-во записей в Table1 <> Table2, и не будет равна. Записи могут быть связаны по типу: № входящего письма <- № исходящего письма на № входящего письма.
Решено использовать поле с Primary key и автоинкрементом.
1. Если таблицу надо очистить, полностью, как обнулить Primary key?
2. Как после фильтра и поиска получить значение этого Primary key и переместить позицию в DBGrid на эту запись, интуитивно есть догадки, но все же.
3. Если у меня будет поле с Primary key, надо ли мне ещё делать индексы по другим полям, у меня же не ОДБ в конце концов :))))?
Спасибо!


Zacho   (2003-05-20 20:47:00) [23]

Еще раз на всякий случай :) повторю:

Сначало разберись, что такое вообще первичный ключ (и для чего он нужен, и что может быть при его отсутствии, и что искуственный ПК - это всего лишь техническийй прием, облегчающий работу).Почитай того же Дейта, или что-нибудь еще по теории РСУБД и/или разработке БД.

Поверь, просто сейчас я понимаю, что в свое время избежал бы множества наступаний на грабли, если бы сначалопочитал и осмыслилчто-нибудь по теории РСУБД

Удачи !


Filat   (2003-05-20 20:09:00) [24]

Спасибо! То что надо! :))


Zacho   (2003-05-20 19:59:00) [25]


> Filat © (20.05.03 19:25)
> Коллеги, прошу прощения, но:
> 1. Что можно использовать вместо Outlook Express для чтения
> новостей? The Bat не имеет такой возможности :(((
Я использую FidoLook SL - надстройка над OutlookExpress. Меня устраивает. URL не помню, но найдешь без труда любым поисковиком.

> 2. Если нетрудно, дайте ссылку на http://www.ibase.ruгде
> конкретно есть по первичным ключам. Не понятно, какой тип
> поля для него ставить, или все равно?
> 3. Если я удалю записи, все, значение первичного ключа тоже
> сбросится на "0", если оно изначально = "0" или надо чего
> то делать как в Paradox.

Сначало разберись, что такое вообще первичный ключ. Почитай того же Дейта, или что-нибудь еще по теории РСУБД и/или разработке БД.
После этого можно читать что-нибудь типа http://www.ibase.ru/devinfo/generator.htm, http://www.ibase.ru/devinfo/NaturalKeysVersusAtrificialKeysByTentser.html, http://www.alexus.ru/russian/articles/dbms/keys/index.htmи т.д.
Удачи !


Filat   (2003-05-20 19:25:00) [26]

Коллеги, прошу прощения, но:
1. Что можно использовать вместо Outlook Express для чтения новостей? The Bat не имеет такой возможности :(((
2. Если нетрудно, дайте ссылку на http://www.ibase.ruгде конкретно есть по первичным ключам. Не понятно, какой тип поля для него ставить, или все равно?
3. Если я удалю записи, все, значение первичного ключа тоже сбросится на "0", если оно изначально = "0" или надо чего то делать как в Paradox.


Filat   (2003-05-20 17:49:00) [27]

Хорошо, уболтали :))))))
Дело в том что с локальными базами у меня все ок.
Вот с IB или FireBerd будем разбираться.
Спасибо! Если что, я тогда снова обращусь...


Zacho   (2003-05-20 16:51:00) [28]


> Filat © (20.05.03 15:48)

В инете - не знаю, лучше купи книжку, очень пригодится.
Только имей в виду, что издания разных годов очень сильно отличаются.
И, как уже сказали, читай статьи на http://www.ibase.ru
Еще очень может помочь конференция news://forums.demo.ru/epsylon.public.interbase - почитай архив, весьма полезно.


Anatoly Podgoretsky   (2003-05-20 16:15:00) [29]

Без первичного ключа, как тебе ужесказали делать нечего, можешь сразу хоронить базу, еще хуже жить без базовых знаний, без основы, тут вообще полный капут. Так что сначала немного почитать, посмотреть примеры в Дельфи, посещать www.ibase.ru и покопаться там и только потом за базы.


Соловьев   (2003-05-20 15:54:00) [30]


> Filat © (20.05.03 15:48

www.ibase.ru


Filat   (2003-05-20 15:48:00) [31]

Понятно, тогда где в Инете почитать Дейта, и как сделать автоинкрементное поле в FireBerd, как в Paradox я знаю, с FireBerd не приходилось как то.


Zacho   (2003-05-20 13:55:00) [32]

ПК - это поле (или набор полей) значение которого уникально в пределах таблицы. "Сама база" ничего не делает, но можно сделать искуственный (т.е. генерируемый искуственно, и не имеющий смысла вне БД) ПК, например с помощью генератора.
ПК нужен обязательно! Почитай того же Дейта - у него подробно описаны возможные аномалии при работе с ненормализированными данными.
Если тебе нужен номер по порядку (кстати, какому порядку ? В порядке ввода записей ?) - то сделай такое поле, только подумай, как избежать конфликтов при многопользовательской работе.


Соловьев   (2003-05-20 13:55:00) [33]


> Автоинкрементное не подходит, нужна возможность вставить
> запись в середину таблицы по № п/п.

как раз подходит. автоинкрементное на то и придумано, чтобы по авто заполнять id записи. А "вставка в середину" № п/п - это уже отдельное поле, в котором ты можешь все что угодно писать.


Filat   (2003-05-20 13:48:00) [34]

Давай так, как я мыслю об ID. В моём понимании после это некоторое значение записи в спец. поле, которое ведёт сама база.
Если вопрос стоит о ключевом поле, т.е. уникальном я так понимаю, то для этой задачи, я так думаю, ... оно мне не надо. Хотя после объяснений Анатолия Подгоретского есть вариант что оно то меня и спасёт. Так о чем речь? Об уникальном поле или спец ID, как например делает сама база? (похоже что путаем термины, а разговор об одном и том же).
Да, каким тогда делать это уникальное поле, автоинкрементным или самому ставить значение? Автоинкрементное не подходит, нужна возможность вставить запись в середину таблицы по № п/п.
Спасибо!


Zacho   (2003-05-20 09:47:00) [35]


> Filat © (20.05.03 09:42)

В твоей таблице нет первичного ключа ???
Немедленно сделай, иначе проблем не оберешься, и почитай что-нибудь о разработке БД в РСУБД, например К. Дж. Дейт "Введение в системы баз данных"


Соловьев   (2003-05-20 09:45:00) [36]


> Filat © (20.05.03 09:42)

id - это ключевое поле(или набор ключевых)? в общем случае - набор всех атрибутов(полей).


Filat   (2003-05-20 09:42:00) [37]

Где я его возьму или как получить ID записи, если у меня он специально не проставляется? Или сам FireBerd их ещё нумерует?


NickBat   (2003-05-19 17:16:00) [38]

1. Ну у TQuery тоже есть Filter.
2. Запоминай ID записи.



Filat   (2003-05-19 17:11:00) [39]

Anatoly Podgoretsky - понял, спасибо, но тогда как сделать следующее:
- после select будет идти поиск уже чего то конкретного.
- юзер нашел в select и поиске то что ему надо, как сделать чтобы запись на которой он стоит в select-е при закрытии дополнительной формы была текущей в главной, в DBGrid (т.е. в самой таблице)


Anatoly Podgoretsky   (2003-05-19 14:32:00) [40]

Каждый раз как хочу привести конкретный код, кто нибудь его уже привел, так что общии замечания. Все равно SQL запрос, неверно работать навигационными методами с SQL серверами и отказаться от IBTable в пользу соответсвующих компонент.
Только к ответу NickBat © (19.05.03 14:25) учитывай тип оля если не чистый DATE то последния дата может и не войти, здесь по умолчанию до "31.01.2003 00:00:00"включительно!!!


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо