Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];

Вниз

Возвращаясь к поиску по нескольким полям сразу...   Найти похожие ветки 

 
Alexsys   (2002-07-29 20:36) [0]

Я уже спрашивал про это. И вот дошел до момента истины.
Вот код:
keyfields:="name;name_1;n_dom;n_kw";
keyvalues:=VarArrayOf([combobox1.Text, combobox2.Text, edit2.Text, edit3.text]);
if dmod.qrfiz.Locate(keyfields,keyvalues,[])=false then dmod.qrfiz.Locate("id",id1,[]);
На прогоне выдает:
Operation not applicable
Что за ошибка такая? По одному полю поиск идет нормально.
Может, я пишу что не так? Помогите, пожалуйста...


 
Jeer   (2002-07-29 22:09) [1]

Вообще-то и так достаточно
if (not *.Locate) then ..


 
Johnmen   (2002-07-30 09:16) [2]

Если тип id1 соответствующий и все указанные поля существуют и размер combobox1.Text, combobox2.Text, edit2.Text, edit3.text не превышает размерности соотв.полей, то
ты чего-то недоговариваешь...


 
Alexsys   (2002-07-30 18:53) [3]

Все именно так как и написал...
keyfields:="name;name_1;n_dom;n_kw";
keyvalues:=VarArrayOf([combobox1.Text, combobox2.Text, edit2.Text, edit3.text]);
if dmod.qrfiz.Locate(keyfields,keyvalues,[])=false then dmod.qrfiz.Locate("id",id1,[]);

На прогоне выдает:
Operation not applicable
Может знаете, что это за сообщение?
А все типы совпадают, потому что с одним полем все получается ОК (перебирал по очереди).


 
Alexsys   (2002-07-30 19:03) [4]

Кстати, у меня количество записей уже перевалило за 6000.
Межет быть проблема в этом? А тогда как решать?


 
ЮЮ   (2002-07-31 02:48) [5]

Построить дополнительный запрос и не мучиться, а Locate делать по ключевому полю. Это, кстати, позволит показать в каком-либо Gride несколько записей, одновременно удовлетворяющим критерию поиска. А Locate непосредственно в запросе кроме первой записи другие "не покажет"


 
Johnmen   (2002-07-31 10:06) [6]

Проблема в объявлении keyvalues.

Напиши так (это железно):
if not dmod.qrfiz.Locate(keyfields,VarArrayOf([combobox1.Text, combobox2.Text, edit2.Text, edit3.text]),[]) then dmod.qrfiz.Locate("id",id1,[]);



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.012 c
14-71320
Lola
2002-07-26 15:25
2002.08.22
Сегодня Международный день Сисадмина!


3-71024
Ptiza
2002-08-01 11:28
2002.08.22
Не вижу результата транзакций (FB;WinXP)


3-70954
Ruslan_55
2002-08-01 14:02
2002.08.22
Снова о добавлении записей из внешней таблицы...


6-71279
nikk
2002-06-09 01:26
2002.08.22
NmSmtp


3-71014
партизан
2002-07-31 15:33
2002.08.22
WinGate+IB





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