Текущий архив: 2004.04.04;
Скачать: CL | DM;
Вниз
Проблема с Locate Найти похожие ветки
← →
Евген © (2004-03-04 18:01) [0]Господа, подскажите пожалуйста где грабли?
Перед вставкой записи проверяю на наличие одноименной:
if FormMain.ProizvoditelDataSet.Locate("P_NAME", Edit.Text, [loPartialKey]) then
begin
end;
Кампилятор выдает ошибку "Undeclared identifier "loPartialKey""
и следом "Incompatible types: "TLocateOptions" and "Integer" ".
Блин, ну где там Integer!!!??? Что характерно в других формах этот метод работает.
← →
TransparentGhost (2004-03-04 18:06) [1]Uses DB;
← →
Zacho © (2004-03-04 19:43) [2]А создать уникальный индекс и не париться с такими "проблемами" не судьба ?
И кстати, либо "одноименной", либо [loPartialKey]
Ты уж определись, что именно тебе надо.
← →
Евген © (2004-03-04 19:56) [3]
> TransparentGhost
Огромное спасибо!
> Zacho ©
Сумничал, да? Полегчало?
← →
Zacho © (2004-03-04 20:20) [4]Не сумничал, а подсказал правильный способ. Хочешь - делай Locate, на действительно серьезных базах тебе это еще аукнется.
И действительно, задавай вопросы нормально, не зря я тебя спросил про "одноименной" и [loPartialKey]. Я не телепат, а твоя формулировка вопроса далеко не однозначна.
А "умничать" мне без надобности. У меня подобные вопросы не возникают. И не потому, что я "слишком умный", а потому, что на такие вопросы я в первую очередь ищу (и нахожу) ответы в документации/учебниках, а не форумах, и не трачу чужое время на решение таких вопросов.
← →
Zacho © (2004-03-04 20:48) [5]2 Евген © :
И еще добавлю : Неужто надо много ума, чтобы найти в каком модуле есть декларация TLocateOptions ? Нет, обязательно надо в форуме спросить. А сделать пару тычков мышью и несколько нажатий на клавиши - это слишком сложно для крутого программера ;-P
← →
VID © (2004-03-04 21:10) [6]To Zacho: чувак, ты мне хоть и помог недавно с отображением и скрытием бэнда в отчёте, но здесь ты зря на автора сабжа наезжаешь.. форум есть форум - все имеют право высказываться...
вот собствено всё что я хотел сказать.
← →
Zacho © (2004-03-04 21:32) [7]2 VID © :
Ну и вот. Он высказался - и я высказался.
А за пост Zacho © (04.03.04 20:48) [5] - могу принести извинения, действительно не стоило наезжать. Хотя, может ему это полезно будет. Например, поиском в файлах пользоваться научится.
Еще небольшая просьба: не называй меня "чувак".
← →
VID © (2004-03-04 22:26) [8]>>Еще небольшая просьба: не называй меня "чувак".
Ладно, не обессудь, чувак ) ;)))
шутка :)
← →
Deniz © (2004-03-05 07:06) [9]Поругайте и меня, но с сообщением
Кампилятор выдает ошибку "Undeclared identifier "loPartialKey"" просить форум???
Вспоминается задача, "Как поймать льва в пустыне" и как разные программисты ее решают.
Для Delphi: программист лезет в инет и ищет компонент, который ловит льва в пустыне :-)
Для C++: Находим камень в пустыне, строим вокруг него забор, называем камень львом :-) это так для прикола(там еще много для всяких языков), так вот, когда я прочитал все эти приколы, улыбнулся и подумал, неужели так оно и есть? Чувствуется это ПРАВДА, а где же "метод народного тыка", попробовать самому и т.д.
Вобщем, никого не хотел обидеть. Просто иногда надо немного подумать, перевести сообщение компилятора, и еще раз подумать. А еще Delphi умеет вот что, ставишь курсор на слово, нажимаешь F1 и ... о счастье!
← →
SPIRIT © (2004-03-05 07:49) [10]Методом тыка ? Мне знакомый принес исходники диплома .. так я там такое извращенство нашел. У него такая же "проблема" c Locate была, а инета, как раз, не было (ф1 пользоваться не умеет). Так он завел булеву функцию в модуле, в котором база описана и в ней Locate делал. А из другого модуля функцию вызывал.
← →
Евген © (2004-03-05 11:51) [11]
> Deniz ©
Ошибки кампилятора я привел для того чтобы была полная картина, F1 я давить умею, и получаю справку по Locate, а какой модуль в uses добавлять для Locate я непомню (если хочешь, незнаю). Обращабсь я к этому методу в датасете из другой формы.
Народ, вы извините, но я непонимаю зачем разводить этот шум? Вот TransparentGhost ответил кратко и по существу. Еще раз ему спасибо! Ниужели никто не впвдал в состояние ступора после 8 часов сидения за компом?
← →
Anatoly Podgoretsky © (2004-03-05 11:55) [12]Не очень похоже что ты умеешь, я попробовал давить и у меня получилось.
Нет просто мы делаем перерывы согласно требованиям охраны труда.
← →
Johnmen © (2004-03-05 12:01) [13]По-моему в ступорном состоянии человек не может давить кнопы - в общем, и выходить в инет - в частности...
:)
← →
Никто (2004-03-05 12:28) [14]> создать уникальный индекс
Бывают случаи, когда индекс инкапсулируется именно такими проверками. Например, в ADO + MSJet + *.mdb при нарушении уникальности по индексу выдается сообщение типа: "Нарушение уникальности записи. Попробуйте выполнить следующие действия: переопределить индекс, изменить вводимые данные и т.д., и т.п.". Для конечного пользователя это сообщение - мало информативно. Он не будет индексы переопределять. Для него важнее знать, в каком поле он допустил повтор. В описанном случае этой информации нет. (Вспоминаю первые компиляторы Pascal: на любую ошибку в любой строке они просто писали: Error).
Кто предложит лучшее решение проблемы, вместо Locate (или дополнительных запросов)?
P.S. Может, в IB такой проблемы нет. Не знаю.
← →
Zacho © (2004-03-05 20:53) [15]В IB такой проблемы действительно нет. В тексте сообщения об ошибке будет вся необходимая информация.
Я уже привел решение проблемы (правда автор топика, до сих пор этого не понимает). Уникальный индекс и все !!! А если для кого-то парсинг сообщения об ошибке (и обработка исключений) проблема - RTFM учебники.
Заранее извеняюсь :) за излишне резкий тон. Просто у меня сейчас хреновое настроение :)
2 Евген © : Да, "TransparentGhost ответил кратко и по существу", но если ты воспользуешься только его ответом - ждут тебя в недалеком будущем матерки от пользователей твоей системы.
← →
kaif © (2004-03-06 17:29) [16]Зря ломаются копья. Просто автор вопроса думает только об ошибке компиляции, а Zacho, возможно, разглядел гораздо более серьезную и опасную ошибку. А ошибке компиляции просто не придал значения. И правильно сделал.
TransparentGhost точно понял, что хочет автор вопроса и ограничился лаконичным ответом.
Автор зря стал прикалывать Zacho. Если Вы пришли к косметологу с маленькой язвочкой и просите его подобрать подходящий по цвету крем, то не стоит обижаться на другого косметолога, который, по счастью оказавшись врачом, сразу поставил вероятный диагноз - твердый шанкр. И при этом забыл, что вам крем нужен был, а не диагноз.
Может в том, что Zacho говорит, есть смысл?
Я не настаиваю, конечно... Но на диагноз типа твердого шанкра (сифилис) всегда имеет смысл хотя бы обратить внимание... А то потом проблемы могут возникнуть более серьезные. Особенно, когда в сети сразу несколько юзеров одинаковую запись вставляют и уповают на Locate, как средство от дубликатов.
← →
Zacho © (2004-03-08 01:37) [17]Боюсь, что все равно он (Евген © ) ничего не понял.. Ну, значит поймет послушав маты юзеров.. :)
← →
Johnmen © (2004-03-08 01:41) [18]>kaif © (06.03.04 17:29) [16]
Ашот, это классно !!!
Страницы: 1 вся ветка
Текущий архив: 2004.04.04;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.025 c