Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Вниз

SQL c Where - неправильный (?) номер текущей записи...   Найти похожие ветки 

 
Apophis ©   (2004-11-06 00:35) [0]

Мастера!
Подскажите, что я делаю неправильно?

Есть набор данных Query1, DBGrid1. В Лабеле я вывожу номер текущей записи, примерно так:
Label1.Caption:= "Record"+IntToStr(Query1.RecNo)+" / "+
                IntToStr(Query1.RecordCount).
Так вот, если SQL строка "select * from table" - все показывается в гриде правильно. Но если в процессе работы я меняю SQL на "select * from table WHERE pole=1", то количество записей в наборе указывается приавильно, НО первая запись почему-то обзывается ВТОРОЙ (!), а последняя - кол-во записей в наборе ПЛЮС 1!!! То есть, RecNo=1 просто не существует!
Почему так и как сделать, чтобы все было по-человечески?

Агромное спасибо!


 
Johnmen ©   (2004-11-06 00:48) [1]

>Но если в процессе работы я меняю SQL на

Видимо что-то здесь некорректно...:)


 
Apophis ©   (2004-11-06 00:53) [2]

Johnmen
ОК. Пишу так в процессе:
....................
With Query1 do begin
Close;
SQL.Clear;
SQL.Add("select * from table where pole=1");
Open;
end;

Label1.Caption:= "Record"+IntToStr(Query1.RecNo)+" / "+
               IntToStr(Query1.RecordCount)
...................

Набор открывается (пусть 4 записи),курсор в гриде на первой строке (как и положено), но Лабеле: Record 2 / 4. Становлюсь на последнюю запись: Record 5 / 4.
Круто?

Так в чем проблема? Что еще уточнить?


 
Johnmen ©   (2004-11-06 01:01) [3]

Действительно, круто...
Попробуй после Open сделать Last-First.


 
Apophis ©   (2004-11-06 01:18) [4]

Попробовал, - НИФИГА!
И вообще, на последней записи из набора в 2 записи может показівать: Record 6 / 2.

Я ничего не понимаю! Но такое начинает происходить, когда используется УСЛОВИЕ при отборе. Когда тупо ВСЕ записи, все нормально.

So?....


 
Johnmen ©   (2004-11-06 01:49) [5]

Пипец...
:)

Абстрактные мысли:
1. Порушен индексный файл (если он есть)
2. Порушена таблица.


 
Apophis ©   (2004-11-06 01:56) [6]

Пипец^2!

Все целое.


 
Johnmen ©   (2004-11-06 02:03) [7]

Тогда ещё могу предположить, что глючит БДЕ (просто невероятно), или не всё договариваешь...:)


 
Apophis ©   (2004-11-06 02:15) [8]

Да ты скажи, чего еще нужно договорить?!?!?!:)))


 
Johnmen ©   (2004-11-06 02:23) [9]

Если б я знал...:)

Локально ли юзается парадокс?
Используется ли TDatabase?
Попробуй сделать начисто тестовый пример...


 
Apophis ©   (2004-11-06 03:28) [10]

1.Локально
2.Да

И вот чего я заметил. RecNo в наборе С УСЛОВИЕМ возвращает не номер записи в наборе, а ее номер в физической таблице! Это почему?
Таблица имеет первичный составной ключ: Autoincrement+Field1+Field2.


 
Apophis ©   (2004-11-06 20:39) [11]

Итак, корректирую первоначальный вопрос.
Как сделать, чтобы RecNo в наборе с условием выводил номер записи  в соответствии именно с ЭТИМ набором, а не номер записи в физической таблице?


 
Anatoly Podgoretsky ©   (2004-11-07 08:36) [12]

Apophis ©   (06.11.04 20:39) [11]
Парадокс не поддерживает физические номера записей, только логические.
Номера записей в запросе зависят от движка.


 
Apophis ©   (2004-11-07 15:29) [13]

ОК, понятно. Спасибо, Anatoly Podgoretsky


 
Johnmen ©   (2004-11-08 02:10) [14]

>Anatoly Podgoretsky ©  (07.11.04 08:36) [12]

А я не понял...
Ведь у автора бардак именно в "логических" номерах НД.
И он говорит о нумерации именно НД !



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.034 c
3-1099983146
denis24
2004-11-09 09:52
2004.12.05
редактирование в гриде


1-1100774111
Vika_cc
2004-11-18 13:35
2004.12.05
frxClass.dcu


14-1100755165
X9
2004-11-18 08:19
2004.12.05
16-битная графика в Sims 2


14-1100504823
ИМХО
2004-11-15 10:47
2004.12.05
Россия - Эстония: ваш прогноз


1-1100802937
lp
2004-11-18 21:35
2004.12.05
Dbgrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский