Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2008, 21:55   #1
Killbrum
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 206
По умолчанию Locate

Здраствуйте! Вот пишу БД на делфи. И возникла проблема. Вроде код написан правильно, но он его просто не читает. Точнее не выполняет.

Код:
if not (Form1.BookName.Locate('Фамилия', Edit1.Text)) or (Form1.BookName.Locate('Имя', Edit2.Text, [loCaseInsensitive])) or (Form1.BookName.Locate('Отчество', Edit3.Text, [loCaseInsensitive])) then
begin
Form1.BookName.AppendRecord([nil,Edit1.Text,Edit2.Text,Edit3.Text,Edit4.Text,Edit5.Text,Edit6.Text,Edit7.Text,Edit8.Text,Edit9.Text]);
Form2.Close;
Как можна исправить данную ошибку? Точнее чтоб оно делало то что я написал
Killbrum вне форума Ответить с цитированием
Старый 29.08.2008, 01:31   #2
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

if not (Form1.BookName.Locate('Фамилия', Edit1.Text,[]))
Баламут вне форума Ответить с цитированием
Старый 29.08.2008, 09:37   #3
Killbrum
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 206
По умолчанию

Нет не подходит
Killbrum вне форума Ответить с цитированием
Старый 29.08.2008, 10:23   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты можешь проверить какой из Locate не работает? Похоже что все они ничего не находят, значит критерий поиска неверен.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.08.2008, 11:44   #5
Killbrum
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 206
По умолчанию

Результат трасировки:
Оно доходит до процесса проверки. И проверяет. Посколько у меня стоит там if not и я ввел одинаковые имя и фамилии оно должно перепрыгнуть на else но оно прыгает на begin и добавляет запись
Killbrum вне форума Ответить с цитированием
Старый 29.08.2008, 13:01   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ы-ы-ы... Так там еще и else?! А предупредить заранее что лень было?

Теперь понятно - условие неверно, скорее всего потому что в первом Locate ты не поставил [loCaseInsensitive]
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.08.2008, 13:12   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

скобок не хватает - Not относится только к ПЕРВОМУ locate!!!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.08.2008, 13:52   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Not относится только к ПЕРВОМУ locate!
Верно, я этого не заметил.

P.S. Вообще чтоб не путаться взял себе за привычку такого рода выражения обходить без not
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.08.2008, 10:25   #9
Killbrum
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 206
По умолчанию

Ребята пожалуйста помогите мне написать этот кусочек кода. А то что чтото неочень понял как это зделать...
Killbrum вне форума Ответить с цитированием
Старый 01.09.2008, 08:42   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
if Form1.BookName.Locate('Фамилия', Edit1.Text, [loCaseInsensitive]) and Form1.BookName.Locate('Имя', Edit2.Text, [loCaseInsensitive]) and Form1.BookName.Locate('Отчество', Edit3.Text, [loCaseInsensitive]) then
begin
// Код если ФИО существует.
end else begin
 Form1.BookName.AppendRecord ([nil,Edit1.Text,Edit2.Text,Edit3.Text,Edit4.Text,Edit5.Text,Edit6.Text,Edit7.Text,Edit8.Text,Edit9.Text]);
 Form2.Close;
end;
P.S. только мне почему то кажется что это код нестабильный... Для надежности придется тебе БД индексировать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Unable to locate file Febreze Компоненты Delphi 1 13.05.2008 22:12
Locate без учета регистра символов _SERGEYX_ БД в Delphi 2 09.08.2007 09:52