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

Добавление в БД с проверкой

04.03.2012, 17:59. Показов 1008. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
есть БД(access,её данные выводятся на форму),в ней есть два поля (дата и время)
при каждом новом добавлении в бд,нужна проверка по этим двум полям
если совпадает и время и дата,то вывод ошибки
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2012, 17:59
Ответы с готовыми решениями:

Процедура на добавление с проверкой
Здравствуйте, решила изучить ms sql после оракла. Пишу простую процедуру. Если уже есть такая...

Добавление записи с проверкой
Задача типа: Есть какая-то таблица и к ней форма, через форму в таблицу добавляются текстовые...

Добавление записей с проверкой
Всем доброго времени суток! В БД имеется таблица в одном поле, которого необходимо заносить...

Добавление input в textarea с проверкой
Здравствуйте. Интересует функция на js или jquery Будут два input с типами 1....

11
60 / 60 / 9
Регистрация: 04.02.2012
Сообщений: 214
04.03.2012, 18:27 2
расширьте вопрос
и если добавляем новую запись необходима проверка? или при обновлении?
если можно еще скрин формы выложить
0
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 6
04.03.2012, 19:55  [ТС] 3
вот форма
Добавление в БД с проверкой

при нажатии кнопки добавить заказ должна быть какая то проверка
если дата и время такие есть в БД,то вывод ошибки
0
60 / 60 / 9
Регистрация: 04.02.2012
Сообщений: 214
04.03.2012, 20:17 4
Delphi
1
2
3
4
5
6
Table1.First;
while not Table1.EOF do begin
  if (Table1.FieldByName('date_raboti').AsString = DateToStr(DateTimePicker1.Date)) or (Table1.FieldByName('vremja_raboti').AsString = TimeToStr(DateTimePicker2.Time)) then
    // если есть, то что то делаем 
  Table1.Next;
end;
писал без делфя, могут быть ошибки. Но принцип таков
0
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 6
04.03.2012, 21:19  [ТС] 5
выдаёт ошибку,не могу понять какую

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
procedure TForm2.Button1Click(Sender: TObject);
begin
ADOTable1.Active:=False;
ADOTable1.Open;
ADOTable1.First;
while not ADOTable1.EOF do begin
if (ADOTable1.FieldByName('date_raboti').AsString = DateToStr(DateTimePicker1.Date)) or (ADOTable1.FieldByName('vremja_raboti').AsString = combobox2.Text) then
showmessage ('Äàííîå âðåìÿ çàíÿòî');
ADOTable1.Next;
ADOTable1.Close;
else begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('INSERT INTO zajavki');
ADOQuery2.SQL.Add('(vid_rabot, fio_zakaz, date_raboti, vremja_raboti, master)');
ADOQuery2.SQL.Add('VALUES(:vid_rabot, :fio_zakaz, :date_raboti, :vremja_raboti, :master)');
ADOQuery2.Parameters.ParamByName('vid_rabot').Value := combobox1.Text;
ADOQuery2.Parameters.ParamByName('fio_zakaz').Value := Edit1.Text;
ADOQuery2.Parameters.ParamByName('date_raboti').Value := DateTimePicker1.DateTime;
ADOQuery2.Parameters.ParamByName('vremja_raboti').Value := combobox2.Text;
ADOQuery2.Parameters.ParamByName('master').Value := Edit2.Text;
ADOQuery2.ExecSQL;
ADOTable1.Active:=True;
end;
end;
Добавлено через 2 минуты
то есть не могу как понять в чём ошибка
0
60 / 60 / 9
Регистрация: 04.02.2012
Сообщений: 214
04.03.2012, 21:31 6
ну сразу
Delphi
1
2
3
4
5
6
7
if (ADOTable1.FieldByName('date_raboti').AsString = DateToStr(DateTimePicker1.Date)) or (ADOTable1.FieldByName('vremja_raboti').AsString = combobox2.Text) then
  begin
    showmessage ('Данное время занято');
    exit;
  end;
// т.е. если есть совпадения тогда ничего не делаем и выходим из процедуры
ADOTable1.Next;
потом тип данных параметров должны совпадать с типом данных в БД
0
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 6
04.03.2012, 21:56  [ТС] 7
он по поводу else истерит -_-
я уже всячески перепробовала,и никак -_-
0
60 / 60 / 9
Регистрация: 04.02.2012
Сообщений: 214
04.03.2012, 22:00 8
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
procedure TForm2.Button1Click(Sender: TObject);
begin
ADOTable1.Active:=False;
ADOTable1.Open;
ADOTable1.First;
while not ADOTable1.EOF do 
  begin
    if (ADOTable1.FieldByName('date_raboti').AsString = DateToStr(DateTimePicker1.Date)) or (ADOTable1.FieldByName('vremja_raboti').AsString = combobox2.Text) then
      begin
        showmessage ('Данное время занято');
        exit;
      end;
    ADOTable1.Next;
  end;
ADOTable1.Close;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('INSERT INTO zajavki');
ADOQuery2.SQL.Add('(vid_rabot, fio_zakaz, date_raboti, vremja_raboti, master)');
ADOQuery2.SQL.Add('VALUES(:vid_rabot, :fio_zakaz, :date_raboti, :vremja_raboti, :master)');
ADOQuery2.Parameters.ParamByName('vid_rabot').Value := combobox1.Text;
ADOQuery2.Parameters.ParamByName('fio_zakaz').Value := Edit1.Text;
ADOQuery2.Parameters.ParamByName('date_raboti').Value := DateTimePicker1.DateTime;
ADOQuery2.Parameters.ParamByName('vremja_raboti').Value := combobox2.Text;
ADOQuery2.Parameters.ParamByName('master').Value := Edit2.Text;
ADOQuery2.ExecSQL;
ADOTable1.Active:=True;
end;
end;
1
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 6
04.03.2012, 22:01  [ТС] 9
и с ней и без ошибкаа
0
60 / 60 / 9
Регистрация: 04.02.2012
Сообщений: 214
04.03.2012, 22:04 10
исправил ваш код
0
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 6
04.03.2012, 22:08  [ТС] 11
и да
то,что он по 500 записей одинаковых добавляет это нормально?
мб ещё где exit какой-нибудь стоит поставить?
0
60 / 60 / 9
Регистрация: 04.02.2012
Сообщений: 214
04.03.2012, 22:18 12
в
Delphi
1
if (ADOTable1.FieldByName('date_raboti').AsString = DateToStr(DateTimePicker1.Date)) or (ADOTable1.FieldByName('vremja_raboti').AsString = combobox2.Text) then
поменяйте OR на AND

Добавлено через 4 минуты
и проверьте. запись в базу должно осуществляться вне (ниже) цикла while проверки на совпадение даты и времени
0
04.03.2012, 22:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2012, 22:18
Помогаю со студенческими работами здесь

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

Запрос на добавление с проверкой даты
Здравствуйте. Имеются 2 таблицы "Таблица1" и ее копия "Архив" В Таблице1 есть различные поля +...

Добавление данных из ListBox в ListView с проверкой
Здравствуйте, господа знатоки. Есть Listview с колонками 1,2,3. Выглядит примерно так: ---...

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


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

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