Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 02.06.2012
Сообщений: 17
1

Заполнение бд через adoquery

25.04.2015, 20:57. Показов 1470. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Делаю заполнение бд access из delphi.Всего 4 таблицы, 3 из них связаны с первой по ключу. Ключ главной ='ключ' ключи остальных ='сотрудник' К каждой таблице идет свой adoqure. При вызове формы на создание пишу код
Delphi
1
2
3
4
5
6
7
8
procedure Tfmain.Button1Click(Sender: TObject);
begin
        fDm.flich.Append; //записать в таблицу личные данные
       fDm.fadres.Append; //записать в таблицу адрес
       fDm.fphones.Append; //запись в таблицу телефон
       fDm.frabota.Append; //запись в таблицу работа
       fEditor.ShowModal;  //открыть окно заполнения
end;
В форме заполнения данные вводятся через edit. Поле ключа первой таблицы счетчик, остальные ключи. Делаю заполнение следующим кодом:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
procedure Tfeditor.Button1Click(Sender: TObject);
begin
fdm.flich.FieldByName('фамилия').AsString:=edit1.text;
fdm.flich.FieldByName('имя').AsString:=edit2.text;
fdm.flich.FieldByName('отчество').AsString:=edit3.text;
fdm.flich.FieldByName('пол').AsString:=combobox1.Text;
fdm.flich.FieldByName('сем_полож').AsBoolean:=checkbox1.checked;
fdm.flich.FieldByName('детей').AsString:=edit5.text;
fdm.flich.FieldByName('дата_рожд').AsString:=edit4.text;
fdm.flich.FieldByName('дата_пост').AsString:=edit6.text;
fdm.flich.FieldByName('стаж').AsString:=edit7.text;
fdm.flich.FieldByName('образование').AsString:=edit8.text;
fdm.flich.FieldByName('военнообязанный').AsBoolean:=checkbox2.checked;
fdm.flich.Post;
 
fdm.frabota.FieldByName('сотрудник').AsString:=fdm.flich.fieldbyname('ключ').AsString;
fdm.frabota.FieldByName('отдел').AsString:=combobox2.Text;
fdm.frabota.FieldByName('должность').AsString:=edit9.Text;
fdm.frabota.FieldByName('УК').AsString:='Дом1';
fdm.frabota.FieldByName('телефон').AsString:='7364237';
fdm.frabota.FieldByName('адрес').AsString:='hjfdh';
fdm.frabota.Post;
 
fdm.frabota.FieldByName('сотрудник').AsString:=fdm.flich.fieldbyname('ключ').AsString;
fdm.fadres.FieldByName('страна').AsString:= edit10.Text;
fdm.fadres.FieldByName('город').AsString:=edit11.Text;
fdm.fadres.FieldByName('дом_адрес').AsString:=edit12.Text;
fdm.fadres.Post;
 
fdm.fphones.FieldByName('сотрудник').AsString:=fdm.flich.fieldbyname('ключ').AsString;
fdm.fphones.FieldByName('телефон').AsString:=edit13.Text;
fdm.fphones.FieldByName('примечание').AsString:=combobox3.Text;
fdm.fphones.Post;
 
Close;
end;
Возникает такая ошибка, Что я делаю не так? :
Миниатюры
Заполнение бд через adoquery  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2015, 20:57
Ответы с готовыми решениями:

Как в делфи добавить через Adoquery в таблицу вещественное число, через insert
Как в делфи добавить через Adoquery в таблицу вещественное число, через insert. При добавлении у...

Поиск через ADOQuery
Здравствуйте, после компиляции данного кода после нажатия кнопки ничего не происходит. До этого...

Фильтрация В БД через ADOQuery
Помогите сделать фильтрацию, с поиском по фамилии, таблица Access Button+Edit нужен код)

Запросы к БД через ADOQuery
Прошу помощи в нахождении и исправлении ошибки. Существует проект Delphi связанный с БД Access, в...

4
1074 / 987 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
25.04.2015, 21:22 2
После вызова метода Post датасет автоматом переводится в состояние dsBrowser, т.е. происходит выход из состояния добавления данных.
Для последующей записи нужно опять вызвать Append, Insert или Edit компонента frabota.

Или, скорее, в приведенном фрагменте описка:
Delphi
1
2
  fdm.frabota.FieldByName('сотрудник').AsString:=...; //строка не нужна
  fdm.fadres.FieldByName('страна').AsString:= edit10.Text;
0
0 / 0 / 0
Регистрация: 02.06.2012
Сообщений: 17
25.04.2015, 21:26  [ТС] 3
так это же разные adoquery
0
1074 / 987 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
25.04.2015, 21:27 4
Цитата Сообщение от studenti Посмотреть сообщение
так это же разные adoquery
Вот именно. И чего делают разные компоненты в одном месте?
1
0 / 0 / 0
Регистрация: 02.06.2012
Сообщений: 17
25.04.2015, 21:35  [ТС] 5
все заработало. спасибо)
0
25.04.2015, 21:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2015, 21:35
Помогаю со студенческими работами здесь

Поиск через adoquery
соединила mysql delphi при помощи adoconnec,adotable,datasource.теперь хочу сделать вкладку...

Запросы через ADOQuery
В общем есть БД в MS SQL SERVER и ADOQuery на форме в Delphi. В общем, хочется сделать возможность...

Добавление записи через adoquery
Привет я новичек в разработки приложении по запросам в adoquery, можно сказать только начинаю до...

Фильтрация по дате через AdoQuery
Доброе время суток, подскажите пожалуйста, как выполнить фильтрацию по дате в bggrid. По текстовым...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru