![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.04.2012
Сообщений: 10
|
![]()
Добрый день
Прошу вашей помощи. Как и все только учусь... (образования программиста не имею, просто для общего развития хочется уметь - любопытный я очень)))) Имею две связанные таблицы в MSAccess 2000 1) FurgonModelCatalog Id_FurgonModel - счетчик FurgonModel - string 2) FurgonGradeCatalog Id_FurgonGrade - счетчик Id_FurgonModel - integer FurgonGradePrice - integer Id_ChassisMarka - integer Id_ChassisModel - integer SQL запрос на заполнение второй таблицы: SELECT * FROM FurgonGradeCatalog WHERE Id_FurgonModel=:Id_FurgonModel в DBGrid настроена видимость только нужных колонок Если заполнять все вручную в DBGrid - все работает - но это и неудобно и не правильно. Поэтому для добавления новой записи в FurgonGradeCatalog создал отдельную модальну форму, на которой есть 2 DBLookUpComboBox и Edit в Id_ChassisMarka пытаюсь вставить DBLookUpComboBox1.KeyValue в Id_ChassisModel пытаюсь вставить DBLookUpComboBox2.KeyValue в FurgonGradePrice - Edit1.Text нужен код на кнопку BTN1 на добавление новой записи во вторую таблицу и закрытие формы. у меня ничего не получается((((( что делаю я: Код:
соответственно нужно где-то его добавить но где, если он автоматом добавляется из первой таблицы... почему не делаю через ADOTable? (кстати через ADOTable все работает) - гораздо проще сортировка фильтрация и многое другое что смог пока усвоить А еще бы совет - хороший самоучитель для совсем незнаек по SQL+Delphi (Фленов эту тему обошел стороной лишь немного зацепив...) Последний раз редактировалось Stilet; 02.04.2015 в 16:13. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 18.04.2012
Сообщений: 10
|
![]()
Решил таким образом, если есть варианты другого решения - прошу гуру подсказать
procedure TFormFurgonGradeNewChassis.BitBtn1C lick(Sender: TObject); begin DataModuleCalculator.QueryFurgonGra deCatalog.Close; DataModuleCalculator.QueryFurgonGra deCatalog.SQL.Clear; DataModuleCalculator.QueryFurgonGra deCatalog.SQL.Text:='insert into FurgonGradeCatalog(Id_FurgonModel, Id_ChassisMarka, Id_ChassisModel,FurgonGradePrice,Na cencaDilera)'+' values ('+DataModuleCalculator.QueryFurgon ModelCatalog.FieldByName('Id_Furgon Model').AsString+',:a, :b, :c, ![]() DataModuleCalculator.QueryFurgonGra deCatalog.Parameters.ParamByName('a ').Value:=DBLookupComboBox1.KeyValu e; DataModuleCalculator.QueryFurgonGra deCatalog.Parameters.ParamByName('b ').Value:=DBLookupComboBox2.KeyValu e; DataModuleCalculator.QueryFurgonGra deCatalog.Parameters.ParamByName('c ').Value:=Edit1.Text; DataModuleCalculator.QueryFurgonGra deCatalog.Parameters.ParamByName('d ').Value:=Edit2.Text; DataModuleCalculator.QueryFurgonGra deCatalog.ExecSQL; DataModuleCalculator.QueryFurgonGra deCatalog.SQL.Clear; DataModuleCalculator.QueryFurgonGra deCatalog.SQL.Text:='SELECT * FROM FurgonGradeCatalog WHERE Id_FurgonModel=:Id_FurgonModel'; DataModuleCalculator.QueryFurgonGra deCatalog.Open; FormFurgonGradeNewChassis.Close; end; |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
если уж мы работаем с параметризованным запросом, то лучше было бы все данные оформить параметрами Код:
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 18.04.2012
Сообщений: 10
|
![]()
Появилась другая проблема:
и поискал по форумам она же встречается не только у меня в DBGrid пользователю не понятны числовые Id_ для этого добавил 2 lookup поля ChassisMarka и ChassisModel, которые заполняются из связанных таблиц ChassisMarkaCatalog и ChassisModelCatalog. поле ChassisMarka отображается нормально, а вот ChassisModel часть полей заполнены, а часть пустые. Заполняются только модели от одной марки. есть ли возможность как-то это исправить? или придется переписывать SQL запрос иначе и отказаться от lookup полей? |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
ОНА (ChassisModelCatalog) ведь используется еще и для других целей кроме как быть источником LookUp полей ?
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 03.04.2015 в 11:25. |
|
![]() |
![]() |
![]() |
#7 | |
Пользователь
Регистрация: 18.04.2012
Сообщений: 10
|
![]() Цитата:
вот теперь ищу решение как без Inner Join вывести в lookup полях значения моделей для разных марок. вернее готов использовать и Inner Join только не получается сделать запрос на добавление новых записей в таблицу FurgonGradeCatalog. Inner Join использую только для выведения данных из нескольких таблиц, которые не редактируются, а только выводят информацию на экран. |
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]()
1. иметь ДВА и более "копий" одной таблицы
это не две таблицы БД, а именно два разных набора данных (DataSet) связанных с одной таблицей БД, но имеющих разные(!!) наборы строк A. для фильтра Цитата:
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 18.04.2012
Сообщений: 10
|
![]()
решил проблему немного другим методом.
поскольку lookup поля в точности повторяли текст из DBCombobox то просто удалил их и добавил да поля в которые этот самый текст и запихнул - может это не правильно но зато нет никаких лишних таблиц))) и фильтры теперь работают хорошо ))) |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Добавление записи в таблицу через таблицу | Anton911 | БД в Delphi | 0 | 14.05.2012 11:51 |
Добавление записи в таблицу | chinock | Microsoft Office Access | 2 | 24.09.2010 14:39 |
Добавление записи в таблицу | Galiska | БД в Delphi | 3 | 25.05.2010 08:07 |
Добавление записи в таблицу | folga | БД в Delphi | 4 | 21.04.2010 08:15 |
Добавление записи в таблицу (ADO) | Yura_S | БД в Delphi | 12 | 25.11.2009 19:11 |