Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа метода Locate 
:(
    Опции темы
14SatanA88
Дата 23.7.2011, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 1
Всего: 5



Цитата

не сойдёт


почему нет?

если Locate не может помочь (как в данном случае, просто глючит), то например
Код

DataM.PredmetsTeached.ExecSQL;
if DataM.PredmetsTeached.RecordCount <> 0 then ShowMessage('Есть поле');


то же самое, что и 
Код

if DataM.PredmetsTeached.Locate('LinkToPredmets', 1, []) then  ShowMessage('Есть поле');


просто кода больше будет
PM MAIL ICQ   Вверх
Akella
Дата 23.7.2011, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



я не понимаю, зачем использовать медленный locate, если есть быстрый lookup smile

Добавлено через 2 минуты и 4 секунды
Цитата(14SatanA88 @  23.7.2011,  15:40 Найти цитируемый пост)
RecordCount


Цитата(14SatanA88 @  23.7.2011,  15:40 Найти цитируемый пост)
Есть поле

 smile по-моему у тебя каша в голове, и почитать что-либо интересное и полезное ты не хочешь, а хочешь упёрто проверять наличие записи методом locate, а наличие поля проверять с помощью RecordCount

Это знаешь как называется? Это называется "Арфы нет? Возьмите бубен!".
PM MAIL   Вверх
14SatanA88
Дата 23.7.2011, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 1
Всего: 5



Цитата(Akella @  23.7.2011,  17:17 Найти цитируемый пост)
Есть поле

я имел в виду запись. а ShowMessage('Есть поле'); взял из поста топикстартера. так что все в порядке здесь

Цитата(Akella @  23.7.2011,  17:17 Найти цитируемый пост)
по-моему у тебя каша в голове

отнюдь нет, я знаю, что я говорю.
а ты уже начинаешь оскорблять.

по-моему, то что нужно топикстартеру и не получается методом Locate (опять же, из-за его странных глюков), можно сделать другим способом.

PM MAIL ICQ   Вверх
PsiMagistr
Дата 24.7.2011, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



Дорогие ребята, спасибо. Я не ожидал, что такая дискуссия развернется.

Locate пришлось оставить... Не работает, хоть ты убейся. Не знаю в чем дело. Задача вкратце стояла такая:

Есть таблица (AdoTable) PredmetsTeached и таблица  Predmets. 

Таблица Predmets выведена в Grid

У таблицы  PredmetsTeached есть поле LinkToPredmets, а у таблицы  Predmets поле Key

При выделении в гриде записи из таблицы   Predmets и нажатии на кнопку курсор таблицы  PredmetsTeached  должен перейти на такую запись, где ее поле LinkToPredmets равно полю Key у таблицы  Predmets 

Попытка написать 

Код

procedure TfrmNastroyki.BitBtn1Click(Sender: TObject);
begin
DataM.PredmetsTeached.First;
DataM.PredmetsTeached.Locate('LinkToPredmets',DataM.Predmets.FieldByName('Key').AsInteger);
end;
 

Проваливается.

Попытка написать переход в цикле:

Код

procedure TfrmNastroyki.BitBtn1Click(Sender: TObject);
var i:integer;
begin
DataM.PredmetsTeached.First;
for i := 1 to DataM.PredmetsTeached.RecordCount  do
begin
if DataM.PredmetsTeached.FieldByName('LinkToPredmets').AsInteger =  DataM.Predmets.FieldByName('Key').AsInteger then
break
else
DataM.PredmetsTeached.Next;
end;
 

Проходит успешно. Хотя я лично воспользовался запросом Квери...  (Q2 квери-объект)


Код

procedure TfrmMagazin.cmdKupitClick(Sender: TObject);
begin
DataM.Q2.Active:=False;
DataM.Q2.SQL.Clear;
DataM.Q2.SQL.Add('select * from TeachedPredmets where LinkToPers=:Pers and LinkToPredmets=:Predmet');
DataM.Q2.Parameters.ParamByName('Pers').Value := DataM.Heroes.FieldByName('Key').AsInteger;
DataM.Q2.Parameters.ParamByName('Predmet').Value := DataM.Predmets.FieldByName('Key').AsInteger;
DataM.Q2.Active:=True;




if DataM.Heroes.FieldByName('Деньги').AsInteger >= StrToInt(LGold.Caption) then
begin
if DataM.Q2.RecordCount > 0 then
begin
DataM.Q2.Edit;
DataM.Q2.FieldByName('Number').AsInteger:=DataM.Q2.FieldByName('Number').AsInteger+StrToIntDef(TKol.Text,1);
DataM.Q2.Post;
DataM.PredmetsTeached.Refresh;
end
else

begin
DataM.PredmetsTeached.Append;
DataM.PredmetsTeached.FieldByName('LinkToPers').AsInteger:=DataM.Heroes.FieldByName('Key').AsInteger;
DataM.PredmetsTeached.FieldByName('LinkToPredmets').AsInteger:=DataM.Predmets.FieldByName('Key').AsInteger;
DataM.PredmetsTeached.FieldByName('Number').AsInteger:=DataM.PredmetsTeached.FieldByName('Number').AsInteger+StrToIntDef(TKol.Text,1);
DataM.PredmetsTeached.Post;
end;
DataM.Heroes.Edit;
DataM.Heroes.FieldByName('Деньги').AsInteger:=DataM.Heroes.FieldByName('Деньги').AsInteger- StrToInt(LGold.Caption);
DataM.Heroes.Post;
end
else ShowMessage('Не хватает денег!');
end;



Поставленные задачи это в принципе выполняет... Но никак не отвечает на вопрос о странной НЕработе локейта.


Какие могут быть соображения?






Это сообщение отредактировал(а) PsiMagistr - 24.7.2011, 10:44


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
14SatanA88
Дата 24.7.2011, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 1
Всего: 5



http://stackoverflow.com/questions/790493/...ound-for-locate

возможно здесь есть решение.
но надо проверять.

Это сообщение отредактировал(а) 14SatanA88 - 24.7.2011, 16:39
PM MAIL ICQ   Вверх
PsiMagistr
Дата 24.7.2011, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



14SatanA88, Спасибо большое.


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
14SatanA88
Дата 24.7.2011, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 1
Всего: 5



не за что
если разберешься, обязательно поделись со всеми.

а то я из-за этого Locate целый рабочий день код лопатил )
PM MAIL ICQ   Вверх
PsiMagistr
Дата 24.7.2011, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



