Главная страница
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.045 c
15-1173290878
lak/proxy/
2007-03-07 21:07
2007.04.01
знатокам CSS


15-1173035989
palva
2007-03-04 22:19
2007.04.01
Борис Стругацкий в качестве политика


4-1163427605
OMGovdan
2006-11-13 17:20
2007.04.01
Переименование файлов по маске


2-1173450839
Влад
2007-03-09 17:33
2007.04.01
Алгоритм кодирование бинарника в строку


2-1173630858
Игорек
2007-03-11 19:34
2007.04.01
Windows API