|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
IgorNG, ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2014, 13:25 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
descent52, я чет не понял, сейчас найду инфо про это и попробую разобраться) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2014, 13:26 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
descent52, нееее, я наверн понял, такой вариант не подходит, потому что возможно понадобится фишка такая с профилями, чтобы не допустить дубликаты профилей ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2014, 13:31 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
Claymoredescent52, нееее, я наверн понял, такой вариант не подходит, потому что возможно понадобится фишка такая с профилями, чтобы не допустить дубликаты профилей А профили то здесь каким боком? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2014, 13:35 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
IgorNG, в будущем с другой программой) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2014, 13:36 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
IgorNG, Ребята, всем респектуха, что не прошли мимо моей проблемки))))) придумал я одну фишку короче)))) вот код object (grid1.column1.text1) procedure (Valid) select count(*) as sss from years where name_year1=this.value into ARRAY AAA \\делает поиск по полям ищет дубликат при добавлении if aaa(1)>0 \\если дубликат найден this.value=" " \\то строка стирается endif \\конец а у меня в форме имеется код object (form1) procedure (destroy) SELECT years \\берем таблицу years DELETE FROM years WHERE TRIM(years.NAME_year1)= ' ' \\удаляем поле запись после закрытия формы если она пуста хэппи енд, юхууу))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2014, 13:44 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
ClaymoreIgorNG, Ребята, всем респектуха, что не прошли мимо моей проблемки))))) придумал я одну фишку короче)))) вот код object (grid1.column1.text1) procedure (Valid) select count(*) as sss from years where name_year1=this.value into ARRAY AAA \\делает поиск по полям ищет дубликат при добавлении if aaa(1)>0 \\если дубликат найден this.value=" " \\то строка стирается endif \\конец а у меня в форме имеется код object (form1) procedure (destroy) SELECT years \\берем таблицу years DELETE FROM years WHERE TRIM(years.NAME_year1)= ' ' \\удаляем поле запись после закрытия формы если она пуста хэппи енд, юхууу))))) Это не хэппи енд. Сначала ты добавляешь новую запись с id, потом в нее вводишь год с проверкой на дубликат и если такой год есть, то ты его стираешь, а потом еще и удаляешь эту запись. Логичней было бы дать возможность пользователю ввести, потом проанализировать и на основании анализа либо добавить запись, либо написать пользователю, что он либо тупой, либо невнимательный. Мне бы, как юзеру, показалось бы странным, что введенный мной текст магическим образом исчезает без объяснения причины. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2014, 14:19 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
IgorNG, Хммм, кстати да, вы правы, пожалуй я внесу кое какие корректировки: object (grid1.column1.text1) procedure (Valid) select count(*) as sss from years where name_year1=this.value into ARRAY AAA \\делает поиск по полям ищет дубликат при добавлении if aaa(1)>0 \\если дубликат найден messagebox('Такой год в таблице уже существует') this.value=" " \\то строка стирается endif \\конец ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2014, 14:34 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
IgorNG, Спасибо еще раз)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2014, 14:38 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
Я так понимаю поле символьное, тогда пользователь может написать " 2013" т.е. нажать {пробел}2013 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2014, 14:41 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
Dima T, фаак, черт, код не надежный оказался((( он начинает тупо удалять даты, когда ошибусь ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2014, 14:50 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
ClaymoreDELETE FROM years WHERE TRIM(years.NAME_year1)= ' ' \\удаляем поле запись после закрытия формы если она пуста это означает удалить все что НЕ пустое и начинается с пробела при SET EXACT OFF а при SET EXACT ON вообще ничего не удаляет замени на Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2014, 15:04 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
Dima T, Спасибо. использую твой вариант))) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 09:43 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
Claymore, кстати вот конечный код, который работает...может он говнокод, но он работает в моем случае))) значит object:grid1.column1.text1 procedure:Valid THIS.Value = alltrim(this.value) select count(*) as sss from years where name_year1=this.value into ARRAY AAA if aaa(1)>0 this.value=" " messagebox('Такой год в таблице уже существует') endif thisform.grid1.column1.text1.readonly = .T. thisform.grid1.column1.text1.style = 1 thisform.refresh ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 09:45 |
|
Как исключить добавления повторяющихся записей в таблицу?
|
|||
---|---|---|---|
#18+
Я не понял, а чем индекс типа Candidate не устраивает? Наличие такого индекса просто не даст создать запись с тем же значением ключа. Возможно, добавить в индекс FOR-условие, чтобы исключить из проверки записи, помеченные как удаленные. Ну, и надо будет озаботится отсечением ведущих пробелов в момент записи. Алгоритмы с предварительной проверкой - ущербны, поскольку не рассчитаны на многопользовательскую работу. Сценарий приводящий к дублям 1. Первый пользователь выполнил проверку 2. Второй пользователь выполнил проверку 3. Первый пользователь записал значение 4. Второй пользователь записал то же самое значение Причем под вторым пользователем может оказаться тот же самый человек просто дважды открывший приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 22:52 |
|
|
start [/forum/topic.php?fid=41&gotonew=1&tid=1582768]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 308ms |
total: | 493ms |
0 / 0 |