Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 3
Всего онлайн: 3
Зарегистрировано юзеров: 6619
Комментариев на сайте: 650
Новый юзер: Dysonetn



Последние комментарии
c
dealrattKi прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
Это действительно радует меня. --- Бесподобное сообщение скачать fifa, скачать фифа а также [url=http://15fifa.ru/novosti-fifa-15]fifa 15 последние новости[/url] скачать фифа
intatryadebra прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
Revival RO is best free ro populair ragnarok online private server founded in 2017 2018. Revival pvp big free Ragnarok server is an online exciting free MMORPG called ragnarok online, it a fun server for MMORPG gamers in ASIA. This is a top 10 ragnarok online private server thats high on the list and top ranking with massive players online. We have many players from Asia like Malaysia, Indonesia, Philippines, Thailand, Singapore, China, Hong Kong All these players are here to play free private ragnarok online server and battle players all around the world. They want to collect the best items and gear to be strongest in War of Emperium, War of Emperium are guild wars in this free RO Server. You can play this game on android phone or tablet or pc client. Enjoy And have fun. ragnarok online server http://bit.ly/2tKyawS

Урок 32 - Объединение всего изученного про базы данных

   В этом уроке мы объединим все, что прошли ранее.

Для начала нам нужно создать пустую таблицу "кадры" с набором полей: "Имя, Фамилия, Отчество, Телефон, Статус". Всё точно также как это делали в прошлом уроке.

Таблица


   Также возьмём за основу пример программы из прошлого урока, добавим 3 кнопки и проверим нашу таблицу:

Таблица


   Мы напишем программу для полноценного управления базой данных (добавление, редактирование, удаление). Добавим новую форму и положим на неё следующие компоненты:

Вторая форма


   Форма готова и чтоб начать задавать свойства нам нужно подключить 2 юнит к 1 юниту, потому что без этого мы не можем обратится к первой форме из второй. Делается это очень просто, создаем обработчик события OnClick на 1 кнопке:
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Show; // Вызываем что-нибудь из 1 формы
end;
   И у нас вылезет вот такое окно:

Добавить во второй юнит первый?


   Нажимаем ОК и первая форма подключается ко второй, можно использовать её свойства. Всем DBEdit'ам и BDComboBox1 свойство DataSource зададим как Form1.DataSource1, а DataField как "Имя", "Фамилия", "Отчество", "Телефон", "Статус" соответственно. Далее настроим еще одно свойство у DBComboBox1, кликаем на Items и заполняем его как на рисунке:

Items у DBComboBox1


   Теперь нам надо изменить наш ранее созданный обработчик события на кнопке "ОК", стираем там все что есть и пишем новый код:
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.ADOQuery1.Post; // Фиксируем изменения
Close;  // Закрываем форму
end;
   И сразу же создадим обработчик события на кнопке "Добавить" на первой форме:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show; // Показываем вторую форму
ADOQuery1.Insert; // Добавляем строку
end;
   У нас опять вылезет сообщение о том что надо добавить первый юнит ко второму, соглашаемся, компилируем и добавляем:

Добавлине


   Теперь можно заполнять базу данных. Удаляются значения так, создаем обработчик события кнопки "Удалить" на первой форме:
procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery1.Delete; // Удаляем элемент
end;
   Все, выделенная строка исчезает. Также легко можно изменить строку, создаем обработчик события кнопки "Изменить":
procedure TForm1.Button2Click(Sender: TObject);
begin
Form2.Show; // Показываем вторую форму
end;
   У нас просто показывается вторая форма и выделенную строку можно изменять.

   Теперь представим что наша база данных состоит из тысячи строки и нам надо найти одну единственную, эта задача решается поиском строки, это мы сейчас и сделаем. Кидаем на форму компонент StatusBar и 2 раза кликаем на неё, в открывшемся окне создаем новую панель и закрываем. Создаем глобальную переменную fs: String и в обработчике события OnKeyPress DBGrid1 пишем код:
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
fs:= fs + Key; // Прибавляем символ нажатой клавиши к искомому слову
DBGrid1.DataSource.DataSet.Locate('Имя', fs, [loPartialKey]); // Выполняем поиск в столбце "Имя" 
StatusBar1.Panels.Items[0].Text:= 'Ищем: ' + fs; // выводим что мы ввели
end;
   И что бы во время печатания слова мы случайно не изменили значение в таблице надо установит свойство dgRowSelect у DBGrid1, которое находится в списке Options на True. Все поиск у нас есть, давайте его опробуем, запускаем программу и вводим "ми":

Поиск слова `ми`


   И выделяется "Мигель", Вводим "мих", выделяется "Михаил":

Поиск слова `мих`


Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 2 Мая 2013
Просмотров:

Урок 31 - Продолжение работы с базами данных Урок 33 - Автовыключатель компьютера

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил(а): FallenRu [Новичок] Дата: 2013-06-01
А как создать поиск (если нету adoquary, а есть ado table) ?поподробней если не сложно с *.locate




аватар Добавил(а): FallenRu [Новичок] Дата: 2013-06-01
Уже не надо))




аватар Добавил(а): mikkylovejoe [Новичок] Дата: 2013-06-20
А как сделать так что б таблица таблица сама подвигалась влево, а то все время самому приходится её двигать.




аватар Добавил(а): s-kozelsk [Новичок] Дата: 2018-03-20
Подскажите кто-нибудь, что делать если при запуске не могу ничего ввести в dbEdit (Readonly = false, Enebled = true, Datasource настроил)?