Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 39

Как правильно организовать добавление, редактирование записи и сохранение

02.04.2010, 18:57. Показов 4755. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер! Имеется следующая загвоздка в решении задачи..подскажите пожалуйста если сможете.
Имеется компонент AdoQuery соединяющий 4-е таблицы. Как правильно организовать добавление, редактирование записи и сохранение. Использовала ADOTable Все создается великолепно, а с AdoQuery метод "Post" вообще отказывает работать
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.04.2010, 18:57
Ответы с готовыми решениями:

Как сделать добавление/редактирование/удаление записи в dbgrid?
подскажите, пожалуйста, как сделать добавление/редактирование/удаление записи в dbgrid? проект и базу прикрепляю. и еще такой...

Добавление и редактирование записи
Добрый день. Необходимо чтобы при добавлении записи, можно было выбрать группу и это значение сохранялось до тех, пор пока пользователь...

Добавление, редактирование, удаление новой записи в таблицу
ПОдскажите как добавить новую запись в таблицу пожалуйста У меня таблица из 56-ти человек и надо добавить еще. Пробовал через DBEdit, но...

9
 Аватар для NemiroFFyo
70 / 70 / 3
Регистрация: 29.09.2009
Сообщений: 530
02.04.2010, 20:43
Albinusha,
Цитата Сообщение от Albinusha Посмотреть сообщение
компонент AdoQuery соединяющий 4-е таблицы
подробнее можно? и ошибки в студию.
0
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 39
02.04.2010, 20:56  [ТС]
Имеется таблица :Товары:характеристика, номер, дата поставки, стоимость. Еще есть таблица наименование: код, наименование продукта и производитель: код и фирма_производитель.

Я организую запрос, где происходит слияние всех таблиц...(всего таблиц 3 (раннее произошла опечатка)) в одну- товары. Я написала следующий запрос:
SQL
1
2
SELECT *
FROM tovar,naim,proizv
Единственное, что у меня не получается так это: добавление, редактирование и сохранение данных
Ошибка вот какого плана
Миниатюры
Как правильно организовать добавление, редактирование записи и сохранение  
0
57 / 57 / 10
Регистрация: 27.02.2010
Сообщений: 282
02.04.2010, 22:19
Ввод и редактирование данных можно организовать через эдиты... Становишься на запись ДБГриде в эдиты выводится информация... Нажимаешь кнопку редактировать-можешь редактировать записи после чего нажимаешь сохранить и выполняется SQL - запрос обновления данных(Update)
Нажимаешь кнопочку создать новую запись-эдиты очищаются и ты вводишь данные и опять нажав сохранить выполняешь SQL - запрос вставки данных в базу данных(Insert into...)
0
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 39
03.04.2010, 07:47  [ТС]
а вы бы не могла привести примерчик
0
57 / 57 / 10
Регистрация: 27.02.2010
Сообщений: 282
03.04.2010, 08:14
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
37
38
39
40
41
42
procedure TForm1.bbEditClick(Sender: TObject);
begin
  Edit1.Enabled := True;
  bbSave.Tag := 1;
end;
 
procedure TForm1.bbNewClick(Sender: TObject);
begin
  Edit1.Text := '';
  Edit1.Enabled := True;
  bbSave.Tag := 2;
end;
 
procedure TForm1.bbSaveClick(Sender: TObject);
begin
  if bbSave.Tag =1 then
  begin
    ADOQuery1.Active := False;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('Update table1 set pole1 = ' + '''' + Edit1.Text + '''');
    ADOQuery1.ExecSQL;
  end;
  if bbSave.Tag =1 then
  begin
    ADOQuery1.Active := False;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('Insert into table1 (pole1) values (' + '''' + Edit1.Text + ''''+ ')');
    ADOQuery1.ExecSQL;
  end;
  bbSave.Tag := 0;
  Edit1.Enabled := False;
  ADOQueryDBGrid.Active := False;
  ADOQueryDBGrid.Active := True;
end;
 
procedure TForm1.bbCancelClick(Sender: TObject);
begin
  bbSave.Tag := 0;
  Edit1.Enabled := False;
  ADOQueryDBGrid.Active := False;
  ADOQueryDBGrid.Active := True;
end;
Что-то типа этого
0
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 39
03.04.2010, 13:39  [ТС]
все поняла я...огромное спасибо..осталось только одно, чтоб препод утвердил

Добавлено через 2 часа 37 минут
Еще хотела задать вопрос "по ходу пьесы" так сказать. Я новичок в программировании. Подскажите пожалуйста, как сделать так : чтоб не вводить допустим наименование продукта, при добавлении записи возможно было нажать на кнопку (напротив наименования), где откроется табличка со всеми наименованиями продуктов, и выбрав там необходимое, данные записались в dbedit.
0
57 / 57 / 10
Регистрация: 27.02.2010
Сообщений: 282
03.04.2010, 14:47
Используйте комбобокс
что Вы вообще делаете
1
1 / 1 / 0
Регистрация: 29.03.2010
Сообщений: 16
03.04.2010, 19:20
вместо Edit1.Text можешь использовать DBLookupComboBox1.Text
предварительно в свойствах DBLookupComboBox1 указать откуда он будет брать значения(тоесть в базе можешь создать отдельную таблицу с наименованием продукта и в неё вписать нужные тебе значения).

либо просто использовать обычный Combobox. в его свойствах в значении "Items" указать твои наименоавния продуктов. Каждое наименование в новой строке. И тогда уже в коде добавления или изменения записи вписать ComboBox1.Text соответственно.


я например добавляю новые записи вот так:

процедура на нажатие кнопки:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
if (Edit1.Text<>'') and (Edit2.Text<>'') and (Edit3.Text<>'') and (Edit4.Text<>'') then //проверяем введены ли значения в Едиты, если введены, то
begin
Form1.DataSource2.DataSet.Insert; //вставляем новую запись
Form1.DataSource2.DataSet.FieldByName('column1').Value:=Form4.Edit1.Text; //column - это название столбца в таблице
Form1.DataSource2.DataSet.FieldByName('column2').Value:=Form4.Edit2.Text;
Form1.DataSource2.DataSet.FieldByName('column3').Value:=Form4.Edit3.Text;
Form1.DataSource2.DataSet.FieldByName('column4').Value:=Form4.DBLookupComboBox1.Text;
Form1.DataSource2.DataSet.FieldByName('column5').Value:=Form4.Edit4.Text;
Form1.DataSource2.DataSet.Post;
end
else begin
           MessageDlg('Заполните все поля!',mtWarning, [mbOK], 0)
end;
естественно компонент подключения "DataSource2" у тебя может быть другой.
1
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 88
25.05.2013, 15:17
а вот у меня есть ограничение-максимум 9 edit-ов но вот если открываб бд в ней таблица-и всего 5 столбцов-как последние не заполнять? ну т е скрыть их

мне как условием описать можно (выражением математическим) если 5-то 5 строк редактирования если 3 то 3?
и как не через конкретные названия полей а через column name?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.05.2013, 15:17
Помогаю со студенческими работами здесь

Как правильно организовать добавление элементов в массив
Есть такая задачка: а) Есть класс А с статик массивом aDestroy: public class A { public static var aDestroy:Array = ; ... ...

Как правильно организовать проверку на отсутствие или существование записи в mysql
Вопрос в следующем как организовать проверку на отсутствие или существование записи в mysql? Есть таблица: И нужно перенаправлять...

DataGridView редактирование, добавление и сохранение
Всем привет. Ситуация следующая. Есть форма &quot;Договоры&quot; , далее нажимаю кнопку редактировать и открываю форму &quot;Спецификация&quot;...

Добавление, редактирование и удаление записи из файла
Помогите решить пожалуйста 3 вариант задачи, не могу ни как понять. В лабораторной работе разработать меню, позволяющее: - создавать...

Сохранение при добавление записи
У меня при добавлений записи не хочет сохранять её в БД ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru