Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Название темы включает слова - "Помогите", "Спасите", "Срочно"
Название темы не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте >>>правила <<< и заново правильно создайте тему.
 
Опции темы
Старый 20.02.2013, 17:47   #1
SW00001
Пользователь
 
Регистрация: 21.01.2013
Сообщений: 39
Репутация: 10
По умолчанию Как можно вывести данные из всех форм в БД

Здравствуйте. Ну собственно вопрос указан в самой теме Как можно вывести данные из всех форм в БД в DBGrid.
Ну например вводим в Edit фамилию или любое другое значение( и из всех форм в БД выбирались записи в которых есть это значение).
Помогите организовать это в программе, желательно ввод данных через Edit, а вывод в DBGrid...если можете добавьте это в программу и напишите тут пояснения.
Вложения
Тип файла: rar БД.rar (490.0 Кб, 9 просмотров)
SW00001 вне форума  
Старый 20.02.2013, 18:04   #2
Yurk@
ПрофессионалДжуниор
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Адрес: Украина, г. Днепропетровск
Сообщений: 1,100
Репутация: 351

icq: 433559969
skype: vys.yurka
По умолчанию

что подразумевается под
Цитата:
вывести данные из всех форм в БД
??
если нужнонайти это значение во всех таблицах:
1. получить список таблиц
2. проходясь по каждой таблице получить список полей в таблице
3. получив список полей искать требуемое значение в каждлом поле в отдельности

а если нужно в одной таблице в определенном поле найти все эти значения - тогда SQL в помощь
__________________
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума  
Старый 20.02.2013, 18:09   #3
SW00001
Пользователь
 
Регистрация: 21.01.2013
Сообщений: 39
Репутация: 10
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
что подразумевается под ??
если нужнонайти это значение во всех таблицах:
1. получить список таблиц
2. проходясь по каждой таблице получить список полей в таблице
3. получив список полей искать требуемое значение в каждлом поле в отдельности

а если нужно в одной таблице в определенном поле найти все эти значения - тогда SQL в помощь
проходясь по каждой таблице, получить список полей в таблицах в которых есть это значение...
Например ввели год обучения 1992, такой год есть в форме2,3,6 вот эти поля выводятся в DBGrid.
SW00001 вне форума  
Старый 20.02.2013, 18:25   #4
Yurk@
ПрофессионалДжуниор
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Адрес: Украина, г. Днепропетровск
Сообщений: 1,100
Репутация: 351

icq: 433559969
skype: vys.yurka
По умолчанию

ну в такой случае "двойка" за составление структуры БД.
ну, а алгоритм действий я уже описал выше
ps. или показывай структуру БД - может сможем помочь в упрощении
__________________
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума  
Старый 20.02.2013, 18:46   #5
SW00001
Пользователь
 
Регистрация: 21.01.2013
Сообщений: 39
Репутация: 10
По умолчанию

Если бы я знал как и что прописывать, я бы сюда не писал...смысл писать мне что бы чтото сделал если я этого незнаю?
БД есть в архиве, там просто формы с таблицами...какую структуру ещё нужно?
SW00001 вне форума  
Старый 20.02.2013, 19:11   #6
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,815
Репутация: 6850
По умолчанию

Цитата:
проходясь по каждой таблице, получить список полей в таблицах в которых есть это значение...
Это не так просто. Придется проходится по всем таблицам в цикле по всем полям у которых тип соответствует искомому.
Ты какие компоненты используешь?
__________________
I'm learning to live...
Stilet вне форума  
Старый 20.02.2013, 19:19   #7
SW00001
Пользователь
 
Регистрация: 21.01.2013
Сообщений: 39
Репутация: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это не так просто. Придется проходится по всем таблицам в цикле по всем полям у которых тип соответствует искомому.
Ты какие компоненты используешь?
Как понять какие компоненты?
Мне тут идею подкинули...создать форму(вывод) сделать связь 1 ко многим...и уже по ней сделать запрос, она будет искать из всех таблиц и выводить данные.
Но я незнаю как это организовать. И вообще возможно ли это?

В начале темы я скинул архив с БД...там всё есть. Хотелось бы чтобы в Edit вводились данные и по этим данным уже выводились в DBgrid всё что нашло.

Чтобы не создавать тему спрошу ещё кое что.
Как можно вывести на печать например данные из формы в которой есть Лейблы и Эдиты с данными из БД?
Чтобы печатались и текст в лейблах и то что написано в эдитах

Последний раз редактировалось Stilet; 20.02.2013 в 22:32.
SW00001 вне форума  
Старый 20.02.2013, 22:41   #8
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,815
Репутация: 6850
По умолчанию

Думаю тебе пригодится вот такая функция:
Код:
  procedure seekk(ds:TTable);
  var i:integer;
  begin
    with dc do begin
     First;
     while not eof do begin
      for i:=0 to FieldCount-1 do begin
       if Fields[i].DataType=ftString then begin
         if Fields[i].AsString='ФИО' then begin
           // Тут чето делаем ибо нашли нужную запись
         end;
       end;
      end;
      Next;
     end;
    end;
  end;
В нее в цикле передается обьект таблицы, который по очередности подключается к разным таблицам. Сам цикл может выглядеть так:
Код:
Database1.GetTableNames(tables,false);
for i:=0 to Tables.Count-1 do begin
 Table1.TableName:=Tables[i];
 Table1.Active:=true;
 seekk(Table1);
 Table1.Active:=false;
end;
Компоненты: TDatabase,TTable.
В примере учтена работа только со строковыми полями. Методика медленная.
__________________
I'm learning to live...
Stilet вне форума  
Старый 21.02.2013, 00:18   #9
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,872
Репутация: 6688
По умолчанию

А может и не надо BDE использовать и Table в цикле активизировать? ADOConnection тоже этим методом выдернет список таблиц. + ADOX вроде позволяет список полей и их типов для таблицы из ACCESS выдернуть. Не пробовал правда, но если прокатит, то скорее всего быстрей будет
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 21.02.2013 в 00:20.
Аватар вне форума  
Старый 21.02.2013, 08:39   #10
Прик
Участник клуба
 
Регистрация: 08.09.2010
Сообщений: 874
Репутация: 266
По умолчанию

Цитата:
Мне тут идею подкинули...
Идея здравая. Особенно, если посмотреть как организована база данных.

Чтобы эффективно помочь, хотелось бы услышать от автора темы ответа на вопрос:
что подразумевается по термином "форма", которым в базе данных обозначены все таблицы?
А иначе, чем должны различаться данные в таблицах с именем "Форма2" и, допустим, с именем "Форма21"?

Реплика в сторону. Иметь 25 таблиц в БД с абсолютно одинаковой структурой и, тем более, где все поля текстовые - это, мягко говоря, не иметь вообще никакого представления о реляционных БД.
Но горю этому можно легко помочь, если знать, хотя бы, конечную цель этого проекта. Что за данные должны обрабатываться и хранится.
(Опять же, непонятно с какой целью в проекте созданы фреймы. Скорее, так, от балды.)
Прик вне форума  
Закрытая тема

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести данные из БД moshkin_ura PHP 2 05.04.2012 21:15
Как вывести имена всех запросов? Cave_IAR Microsoft Office Access 2 27.12.2011 17:22
Как обработать данные с форм в php Hichigo PHP 3 25.07.2010 03:39
Как вывести несколько одинаковых форм одновременно k1r1ch Общие вопросы Delphi 11 22.08.2009 18:07
Как с помощью формул можно сравнить и вывести данные kutt Microsoft Office Excel 2 24.09.2008 17:05


09:14.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.