Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка на повтор 
:(
    Опции темы
SnowSin
Дата 11.3.2010, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 6.12.2009

Репутация: нет
Всего: нет



Здравствуйте,  нужна небольшая помощь в программе. Моя программа - не большая база данных, задали на дом, наша первая прога связанная с бд. Суть такова что я создаю таблицу, в ней 10 записей, что то типо карточки работника, в таблице 10 работников, в таблице поля - Табельный номер(ключ), фио, дата рождения, военно обязанность, специальность. В программе сделано все что нада, кроме одного, когда я хочу добавить нового человека, ввожу данные,и нажимаю сохранить должна идти проверка на то что бы Табельные номера не повторялись и вот собственно говоря я хз как это сделать

Ссылка на базу - http://ifolder.ru/16795714
Ссылка на код проги - http://ifolder.ru/16795768

Базы данных парадокс
доступ бде администратор
PM MAIL   Вверх
former
Дата 11.3.2010, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Необходимо использовать Unique Index (уникальный индекс). Он будет гарантировать  отсутствие дубликатов.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
SnowSin
Дата 12.3.2010, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 6.12.2009

Репутация: нет
Всего: нет



Не, нам нада имено проверкой. Как подсказала училка там нада делать сравнение ДБ эдита и рядом присобаченого эдита на схожесть номеров
Добавляю в базу инсертом. Вот это то уг что получилось и не работает у меня, мб подскажет кто где ошибка? (дбэдит 1 это строка где табельные номера, эдит1 тот эдит с которым сравнивается)


Код

procedure TForm1.Button2Click(Sender: TObject);
var i :integer;
begin
DBedit5.Text:=maskedit1.Text;
table1.Edit;
s:=edit1.Text;
i:=0;
table1.First;
if edit1.text<>dbedit1.text then begin
with form1.Table1 do
begin
while not Eof do begin
if (Fields[0].AsString = edit1.Text)then begin
i:=i+1;
next;
end
else
next;
end;
end;
if (i=0)  then  begin
table1.first;
z1:=1;
table1.edit;
dbedit1.Text:=edit1.Text;
table1.Post;
Button1.Visible:=false;
Button2.Visible:=false;
Button3.Visible:=false;
Button4.Visible:=false;
Button5.Visible:=false;
DBEdit1.ReadOnly:=true;
DBEdit2.ReadOnly:=true;
DBEdit3.ReadOnly:=true;
DBEdit4.ReadOnly:=true;
DBmemo1.ReadOnly:=true;
maskedit1.ReadOnly:=true;
combobox1.Enabled:=false;
DBLookupComboBox1.ReadOnly:=true;
DBmemo1.ReadOnly:=true; 
end else
begin
showmessage('Такой табельный номер уже существует');
table1.First;
edit1.clear;
edit1.SetFocus;
z1:=0;
table1.cancel;
edit1.Text:='';
edit1.Text:=dbedit1.Text;
end;

begin
table1.Post;
Button1.Visible:=false;
Button2.Visible:=false;
Button3.Visible:=false;
Button4.Visible:=false;
Button5.Visible:=false;
DBEdit1.ReadOnly:=true;
DBEdit2.ReadOnly:=true;
DBEdit3.ReadOnly:=true;
DBEdit4.ReadOnly:=true;
DBmemo1.ReadOnly:=true;
maskedit1.ReadOnly:=true;
combobox1.Enabled:=false;
DBLookupComboBox1.ReadOnly:=true;
DBmemo1.ReadOnly:=true;
end;
end;
end;



PM MAIL   Вверх
pseud
Дата 12.3.2010, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Код

procedure TForm1.Button2Click(Sender: TObject);
var
  s: string;
begin
  s := Edit1.Text;
  with TQuery.Create(Database1) do
  try
    SQL.Text := 'select count(t.*) from имя_таблицы t where t.поле_табельный_номер = ' + QuotedStr(s);
    Active := True;
    if Fields[0].AsInteger > 0 then
    begin
      ShowMessage('Такой табельный номер уже существует');
      Exit;
    end;
  finally
    Free;
  end;
  {ЗДЕСЬ ПРОИЗВОДИМ ВСТАВКУ}
end;



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0474 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.