Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
ВнизПоиск! Найти похожие ветки
← →
Sapos © (2007-03-06 10:23) [0]Приветствую всех мастеров!
Помогите плиз. Пытаюсь организовать поиск в БД по конкретному полю, но у меня 2 таблицы связаны между собой с помощью одного индекса.
Пытаюсь применить следующий код:
Table2.SetKey;
Table2.FieldByName("Field1").AsString:=FindEdit.Text;
Table2.GotoKey;
при выполнении такого кода генерится эксепшн: Field "Field1" is not indexede and cannot be modified.
Для этого поля индекс у меня есть и если я делаю так:
Table2.IndexName:="Index_Field1";
Table2.SetKey;
Table2.FieldByName("Field1").AsString:=FindEdit.Text;
Table2.GotoKey;
то слетает тот индекс по которому у меня организована связь между таблицами, ошибки не происходит, но и результата я не получаю - ниче не находит.
Помогите, пожалуйста решить проблему!!!
← →
Плохиш © (2007-03-06 10:45) [1]Table2.Locate("Field1", FindEdit.Text, [<здесь написать то, что надо, возможные значения в справке>]);
← →
Desdechado © (2007-03-06 10:52) [2]
Table2.FieldByName("Field1").AsString:=FindEdit.Text;
Это не поиск, это изменение данных. Надеюсь, разницу чувствуешь?
← →
sniknik © (2007-03-06 11:01) [3]> Это не поиск, это изменение данных.
поведение зависит от "взведенного" перед этим флага, т.е. если бы перед было Table2.Edit; вместо Table2.SetKey; то да, это бы было изменением данных.
но как написано это не так.
← →
Desdechado © (2007-03-06 11:13) [4]Флаг-то флаг, но текст ошибки недвусмыслен.
Field "Field1" is not indexede and cannot be modified.
← →
Плохиш © (2007-03-06 11:14) [5]
> Desdechado © (06.03.07 11:13) [4]
Неправильные слова выделил, основные здесь "Field "Field1" is not indexede".
← →
Desdechado © (2007-03-06 11:20) [6]Плохиш © (06.03.07 11:14) [5]
Правильно. Раз не индексировано, значит, взведение флага не актуально, значит, попытка редактирования, а не поиска.
← →
sniknik © (2007-03-06 11:41) [7]поле индексировано, выше пример, просто нужный индекс не может быть установлен/использован для поиска т.к. другой в тоже время используется для связки...
имхо, ввиду моего плохого знания BDE.
← →
Плохиш © (2007-03-06 11:48) [8]
> Desdechado © (06.03.07 11:20) [6]
> Плохиш © (06.03.07 11:14) [5]
> Правильно. Раз не индексировано, значит, взведение флага
> не актуально, значит, попытка редактирования
Хм, сам придумал? В каком мануале написано, что при невозможности установки поиска по индексу, SetKey эквивалентно Edit? Т.к. в случае, при попытки редактирования записи без предварительного вызова Edit, текст исключения несколько иной.
← →
Desdechado © (2007-03-06 12:10) [9]> SetKey эквивалентно Edit?
Нет, конечно. Но ругается ведь не просто "нет индекса", а "нет индекса и нельзя редактировать".
Хотя Table и его методы я никогда не использую, поэтому все весьма относительно.
ЗЫ я просто решил провести логический анализ текста сообщения, а тут так всерьез приняли мои потуги ;)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c