Форум: "Начинающим";
Текущий архив: 2017.04.16;
Скачать: [xml.tar.bz2];
ВнизВопрос по Locate Найти похожие ветки
← →
igel888 © (2015-08-17 18:42) [0]С помощью:
if ADOQuery1.Locate("client_id", Variant(ADOQuery2.FieldbyName("c_id").AsInteger), [loCaseInsensitive]) Then
Showmessage("Дубликат")
else
begin
ADOQuery1.insert;
ADOQuery1.FieldByName("client").AsString:=ADOQuery2.FieldByName("client");
ADOQuery1.Post;
end;
У меня происходит сначала проверка записи на дубликат, потом вставка записи.
Все работает, только проблема если я выбераю не одну а несколько записей, вставка все равно происходит не смотря на то что в некоторых из выбранных записей дубликат присутствует. Как это исправить, пожалуйста помогите очень надо (если можно без sql запроса)
P.S. я в этом совсем новичок
← →
sniknik © (2015-08-18 08:16) [1]зачем приведение типа к Variant? и параметр нечуствительности к регистру для числа лишний... просто
Locate("client_id", ADOQuery2.FieldbyName("c_id").AsInteger, loCaseInsensitive)
+ раз проверяешь то полю то почему игнорируешь его при добавлении?
FieldByName("client_id").AsInteger:= FieldByName("c_id").AsInteger;
> Все работает
не может быть, тут явная ошибка, несовпадение типа -
ADOQuery1.FieldByName("client").AsString:=ADOQuery2.FieldByName("client");
p.s. не используй ADOQuery, используй ADODataSet. + insert в ADO не работает... в основном, есть исключение, но и оно такое, что лучше избавляться. работает Append (insert при не возможности вставки тоже добавляет, но команды не равнозначны по логике, и если ожидаешь вставку... ошибка это в общем, логическая)
← →
igel888 © (2015-08-18 09:45) [2]мне нужно чтобы локейт проверял на наличие дубликатов, и поэтому я использовал вариант для сравнения id двух таблиц. А вообще вставка то происходит, но не происходит проверка несколько записей на дубликат. Тут я думаю нужен цикл, но так как у меня отсутствует знания в этом, я уже часами мучаюсь, не знаю как его правильно сделать.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2017.04.16;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.001 c