Главная страница
    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-1440002554
Той
2015-08-19 19:42
2017.04.16
Как узнать все методы имеющиеся в объекте OleVariant ?


2-1440148888
lewka
2015-08-21 12:21
2017.04.16
BorderStyle для MDIForm


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


2-1440748056
АИК
2015-08-28 10:47
2017.04.16
Отправка документа на отдельный принтер


2-1441016318
lerandivan
2015-08-31 13:18
2017.04.16
Загрузка данных из текстового файла в StringGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский