Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1439826143
igel888
2015-08-17 18:42
2017.04.16
Вопрос по Locate


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


2-1439629079
RZD
2015-08-15 11:57
2017.04.16
Мерцает (подмаргивает) крупный текст на панели.


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


2-1438940029
vadim83
2015-08-07 12:33
2017.04.16
Строка, лучший способ сравнения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский