Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2013, 00:55   #11
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

примерное такое ?

Код:
    with Form1.IBQuery2 do//add city too DB
      begin
        SQL.Text:='select CITY from CITY like :city';
        Params.ParamByName('city').AsString:=ComboBox1.Text;
        Open;
        if Form1.IBQuery2.RecordCount=0 then
          begin
           Form1.IBQuery5.SQL.Text:='insert into CITY (CITY) VALUES (:city)';
           Params.ParamByName('city').AsString:=ComboBox1.Text;
           Transaction.StartTransaction;
           ExecSQL;
           Transaction.Commit;
           Transaction.Active:=false;
          end;
         Transaction.Active:=false;
         Close;
      end;
Dozent вне форума Ответить с цитированием
Старый 04.01.2013, 01:00   #12
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Не, я имел ввиду хранимую SQL-процедуру. Можно еще на этой таблице сделать UNIQUE индекс по названию города, тогда при попытке вставки дубля SQL отфутболит
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.01.2013, 01:11   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
примерное такое ?
ну, насколько я понимаю, так тоже вполне можно!

и я бы прислушался к совету Аватара сделать поле city уникальным (добавить уникальный индекс на это поле).

p.s. Кстати, если Вы возьмёте KLADR, то увидите, что в нашей большой стране огромное множество населённых пунктов имеют одинаковые названия. (Их отличают по принадлежности к району, области, краю и т.д.) Вас это не пугает?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.01.2013, 11:12   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код в #11 будет отлично работать когда один пользователь. При многопользовательском он полностью не исключает возможность вставки дубля. Хотя если добавить индекс, то он пресечет это. Другое дело получим исключение и нужно аккуратно разобраться с причиной его возникновения.

ADD

Вспомнил еще одну фишку FB для таких целей - MATCHING. Правда не использовал. Посмотреть можно здесь
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 04.01.2013 в 20:56.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
зачем нужен svn:ignore sashonk Общие вопросы по Java, Java SE, Kotlin 0 03.11.2012 21:54
изза cin.ignore() не записывает 1 символ PotatoCaptain Visual C++ 2 09.01.2012 07:10
ignore empty cells Olya1985 Microsoft Office Excel 17 03.01.2011 18:36
Кнопочка Ignore this exception type работает колько для конкретного проекта? Или сразу для всех? TwiX Общие вопросы Delphi 4 12.06.2010 19:00
Insert - ? Evgenii БД в Delphi 2 06.07.2009 02:24