14SatanA88, 
Akella, 

Ребята, хотите я свою игру выложу? С исходниками. Там конечно несуразностей много, но вполне рабочая. Типа ролевки-боевки. Я напрочь отказался от ини-файлов.


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
14SatanA88
Дата 24.7.2011, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 1
Всего: 5



Цитата(PsiMagistr @  24.7.2011,  16:42 Найти цитируемый пост)
Ребята, хотите я свою игру выложу?


почему бы и нет?
PM MAIL ICQ   Вверх
PsiMagistr
Дата 24.7.2011, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



14SatanA88, 

Самого боя еще нет. Но монстриков уже можно мутузить. Монстрики есть правда не на всех локациях.


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
14SatanA88
Дата 24.7.2011, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 1
Всего: 5



ок
PM MAIL ICQ   Вверх
PsiMagistr
Дата 24.7.2011, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



http://www.fayloobmennik.net/821302

Держите без исходников пока, они доровые 32 метра, а так маленький экзе.

Добавлено через 5 минут и 56 секунд
Что уже работает.

1) Передвижение по локациям.

2) Можно выучить заклинания. Их обучение зависит от интеллекта. и денег персонажа.

3) Монстры есть только на первых 3х локациях.

4) Настройки персонажа открываются щелчком по аватаре.

5)  Для подвески заклинания на рефлекс выбираем вкладку заклятья...

6) Чтобы выучить 1ое заклинание поднимите интеллект до 3.






--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
14SatanA88
Дата 24.7.2011, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 1
Всего: 5



ну что ж, будем гамать.

развивай навыки, удачи тебе.

и если разберешься с Locate, отпости.

Это сообщение отредактировал(а) 14SatanA88 - 24.7.2011, 17:21
PM MAIL ICQ   Вверх
PsiMagistr
Дата 24.7.2011, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



14SatanA88,  у тебя скайп есть?


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
14SatanA88
Дата 24.7.2011, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 1
Всего: 5



PsiMagistr, нету
мы оффтопим уже. переходи в ЛС. 

тему закрывай, если вопрос решен.
PM MAIL ICQ   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.4195 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.