powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как сделать универсальным
18 сообщений из 18, страница 1 из 1
как сделать универсальным
    #32136258
nas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nas
Гость
Здраствуйте жители форума.
Н в прогр-й, у меня к вам такой вопрос глупо новерно
на форме ibdatabase, IBTransaction1, ibquery, dbgrid, DataSource,
из меню выбираю таблицу напр-р

procedure TGlav_Form.N3Click(Sender: TObject);
begin
IBQuery1.Active:=False;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select * from P_580546');
IBQuery1.SQL.Add('order by KOD');
IBQuery1.Active:=True;
DBGrid1.Columns[0].Title.Caption:='Код';
DBGrid1.Columns.Title.Caption:='Наименование';
ComboBox1.Items.Clear;
ComboBox1.Items.Add('Поиск по коду');
ComboBox1.Items.Add('Поиск по наименованию');
end;
procedure TGlav_Form.N4Click(Sender: TObject);
begin
IBQuery1.Active:=False;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select * from P_580547');
IBQuery1.SQL.Add('order by KOD');
IBQuery1.Active:=True;
DBGrid1.Columns[0].Title.Caption:='Код ст.';
DBGrid1.Columns.Title.Caption:='Наименование ст. ';
DBGrid1.Columns.Title.Caption:='Регном.';
DBGrid1.Columns.Title.Caption:='Регном ст. ';
ComboBox1.Items.Clear;
ComboBox1.Items.Add('Поиск по коду');
ComboBox1.Items.Add('Поиск по наименованию');
ComboBox1.Items.Add('Поиск по регном');
ComboBox1.Items.Add('Поиск по регном ст.');
end;
как можно сделать при каждой выборе из меню таблиц (таблиц у меня 20)
у всех кнопок добавление, удаления, редоктирование, просмотр
тоже помениялся код на соответств-й таблиц. мне нужно именно через кнопок, а не через навигатор
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136281
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если у тебя все поля одинаковые, то при открытии таблицы в переменную пиши ее название - потом при нажатии на кнопку изменения/удаления/.... подставляй название таблицы из этой переменной. Остальной код одинаковый
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136424
nas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nas
Гость
проблема в том что поля разные
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136428
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда никак

На каждую таблицу свою процедуру запускать - это можно одной кнопкой
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136450
nas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nas
Гость
у кого есть идея на счет этого, по другому обходить нельзя например имя таблицы выбрать не с меню а с комбобохса
Ну у кого есть идея обходить проблему , измеить прогу по другому что вы советуете
за ранее блогадарен
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136519
oleg_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял, ты используешь один Query, один Grid и один ComboBox.
Ну, ладно Grid и ComboBox, а Query - почему один для всех таблиц?!?!
Оставь один Grid и один ComboBox, а для каждой таблицы - свой IBQuery.
Будет намного удобнее!
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136531
nas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nas
Гость
если у меня количество таблиц увеличится до 150 то 150 ibquery чтоли
мне кажется это не реально
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136564
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>если у меня количество таблиц увеличится до 150 то 150 ibquery чтоли

Нереально такую структуру БД иметь, чтоб через одну форму пытаться 150 таблиц редактировать.
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136588
nas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nas
Гость
Советуте добавить 150 форм чтоль
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136599
Фотография CrazyMihey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В базу, по-моему, придётся добавить ещё одну Служебную Таблицу с описанием всех твоих таблиц. Она будет содержать поля: Русское название Таблицы (которое отображается в ComboBox е), Название соответствующей Таблицы в Базе (напр. P_580546), Её ключевое поле (для для Order by ), а также названия всяких там Титлов и строки для ComboBox а, может и ещё что-нибудь... Далее, при выборе нужной для отображения таблицы - искать нужную запись в Служебной Таблице и заполнять все поля значениями из этой записи. SQL текст для запроса построить на лету и записать в свойство единственного компонента TQuery - тоже не составит труда.
Можно, конечно держать эту информацию не в Базе, а в Коде Программы/Ini-Файле/Реестре, но это уже другая тема...
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136608
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL текст для запроса построить на лету и записать в свойство единственного компонента TQuery - тоже не составит труда.

Тока еще и запросы на изменение данных придеться строить на лету, хотя и это теоретически возможно.
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136627
Седов А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nas
Создать одну таблицу, которая будет хранить все данные.
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136631
Фотография CrazyMihey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько общих шаблонов и пару переменных с именами Таблиц и Изменяемых полей. А потом - ReplaceString() :)
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136649
Фотография CrazyMihey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не экономично и неправильно. Кроме того, что структуру этой Таблицы и ключи придётся долго утрясать с логикой Базы, это приведёт к несчётному количеству пустых полей и понизит скорость навигации по ней (Я уже не говорю о скорости обновления)
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136653
nas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nas
Гость
На чем остановиться есть какие ни будь примеры на эту тему где взять
как быть
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136666
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чего такое делаешь то? Может и не надо столько таблиц? Да еще с изменяемым их количеством.

Универсальный клиент?
...
Рейтинг: 0 / 0
как сделать универсальным
    #32136690
nas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nas
Гость
Как это началось, короче конвертироваль из FoxPro в интербасе около 200 таблиц, имя поля разные. задание такое из меню выбираем например

1) классификаторы(N1) на форме отображается таблица классификаторы.
2) виды сообщения (N2) на форме отоб таблица виды сообщения.
..................................................................................... н ное количество
n).................................................................таблица ...........................
еще на каждую таблцу должна быть кнопки на добавления, удаления, редоктирвания, Поиск,
с перво хотел на каждую таблицу отдельную форму, потом передумал столько количеств фором добавить.
решил обойтись с одним датасоурсом, ивкуери....
кто то подсказал так можно решил у вас спросить, про универсальных свойств
...
Рейтинг: 0 / 0
как сделать универсальным
    #32137136
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Погоди, тебе нужно конвертировать или редактировать? и редактировать где? в фоксе? или уже в сконвертированном IB? Если конвертировать с постоянным переездом на IB то боюсь придется переделать структуру базы... 150 таблиц... боюсь ее можно нормализовать... или боюсь с такой базой может справится только что-то из более мощных СУБД...
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как сделать универсальным
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]