Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2014.12.21;
Скачать: [xml.tar.bz2];

Вниз

DELPHI:запрет на внесение повторных данных в таблицу БД   Найти похожие ветки 

 
Koudelka   (2013-12-01 19:41) [0]

привет, ребят. Есть вопросик по поводу запрета на внесение повторных данных в таблицу БД (Delphi, DBGrid) в режиме редактирования записи.
Код, представленный ниже, полностью рабочий, однако у меня он работает как надо только для ДОБАВЛЕНИЯ ЗАПИСИ, для РЕДАКТИРОВАНИЯ уже существующей записи он работает неправильно, т.к. он проверяет методом locate на дубликат записи, ВКЛЮЧАЯ ТЕКУЩУЮ,КОТОРУЮ МЫ В ДАННЫЙ МОМЕНТ РЕДАКТИРУЕМ, чего быть не должно! Как этого избежать? то есть ИСКЛЮЧИТЬ ИЗ ПОИСКА Locate ТЕКУЩУЮ запись, которую мы редактируем в данный момент?!  

procedure TForm1.BitBtnSAVECHANGESClick(Sender: TObject);
var LocOpts:TLocateOptions;
   LocFields: String;
   LocValues: Variant;
begin                                                        
IF (Edit1.Text = "") or (Edit2.Text = "") or (Edit3.Text = "") then ShowMessage("There is an empty field! please check!")  {предупреждение о пустых полях}    
ELSE begin
IF (DataModule2.Table6.Locate("ID_Ylici" ,  Edit1.Text , LocOpts)=True) or   {проверка на дубликат записи, вот тут и нужно исключить проверку по текущей записи}
(DataModule2.Table6.Locate("Ylica_N_doma" ,  Edit2.Text , LocOpts)=True) or
(DataModule2.Table6.Locate("Pochtovii_index" ,  Edit3.Text , LocOpts)=True)
THEN  ShowMessage("Duplicate record or ID is found. Please check and try again!")
ELSE begin
DataModule2.Table6.Edit;
DataModule2.Table6.FieldByName("ID_Ylici").AsString:=Edit1.Text;
DataModule2.Table6.FieldByName("Ylica_N_doma").AsString:=Edit2.Text;
DataModule2.Table6.FieldByName("Pochtovii_index").AsString:=Edit3.Text;
DataModule2.Table6.Post;
Edit1.Clear; Edit2.Clear; Edit3.Clear;
end;end;end;end;end;


 
[ВладОшин] ©   (2013-12-01 22:04) [1]

Это лучше сделать наложением ограничения на таблицу БД


 
Jeer ©   (2013-12-01 22:46) [2]

Переводя с греческого на арамейский, могу дополнить парой фраз на понятном ТС языке:
- может помочь уникальный индекс;
- до тех пор и пока запись не отредактирована на сервере логическим методом Post, ее вообще не существует, кроме воспаленного воображения юзера и его клиентского приложения.


 
Koudelka   (2013-12-02 00:02) [3]

Удалено модератором
Примечание: Повежливей


 
Koudelka   (2013-12-02 00:05) [4]

Необходимо осуществить проверку ключа только при его изменении(добавление нового ключа)


 
Jeer ©   (2013-12-02 01:23) [5]

Все надлежащее сказано чуть выше.
Если это вне рамок вашего понимания - читать учебники по БД.


 
Koudelka   (2013-12-02 03:14) [6]

Удалено модератором
Примечание: Я предупреждал, с этим на помойку


 
Koudelka   (2013-12-02 03:14) [7]

Удалено модератором
Примечание: Теме даун


 
brother ©   (2013-12-02 05:13) [8]

странно, что темку ущу не колуз...


 
sniknik ©   (2013-12-02 08:00) [9]

раздражают воинствующие ламеры.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2014.12.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.002 c
2-1385912465
Koudelka
2013-12-01 19:41
2014.12.21
DELPHI:запрет на внесение повторных данных в таблицу БД


15-1400609609
MBo
2014-05-20 22:13
2014.12.21
Упростить числосклонятор до полной нечитабельности


2-1386065052
allrussia
2013-12-03 14:04
2014.12.21
код VBS конвертировать в Delphi


2-1385899743
cr@nk
2013-12-01 16:09
2014.12.21
Парсер большого XML


2-1386226163
TheOwl
2013-12-05 10:49
2014.12.21
удалить из списка не дубликаты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский