Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.01;
Скачать: CL | DM;

Вниз

Поиск!   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.063 c
3-1168459764
Kley
2007-01-10 23:09
2007.04.01
Поле в отчете


2-1173116922
Juri
2007-03-05 20:48
2007.04.01
mp3 не отдельным файлом


2-1173442023
AMW
2007-03-09 15:07
2007.04.01
Invalid pointer operation при FreeMem


15-1173477520
Reaktor
2007-03-10 00:58
2007.04.01
Компьютер тормоз


15-1173161727
Alkid
2007-03-06 09:15
2007.04.01
Кратифф на тему названий техники (не мой)