Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разные результаты при использовании WHERE 
V
    Опции темы
Antony41
Дата 12.4.2013, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Сабж. Запарился уже. знаю FireBird много не много. 
Вобще наблюдалось ли в версии 2,5 при запросах к таблицам через WHERE разные результаты?
делаю так
Код

                    SQLQuery2('SELECT * from GROUPS WHERE ID = '+IntToStr(fDataStruct.GROUPID));
                    //ShowMessage(IntToStr(fDataStruct.GROUPID));
                    if DataModule11.SQLQuery2.RecordCount <> 0 then
                      Inc(TestInc);
 

по окончанию выполняю следующее
Код

ShowMessage(IntToStr(TestInc));


Каждый раз разное кол-во записей. В момент проверки база не используется ни какой программой.

Это сообщение отредактировал(а) Antony41 - 21.4.2013, 08:11
PM MAIL   Вверх
Akina
Дата 12.4.2013, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

Репутация: 3
Всего: 453



А где у тебя тут количество записей? Ты просто проверяешь, нулевое оно или нет...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Antony41
Дата 13.4.2013, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот именно я делаю запрос в базу данных, затем проверяю если запись нашлась, то увеличить счетчик.
то есть выполняю этот запрос в цикле, и все время один и тот же, а вот по окончанию я смотрю результат, и счетчик то на единицу меньше то больше то равен и т.д.

Добавлено через 44 секунды
то есть в какой то момент он просто не получает запись, а иногда получает что за ...
PM MAIL   Вверх
password
Дата 13.4.2013, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 23.9.2008
Где: Украина, Сумы

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



Цитата

Вот именно я делаю запрос в базу данных, затем проверяю если запись нашлась, то увеличить счетчик.
то есть выполняю этот запрос в цикле


Откуда ты берешь значения: fDataStruct.GROUPID? из другой базы данных? И зачем цикл, если можно сделать все sql-ем
Код

select count(*) as kols from GROUPS WHERE ID in (select GROUPID from ...)

PM MAIL Skype   Вверх
Akella
Дата 13.4.2013, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



а ты там напиши конкретное значение
Код
SELECT * from GROUPS WHERE ID = 10


И что у тебя с feth? Может fetch происходит через раз?
PM MAIL   Вверх
Antony41
Дата 13.4.2013, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



блин причина была в задержке тоесть я в цикле через каждую сек. выполнял Application.ProcessMessages, не понятно почему так получается, но проблему решил.
А вот за это 
Код

select count(*) as kols from GROUPS WHERE ID in (select GROUPID from ...)

отдельное спасибо

Добавлено через 5 минут и 35 секунд
смотрите я получаю все записи из таблицы, затем я пробегаюсь по полям LASTDATETIME(TDateTime), и проверяю если значение которое я в данный момент прохожу в цикле входит в заданный диапазон, то тогда я начинаю уже обращение ко второй базе
тоесть например я получил значение 12.04.2013 18:05:55
и проверяю входит ли оно в диапазон дат от 01.01.2013 по 12.05.2013
Можно ли как то получить все записи одним запросом которые входят в диапазон?

Добавлено через 7 минут и 6 секунд
проще говоря я выдераю из поля значение времени и проверяю его в функции DateTimeInRange(DateStart, DateEnd, Value):Boolean 
PM MAIL   Вверх
password
Дата 13.4.2013, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 23.9.2008
Где: Украина, Сумы

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



Цитата

Можно ли как то получить все записи одним запросом которые входят в диапазон?

както так:
Код

select * from ....
where  cast(LASTDATETIME as date) between cast('01.01.2013' as date) and cast('12.05.2013' as date)

PM MAIL Skype   Вверх
Antony41
Дата 13.4.2013, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



спасибо чуть позже поэкспериментирую и отпишусь
PM MAIL   Вверх
Antony41
Дата 13.2.2014, 03:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



всё отлично раотает спасибо Вам всем за помощь.
Не совсем конечно вовремя ответил

Это сообщение отредактировал(а) Antony41 - 13.2.2014, 03:17
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

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

1. Версию InterBase (Firebird, Yaffil)

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

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

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

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




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


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

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