Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.04.16;
Скачать: CL | DM;

Вниз

Вопрос по 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.004 c
15-1460411018
KilkennyCat
2016-04-12 00:43
2017.04.16
12 апреля 1961 года, Ю. А. Гагарин, «Восток-1», «Байконур»


15-1460099290
DayGaykin
2016-04-08 10:08
2017.04.16
Обнаружение утечек в функции.


2-1440325683
castor
2015-08-23 13:28
2017.04.16
элементы документации


2-1440917515
K-1000
2015-08-30 09:51
2017.04.16
BOOL -> Boolean


2-1439881198
shunya
2015-08-18 09:59
2017.04.16
Ошибка в Twebbrowser