|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.10.2010, 18:26 | #1 |
Пользователь
Регистрация: 09.10.2010
Сообщений: 10
|
Добавление в базу не повторяясь (Делфи)
Здравствуйте. Я видел однажды пример с ADO, где при добавлении записи, если в базе есть похожие то, она не добавляет. И код вроде не сложный был. А в голове он не остался. Уже что только не перепробовал, и edit и insert и т.п. update. Что-то не могу сформировать код. Подскажите пожалуйста, если знаете несложный код.
|
11.10.2010, 18:34 | #2 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
В Access есть такой тип поля - "Счетчик". Это своего рода уникальный идентификатор записи. Наличие этого поля априори исключает дублирование записей в БД. Добавьте в БД поле и поставьте его тип в "Счетчик".
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
11.10.2010, 18:39 | #3 |
Форумчанин
Регистрация: 24.09.2009
Сообщений: 264
|
Код действительно не сложный... Делал через AdoTable... Смысл таков: при добавлении записи Delphi считывает значение поля Edit и ищет совпадения по определённому столбцу базы (допустим ФИО), если совпадение есть то выдаёт ошибку, в ином случае добавляет
Код:
|
11.10.2010, 18:55 | #4 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
TaYgA, это если по одной записи добавлять, то можно так делать. А если их циклом нужно заносить по 20000? Делая проверку прога будет тормозить. Лучше все таки на стадии проектирования БД создать уникальное поле.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
11.10.2010, 20:59 | #5 | |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Цитата:
select count(*) from <table> where name = "mystring" if count > 0 then... |
|
11.10.2010, 21:18 | #6 |
Пользователь
Регистрация: 12.09.2010
Сообщений: 69
|
Надо сделать уникальный индекс Фамилия+Имя+Отчество+ДатаРождения и процедуру внесения записи post защитить try...except, чтобы обработать ошибку в случае добавления дубля.
Код:
SELECT BEST FROM LIFE
Последний раз редактировалось artemavd; 12.10.2010 в 03:31. |
11.10.2010, 21:48 | #7 | |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Цитата:
|
|
11.10.2010, 22:25 | #8 |
Пользователь
Регистрация: 09.10.2010
Сообщений: 10
|
Спасибо за ответы, мне они были важны, но!
Есть и индексное поле и все остальное. Давайте подумаем примерно над такой ситуацией. База с полями index, tovar, vid - это примерно такое (навскидку) 1|Процессор|Интел Если я буду вводить значения Процессор и AMD то все нормально. А если введу еще раз Процессор и Интел вот тут то мне и надо, чтобы запись не добавилась, либо заменились, чтобы стопятьдесятштук похожих записей не было. Мне просто нужен такой код 1,2 строчки. Просто это уже дело принципа пошло, не могу я вспомнить настолько легкий код... Где-то я брал с delphiexpert, но сейчас шарить те сайты не могу т.к. скорость 33,6 плюс деньги улетают на лету. |
12.10.2010, 12:32 | #9 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
создай в своей базе уникальный индекс по этому полю и все - дубль не добавится
|
13.10.2010, 12:15 | #10 |
Пользователь
Регистрация: 13.10.2010
Сообщений: 96
|
Здесь скорее нужен уникальный индекс по паре полей tovar, vid
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (Стив Макконнелл)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Добавление текста с русскими символами MySQL в базу | Яр|/||< (^_^) | SQL, базы данных | 5 | 03.07.2010 00:08 |
Добавление строки в базу данных из visual studio | Жендопыр | Помощь студентам | 0 | 24.07.2009 02:32 |
Случайно но не повторяясь! | uraura | Общие вопросы Delphi | 8 | 30.11.2008 19:46 |
Помогите создать базу SQL на Делфи | photozaz | БД в Delphi | 3 | 01.11.2008 20:30 |
добавление массива чисел в базу | kate158 | БД в Delphi | 3 | 24.09.2008 11:00 |