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

Редактирование и сортировка

18.12.2014, 00:36. Показов 463. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток всем, кто может отзовитесь пожалуйста, дело в том что я могу редактировать программы но сам их писать ну ни к селу ни к городу, "знаю хреновый программист, если это вообще можно как таковым назвать)))" и по этому прошу помощи у знающих людей. Вообщем есть кусок программы в которой надо сделать редактирование базы данных и по возможности сортировку. Вот прога: BD.rar
Если есть у кого минутка другая и кому не сложно то подскажите как это все реализовать, заранее огромное спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.12.2014, 00:36
Ответы с готовыми решениями:

Редактирование и сортировка
Ситуация следующая, устроился в организацию, тут кто то давным-давно написал прогу на дельфях, и...

Сортировка, редактирование и добавление записей в БД
Здравтвуйте, а как сортировать записи поиск и фильтрация с помощью SQL-запросов Можете написать...

Сортировка\редактирование\удаление бинарного файла
Люди помогите пожалуйста... В бинарном файле у меня находятся сведения о нуждающихся в пособии....

Сортировка, удаление, редактирование записей в listview
Есть 2 формы: на первой listview, по кнопке добавить открывается вторая форма, вносятся данные из...

4
0 / 0 / 2
Регистрация: 23.09.2012
Сообщений: 130
18.12.2014, 00:45  [ТС] 2
Прокатит что то вроде этого но под мой вариант?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.Button3Click(Sender: TObject); {Редактирование записей}
begin
ADOQuery1.Active:=false;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE Таблица1');
ADOQuery1.SQL.Add('SET TovarName='+'"'+ Edit1.Text+'"'+
                                 ',Price='+Edit2.Text+
                                 ',Sklad='+Edit3.Text);
ADOQuery1.SQL.Add('WHERE IDCode='+IntToStr(X));
ADOQuery1.ExecSQL;
end;
 
end.
Добавлено через 1 минуту
Только вот вместо просто Edit желательно использовать TDBEdit или это не особо то имеет значение?

Добавлено через 4 минуты
Или как то так?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
begin
   ADOQuery2.SQL.Clear;
   ADOQuery2.SQL.Add('INSERT INTO [Студенты] ([Студент], [Группа], [Предмет], [Баллы], [Преподаватель])');
   ADOQuery2.SQL.Add('VALUES ( :Param1, :Param2, :Param3, :Param4, :Param5)');
   ADOQuery2.Parameters.Refresh;
   ADOQuery2.Parameters[0].Value:=Edit6.Text;
   ADOQuery2.Parameters[1].Value:=Edit7.Text;
   ADOQuery2.Parameters[2].Value:=Edit8.Text;
   ADOQuery2.Parameters[3].Value:=Edit9.Text;
   ADOQuery2.Parameters[4].Value:=Edit10.Text;
   ADOQuery2.ExecSQL;
   ADOQuery1.Requery();
end;
Это правда код по добавлению но если Insert на Update заменить ну и подредактировать?
Извиняюсь за всю тупость которую могу щас написать) просто у меня щас 3:45 ночи)))
0
0 / 0 / 2
Регистрация: 23.09.2012
Сообщений: 130
18.12.2014, 05:22  [ТС] 3
Вот еще более менее подредактировал BD.rar Сам код
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, XPMan, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls,
  Buttons, ComCtrls;
 
type
  TForm1 = class(TForm)
    DBNavigator1: TDBNavigator;
    DBGrid1: TDBGrid;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit15: TEdit;
    Edit16: TEdit;
    Edit17: TEdit;
    TabSheet3: TTabSheet;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Button2: TButton;
    Edit12: TEdit;
    Edit13: TEdit;
    Edit14: TEdit;
    TabSheet4: TTabSheet;
    Edit11: TEdit;
    Button3: TButton;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    TabSheet2: TTabSheet;
    Edit18: TEdit;
    Edit19: TEdit;
    Edit20: TEdit;
    Edit21: TEdit;
    Edit22: TEdit;
    Edit23: TEdit;
    Edit24: TEdit;
    Edit25: TEdit;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Label28: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    Button1: TButton;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    ADOQuery2: TADOQuery;
    procedure Edit5Change(Sender: TObject);
    procedure Edit4Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Edit15Change(Sender: TObject);
    procedure Edit16Change(Sender: TObject);
    procedure Edit17Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
     private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
 
