Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
 Аватар для Elizium33
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85

Кнопка добавить с запросом

18.05.2013, 22:51. Показов 3624. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!
Помогите, пожалуйста, сделать кнопку "Добавить" с sql-запросом. Необходимо добавить данные в таблицу Zakaz, у которой есть следующие поля:Nomer_zakaza,ID_zakazchika,Tabel_no mer,Nomer_modeli,Daya_zakaza,Data_ispoln enya,Cena,Kol_vo,Summa.
Поля Nomer_zakaza, Summa заполняются автоматически. Для добавления записей служит специальная форма на которой расположены DBEdit'ы и DBLookupComboBox'ы.
Сейчас на кнопке прописано следующее:
T-SQL
1
2
Form8.Show;
DataModule3.AdoQuery4.Insert;
Раньше работал, но сейчас почему то перестал заполнять поля ID_zakazchika,Tabel_nomer,Nomer_modeli
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2013, 22:51
Ответы с готовыми решениями:

Добавить несколько строк одним запросом
есть таблица, хочу вставить несколько строк адним запросам, есть код ELT(FIELD( PREPARE вот с помощью этих функций вставить много...

Кнопка с POST запросом
Боброго времени суток, что то никак не получается сделать действие у кнопки Даже вот такое действие не работает... ...

Select с запросом из БД добавить в content
Здраствуйте! Этот код Select с запросом из БД нужно добавить в content, я сам не смог добавить выдает ошибки, поэтому прошу помочь ...

47
1 / 1 / 0
Регистрация: 18.05.2013
Сообщений: 17
19.05.2013, 10:55
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Elizium33 Посмотреть сообщение
то есть в ComboBox сначала например нужно будет записать всех мастеров? мне то надо что все бралось из базы
чтоб тадлице отображалась
0
 Аватар для VitoAcidrain
59 / 59 / 7
Регистрация: 11.03.2013
Сообщений: 191
19.05.2013, 10:58
Elizium33, код (тот что с while) выше смотрите. Я написал как ComboBox из базы заполнять. Просто вставьте соответствующий запрос для мастеров.
0
 Аватар для Elizium33
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
19.05.2013, 11:02  [ТС]
использовать просто ComboBox или DBComboBox?
0
 Аватар для VitoAcidrain
59 / 59 / 7
Регистрация: 11.03.2013
Сообщений: 191
19.05.2013, 11:03
Цитата Сообщение от Elizium33 Посмотреть сообщение
ComboBox или DBComboBox
Просто. С ним надежнее.
0
 Аватар для Elizium33
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
19.05.2013, 11:17  [ТС]
VitoAcidrain, похоже я совсем того уже ... Если я скину проект, Вы не могли бы в нём настроить 1 combobox для примера?
0
 Аватар для VitoAcidrain
59 / 59 / 7
Регистрация: 11.03.2013
Сообщений: 191
19.05.2013, 11:18
Elizium33, кидайте.
1
 Аватар для Elizium33
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
19.05.2013, 11:27  [ТС]
VitoAcidrain, спасибо. Что бы Вам долго не искать Unit3-DataModule
Unit7-таблица заказ(куда надо добавить); Unit8-форма для добавления нового заказа; ADOQuery1-используется для вывода мастеров. Ключевое поле в т.Master - Tabel_nomer
Вложения
Тип файла: rar Meb-delphi.rar (1.02 Мб, 9 просмотров)
0
 Аватар для VitoAcidrain
59 / 59 / 7
Регистрация: 11.03.2013
Сообщений: 191
19.05.2013, 11:44
Elizium33, в каком столбце таблицы мастер находится список мастеров?
0
 Аватар для Elizium33
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
19.05.2013, 11:49  [ТС]
VitoAcidrain, Master (Tabel_nomer, FIO_master, Adres, INN, Nom_strax_svid, Data_roj);
Zakaz (Nomer_zakaza, Tabel_nomer,Nomer_modeli,ID_zakazchika,D ata_zakaza,Data_ispo lnenya, Cena, Kolvo, Summa)

Добавлено через 1 минуту
ну пользователь должен видеть FIO_master,а в Zakaz добавляется Tabel_nomer
0
 Аватар для VitoAcidrain
59 / 59 / 7
Регистрация: 11.03.2013
Сообщений: 191
19.05.2013, 12:09
Elizium33, вот листинг Unit8
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
unit Unit8;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrls, Grids, DBGrids, Buttons, DB, ADODB,
  OleServer, ExcelXP, ComCtrls, DBGridEh, DBCtrlsEh, DBLookupEh;
 
type
  TForm8 = class(TForm)
    Label2: TLabel;
    Label3: TLabel;
    BitBtn1: TBitBtn;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    DBEdit2: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit3: TDBEdit;
    DBLookupComboBox1: TDBLookupComboBox;
    DBLookupComboBox2: TDBLookupComboBox;
    DBLookupComboBox3: TDBLookupComboBox;
    ComboBox1: TComboBox;
 
    procedure BitBtn1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
 
 
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form8: TForm8;
 
implementation
 
uses Unit1, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit10, Unit9,
  Unit11;
 
{$R *.dfm}
 
function GetIDMaster(master: string): Integer;   //Функция для получения ID нужного мастера
var
  Q: TADOQuery;
begin
  Q := TADOQuery.Create(Form8);
  Q.Connection := DataModule3.ADOConnection1;
  Q.Close;
  Q.SQL.Clear;
  Q.SQL.Text := 'SELECT Master.Tabel_nomer FROM Master WHERE FIO_master =:s';
  Q.Parameters.ParamByName('s').Value := master;
  Q.Open;
 
  if Q['Tabel_nomer'] <> null then
    Result := Q['Tabel_nomer']
  else
    Result := -1;
 
  Q.Free;
end;
 
procedure TForm8.FormActivate(Sender: TObject);
var
  Q: TADOQuery;  //Динамически создаем ADOQuery
begin
  {Такой же код надо написать для каждого ComboBox}
  ComboBox1.Clear;
 
  Q := TADOQuery.Create(Self);
  Q.Connection := DataModule3.ADOConnection1;
  Q.Close;
  Q.SQL.Clear;
  Q.SQL.Text := 'SELECT Master.FIO_master FROM Master';
  Q.Open;
  Q.First;
  while not Q.Eof do
    begin
      ComboBox1.Items.Add(Q['FIO_master']);
      Q.Next;
    end;
  Q.Free; // Удаляем ADOQuery
end;
 
procedure TForm8.BitBtn1Click(Sender: TObject);
var
  Q: TADOQuery;
begin
 
  Q := TADOQuery.Create(Self);
  Q.Connection := DataModule3.ADOConnection1;
  Q.Close;
  Q.SQL.Clear;
  Q.SQL.Text := 'SELECT Zakaz.* FROM Zakaz';
  Q.Open;
 
  Q.Insert;
  {Если ключевое поле не AUTO_INCREMENT, то добавить ещё для вставки ключа}
  Q['Tabel_nomer'] := GetIDMaster(ComboBox1.items[ComboBox1.ItemIndex]);
  Q['Nomer_modeli'] := {Где необходимо написать функции по примеру};
  Q['ID_zakazchika'] := ;
  Q['Data_zakaza'] := ;
  Q['Data_ispolnenya'] := ;
  Q['Cena'] := ;
  Q['Kolvo'] := ;
  Q['Summa'] := ;
 
  Q.Post;
 
  Q.Free;
end;
 
end.
1
 Аватар для Elizium33
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
19.05.2013, 12:17  [ТС]
Цитата Сообщение от VitoAcidrain Посмотреть сообщение
Q.Insert;
* {Если ключевое поле не AUTO_INCREMENT, то добавить ещё для вставки ключа}
* Q['Tabel_nomer'] := GetIDMaster(ComboBox1.items[ComboBox1.ItemIndex]);
* Q['Nomer_modeli'] := {Где необходимо написать функции по примеру};
* Q['ID_zakazchika'] := ;
* Q['Data_zakaza'] := ;
* Q['Data_ispolnenya'] := ;
* Q['Cena'] := ;
* Q['Kolvo'] := ;
* Q['Summa'] := ;
Если AUTO_INCREMENT то это не надо прописывать?

Добавлено через 3 минуты
function GetIDMaster(master: string): Integer; //Функция для получения ID нужного мастера
var
Q: TADOQuery;
begin
Q := TADOQuery.Create(Form8);
Q.Connection := DataModule3.ADOConnection1;
Q.Close;
Q.SQL.Clear;
Q.SQL.Text := 'SELECT Master.Tabel_nomer FROM Master WHERE FIO_master =:s';
Q.Parameters.ParamByName('s').Value := master;
Q.Open;

if Q['Tabel_nomer'] <> null then
Result := Q['Tabel_nomer']
else
Result := -1;

Q.Free;
end;
куда именно прописывается этот код?
0
 Аватар для VitoAcidrain
59 / 59 / 7
Регистрация: 11.03.2013
Сообщений: 191
19.05.2013, 12:19
Цитата Сообщение от Elizium33 Посмотреть сообщение
Если AUTO_INCREMENT то это не надо прописывать?
Надо, просто если ключ вы сами добавляете, то надо к этому списку ещё добавить:
Delphi
1
 Q['Nomer_zakaza'] := ;
Добавлено через 1 минуту
Цитата Сообщение от Elizium33 Посмотреть сообщение
куда именно прописывается этот код?
Туда, где я в листинге вставил.
1
 Аватар для Elizium33
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
19.05.2013, 12:24  [ТС]
VitoAcidrain, запустил проект, нажимаю "добавить" и выдал ошибку. И ComboBox пуст
0
 Аватар для Elizium33
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
19.05.2013, 12:25  [ТС]
вот такую:
Изображения
 
0
 Аватар для Elizium33
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
19.05.2013, 12:29  [ТС]
Delphi
1
2
3
4
Q.Insert;
 Q['Tabel_nomer'] := GetIDMaster(ComboBox1.items[ComboBox1.ItemIndex]);
 
  Q.Post;
для первого ComboBox прописываем только это?
0
 Аватар для VitoAcidrain
59 / 59 / 7
Регистрация: 11.03.2013
Сообщений: 191
19.05.2013, 12:43
Цитата Сообщение от Elizium33 Посмотреть сообщение
И ComboBox пуст
Цитата Сообщение от Elizium33 Посмотреть сообщение
вот такую:
Тут главное, чтобы все имена без ошибок написаны были.

Цитата Сообщение от Elizium33 Посмотреть сообщение
для первого ComboBox прописываем только это?
Да. Потом, если понадобиться, по этому же принципу будете делать другие ComboBox`ы и функции для них.
1
 Аватар для Elizium33
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
19.05.2013, 12:49  [ТС]
Везде написано Q, может быть надо заменить на ADOQuery1-для т.Мастер, ADOQuery4-т.Заказ???
0
 Аватар для VitoAcidrain
59 / 59 / 7
Регистрация: 11.03.2013
Сообщений: 191
19.05.2013, 12:55
Цитата Сообщение от Elizium33 Посмотреть сообщение
Везде написано Q
Q это ADOQuery, созданный динамически. Смысл абсолютно такой же как если использовать ADOQuery1 или ADOQuery4.
0
 Аватар для Elizium33
4 / 4 / 1
Регистрация: 16.04.2013
Сообщений: 85
19.05.2013, 12:55  [ТС]
VitoAcidrain, Вы были правы, не правильно было написано имя-FIO_master, а надо FIO_mastera. Но возникла ошибка опять
Миниатюры
Кнопка добавить с запросом  
0
 Аватар для VitoAcidrain
59 / 59 / 7
Регистрация: 11.03.2013
Сообщений: 191
19.05.2013, 13:00
Elizium33, посмотрите, все ли в порядке в таблице Payments, в колонке Nomer_zakaza. Ошибка с внешними ключами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.05.2013, 13:00

Добавить поля в ADOQuery запросом из других таблиц
Здравствуйте. Не соображу как написать запрос и как добавить запись в таблицу. У меня есть 4 таблицы: Teacher, Lesson, Class,...

Форма с POST-запросом, добавить переменную в запрос
Всем доброго времени суток. К примеру такая форма: &lt;form method=&quot;post&quot; action=&quot;add_article.php&quot;&gt; Заголовок: &lt;input...

Запросом добавить членство роли базы данных
Ситуация: 1. Добавляю пользователя в имена входа CREATE LOGIN WITH PASSWORD='444', DEFAULT_DATABASE=, DEFAULT_LANGUAGE=,...

Как правильно добавить UUID в таблицы одним запросом?
создала я значит таблицы вида CREATE TABLE users ( id UUID NOT NULL PRIMARY KEY, name VARCHAR(32) COLLATE...

Как добавить данные одним запросом в разные таблицы?
Начал делать базу. Чтобы не ошибиться с внесением данных надо пользоваться формами и запросами. Там, где поля - список значений, всё...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru