powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Вопрос по добавлению строк
13 сообщений из 13, страница 1 из 1
Вопрос по добавлению строк
    #33671041
wirg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть таблица, я вношу в столбец записи insertом, мне нужно чтобы записи были уникальными и не возникало ошибок при добавлении строчкой типа adoconnection1.execut('insert into table1(name) values ('' строка '') '). Т.е. в таблице не должно быть повторяющихся строк.
...
Рейтинг: 0 / 0
Вопрос по добавлению строк
    #33671219
wirg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите какие пути решения могут быть?
...
Рейтинг: 0 / 0
Вопрос по добавлению строк
    #33671420
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создать уникальное поле identity
...
Рейтинг: 0 / 0
Вопрос по добавлению строк
    #33671645
wirg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что обозначает identity?
...
Рейтинг: 0 / 0
Вопрос по добавлению строк
    #33671765
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Свойство поля, при установке которого в поле генерируются уникальные последовательные значения с заданным шагом.

mssql: alter table add id int identity(1,1)
access: alter table add id counter(1,1)

правда в аксесс счётчик кривоват чуток.
...
Рейтинг: 0 / 0
Вопрос по добавлению строк
    #33671823
wirg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не получается
adoconnection1.Execute('create table computers(id_comp autoincrement primary key, name varchar, id_otdel integer, CONSTRAINT FKotdelid_otdel FOREIGN KEY (id_otdel) REFERENCES otdel ON UPDATE CASCADE ON DELETE CASCADE, inv_nomer integer, id_cfg integer)');
adoconnection1.Execute('alter table computers add name identity(1,1)') ;
Говорит что неудаётся найти индекс
Что не так?
...
Рейтинг: 0 / 0
Вопрос по добавлению строк
    #33671833
wirg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если создаёшь руками затем делаешь alter table говорит Delphi выводит сообщениеЖ таблица не должна иметь больше одного счётчика
...
Рейтинг: 0 / 0
Вопрос по добавлению строк
    #33671855
wirg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что делать?
...
Рейтинг: 0 / 0
Вопрос по добавлению строк
    #33671856
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот о чём речь...

Код: plaintext
alter table computers add constraint unq unique(name)
это надо?
...
Рейтинг: 0 / 0
Вопрос по добавлению строк
    #33671887
wirg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, но кроме этого ещё хотелось бы чтобы ошибки вставки одинаковых строк игнорировались. Что нужно добавить?
...
Рейтинг: 0 / 0
Вопрос по добавлению строк
    #33671928
wirg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. как можно обойтись без try ecsept
...
Рейтинг: 0 / 0
Вопрос по добавлению строк
    #33673083
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wirgТ.е. как можно обойтись без try ecsept

Можно сделать по такому принципу, только с insert.
...
Рейтинг: 0 / 0
Вопрос по добавлению строк
    #33673904
Bug69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wirgДа, но кроме этого ещё хотелось бы чтобы ошибки вставки одинаковых строк игнорировались. Что нужно добавить?
Ошибка возникает в любом случае, так как нарушается условие ограничения (constraint). Программа не знает, что ей делать: с одной стороны нельзя, с другой - очень хочется. Для таких ситуаций необходимо создавать обработчик исключительной ситуации. Он может быть простой - просто игнорировать код, вызвавший исключение или в нем может быть реализован какой-либо сложный алгоритм. Другой вопрос - где создавать такой обработчик. На сервере или в приложении-клиенте. Все зависит от ситуации, но лучше везде. В описаном Вами случае можно предварительно проверить наличие записи с необходимым полем, но это не лучшее решение. Особенно если у таблицы есть тенденция расти и если нет индекса по этому полю. Резюме: Надо писать обработчик.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Вопрос по добавлению строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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