powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как исключить добавления повторяющихся записей в таблицу?
16 сообщений из 41, страница 2 из 2
Как исключить добавления повторяющихся записей в таблицу?
    #38528148
Claymore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG,
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38528150
Claymore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
descent52,

я чет не понял, сейчас найду инфо про это и попробую разобраться)
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38528159
Claymore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
descent52,

нееее, я наверн понял, такой вариант не подходит, потому что возможно понадобится фишка такая с профилями, чтобы не допустить дубликаты профилей
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38528167
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Claymoredescent52,

нееее, я наверн понял, такой вариант не подходит, потому что возможно понадобится фишка такая с профилями, чтобы не допустить дубликаты профилей

А профили то здесь каким боком?
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38528172
Claymore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG,

в будущем с другой программой)
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38528190
Claymore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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)= ' ' \\удаляем поле запись после закрытия формы если она пуста

хэппи енд, юхууу)))))
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38528255
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, потом в нее вводишь год с проверкой на дубликат и если такой год есть, то ты его стираешь, а потом еще и удаляешь эту запись.
Логичней было бы дать возможность пользователю ввести, потом проанализировать и на основании анализа либо добавить запись, либо написать пользователю, что он либо тупой, либо невнимательный.
Мне бы, как юзеру, показалось бы странным, что введенный мной текст магическим образом исчезает без объяснения причины.
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38528287
Claymore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 \\конец
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38528292
Claymore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG,

Спасибо еще раз))))
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38528305
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю поле символьное, тогда пользователь может написать " 2013" т.е. нажать {пробел}2013
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38528340
Claymore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

фаак, черт, код не надежный оказался((( он начинает тупо удалять даты, когда ошибусь
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38528380
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ClaymoreDELETE FROM years WHERE TRIM(years.NAME_year1)= ' ' \\удаляем поле запись после закрытия формы если она пуста
это означает удалить все что НЕ пустое и начинается с пробела
при SET EXACT OFF
а при SET EXACT ON вообще ничего не удаляет

замени на
Код: sql
1.
DELETE FROM years WHERE empty(years.NAME_year1)
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38529160
Claymore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Спасибо. использую твой вариант)))
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38529163
Claymore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38530220
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понял, а чем индекс типа Candidate не устраивает? Наличие такого индекса просто не даст создать запись с тем же значением ключа. Возможно, добавить в индекс FOR-условие, чтобы исключить из проверки записи, помеченные как удаленные. Ну, и надо будет озаботится отсечением ведущих пробелов в момент записи.

Алгоритмы с предварительной проверкой - ущербны, поскольку не рассчитаны на многопользовательскую работу. Сценарий приводящий к дублям

1. Первый пользователь выполнил проверку
2. Второй пользователь выполнил проверку
3. Первый пользователь записал значение
4. Второй пользователь записал то же самое значение

Причем под вторым пользователем может оказаться тот же самый человек просто дважды открывший приложение.
...
Рейтинг: 0 / 0
Как исключить добавления повторяющихся записей в таблицу?
    #38540072
Claymore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

хммм, ну пока что так, а позже я постараюсь решить эту проблему, когда пойму "как её решить")
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как исключить добавления повторяющихся записей в таблицу?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]