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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Думаю тебе пригодится вот такая функция:
Код:
  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
Сообщений: 19,061
По умолчанию

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

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

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

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести данные из БД 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