procedure TForm1.Button5Click(Sender: TObject);
begin
Close;
end;
 
procedure TForm1.Edit1Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT* FROM Informaciya_o_vrachax');
ADOQuery1.SQL.Add('WHERE [№Vracha] LIKE '''+ '%' +Edit1.Text+ '%' +'''');
ADOQuery1.Open;
end;
 
 
procedure TForm1.Edit2Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT* FROM Informaciya_o_vrachax');
ADOQuery1.SQL.Add('WHERE [Familiya] LIKE '''+ '%' +Edit2.Text+ '%' +'''');
ADOQuery1.Open;
end;
 
procedure TForm1.Edit3Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT* FROM Informaciya_o_vrachax');
ADOQuery1.SQL.Add('WHERE [Imya] LIKE '''+ '%' +Edit3.Text+ '%' +'''');
ADOQuery1.Open;
end;
 
procedure TForm1.Edit4Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT* FROM Informaciya_o_vrachax');
ADOQuery1.SQL.Add('WHERE [Otchastvo] LIKE '''+ '%' +Edit4.Text+ '%' +'''');
ADOQuery1.Open;
end;
 
 
procedure TForm1.Edit5Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT* FROM Informaciya_o_vrachax');
ADOQuery1.SQL.Add('WHERE [Kategoriya] LIKE '''+ '%' +Edit5.Text+ '%' +'''');
ADOQuery1.Open;
end;
 
 
 
procedure TForm1.Button2Click(Sender: TObject);
begin
   ADOQuery2.SQL.Clear;
   ADOQuery2.SQL.Add('INSERT INTO [Informaciya_o_vrachax] ([№Vracha], [Familiya], [Imya], [Otchastvo], [Kategoriya], [Adress], [Staj_raboti], [Data_rojdeniya])');
   ADOQuery2.SQL.Add('VALUES ( :Param1, :Param2, :Param3, :Param4, :Param5, :Param6, :Param7, :Param8)');
   ADOQuery2.Parameters.Refresh;
   ADOQuery2.Parameters[0].Value:=Edit6.Text;
   ADOQuery2.Parameters[1].Value:=Edit7.Text;
   ADOQuery2.Parameters[2].Value:=Edit8.Text;
   ADOQuery2.Parameters[3].Value:=Edit9.Text;
   ADOQuery2.Parameters[4].Value:=Edit10.Text;
   ADOQuery2.Parameters[5].Value:=Edit12.Text;
   ADOQuery2.Parameters[6].Value:=Edit13.Text;
   ADOQuery2.Parameters[7].Value:=Edit14.Text;
   ADOQuery2.ExecSQL;
   ADOQuery1.Requery();
   ADOQuery1.Last;
end;
 
 
procedure TForm1.Button3Click(Sender: TObject);
var pos:longint;
begin
   ADOQuery2.SQL.Clear;
   ADOQuery2.SQL.Add('SELECT * FROM [Informaciya_o_vrachax] WHERE №Vracha= :Param1');
   ADOQuery2.Parameters.Refresh;
   ADOQuery2.Parameters[0].Value:=Edit11.Text;
   ADOQuery2.Open;
   if ADOQuery2.RecordCount=0 then ShowMessage('Записи с таким №Vracha не существует')
   else
      begin
         ADOQuery2.Close;
         ADOQuery2.SQL.Clear;
         ADOQuery2.SQL.Add('DELETE FROM [Informaciya_o_vrachax] WHERE №Vracha= :Param1');
         ADOQuery2.Parameters.Refresh;
         ADOQuery2.Parameters[0].Value:=Edit11.Text;
         ADOQuery2.ExecSQL;
         pos:=ADOQuery1.RecNo;
         ADOQuery1.Requery();
         ADOQuery1.RecNo:=pos;
      end;
end;
procedure TForm1.Edit15Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT* FROM Informaciya_o_vrachax');
ADOQuery1.SQL.Add('WHERE [Adress] LIKE '''+ '%' +Edit15.Text+ '%' +'''');
ADOQuery1.Open;
end;
 
procedure TForm1.Edit16Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT* FROM Informaciya_o_vrachax');
ADOQuery1.SQL.Add('WHERE [Staj_raboti] LIKE '''+ '%' +Edit16.Text+ '%' +'''');
ADOQuery1.Open;
end;
 
procedure TForm1.Edit17Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT* FROM Informaciya_o_vrachax');
ADOQuery1.SQL.Add('WHERE [Data_rojdeniya] LIKE '''+ '%' +Edit17.Text+ '%' +'''');
ADOQuery1.Open;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery2.Active:=false;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('UPDATE Informaciya_o_vrachax');
ADOQuery2.SQL.Add('SET №Vracha='+'"'+ Edit18.Text+'"'+',Familiya='+Edit19.Text+',Imya='+Edit20.Text+',Otchastvo='+Edit21.Text+',Kategoriya='+Edit22.Text+',Adress='+Edit23.Text+',Staj_raboti='+Edit24.Text+',Data_rojdeniya='+Edit25.Text);
ADOQuery2.ExecSQL;
end;
 
end.
Так вроде все норм но при добавлении или редактировании проблемы с индексами, поправите кто нить а то не пойму как?
0
0 / 0 / 2
Регистрация: 23.09.2012
Сообщений: 130
18.12.2014, 07:24  [ТС] 4
Ау народ есть кто живой? помогите пожалуйста
0
1075 / 988 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
18.12.2014, 08:03 5
Номер врача и индексированное поле - должны быть отдельными полями. Нельзя допускать редактировать индексированное поле.
Индексированное поле лучше сделать типа счетчик. Тогда аксесс автоматом будет назначать значения этого поля и дубликатных значений не будет (а, скорее всего, из-за этого могут быть "проблемы с индексами").

Запрос UPDATE предполагает наличие условия, по которому происходит выборка той строки, где должно произойти обновление данных. Т.е. в этом запросе нужно еще добавить слово WHERE с последующим условием.
Например, по ID врача (этого поля, как выше показано, еще нет).
Можно было бы по номеру врача, но нет гарантии, что среди них не будет дубликатных.
А так как показано в коде модуля, обновление произойдет во всех существующих записях таблицы БД.

Добавлено через 15 минут
Если в таблице будет поле типа счетчик (назовем его "ID"),
то в запросе INSERT оно пропускается, т.к. будет заполнено автоматически, а в запросе UPDATE используется в условии отбора:
Delphi
1
2
3
4
5
  ADOQuery2.SQL.Add('UPDATE Informaciya_o_vrachax');
  ADOQuery2.SQL.Add('SET [№Vracha]='+'"'+ Edit18.Text+'"'+',Familiya="'+Edit19.Text+'",'); 
  ADOQuery2.SQL.Add('Imya="'+Edit20.Text+'",Otchastvo="'+Edit21.Text+'", Kategoriya="'+Edit22.Text+'",');
  ADOQuery2.SQL.Add('Adress="'+Edit23.Text+'",Staj_raboti='+Edit24.Text+',Data_rojdeniya='+Edit25.Text);
  ADOQuery2.SQL.Add('WHERE id = '+IntToStr(ADOQuery1['ID']));
0
18.12.2014, 08:03
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.12.2014, 08:03
Помогаю со студенческими работами здесь

Сортировка односвязного списка (нужно редактирование)
нужно вот что - Задание : Сортировка книг данного автора по полю год издания, то есть, вводишь...

Запрет на ручное редактирование и разрешение на программное редактирование
Добрый день, коллеги. Вопрос следующий. Возможно ли инструментами VBA установить запрет на ручное...

Сортировка выбором, сортировка вставкой, сортировка заменой, сортировка обменом ("пузырьковая" сортировка)
Создать класс, содержащий массив и реализующий алгоритмы сортировки и бинарного поиска в этом...

Блок схема.Сортировка «Пузырьком», Сортировка методом «Последовательных перестановок», Сортировка «Вставками»
Помогите, нужны блок схемы Сортировка «Вставками» Program Vstavka; uses dos; Type mass=array ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как написать микросервис на Go/Golang
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C#
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru