Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вычисляемое поле


Страницы:   1 2

Серый ©   (2004-12-18 14:06:00) 

Доброго времени суток.
Как мне посредствам SQL-запросов сделать так, что бы в вычисляемом поле поочереди фигурировала 1 и 2?
Например
----------- -----
|FirstField |Expr1|
|---------- |-----|
|  xxx      | 1   |
|---------- |-----|
|  yyy      | 2   |
|---------- |-----|
|  zzz      | 1   |
|---------- |-----|
     ....


GonSales   (2004-12-21 07:02:00) [1]

А если так
unit var RecordCount: integer;

onCalcFields ->
if RecordCount = 1 then RecordCount:=2 else RecordCount:=1;
  DataSet.FieldByName('MyCalc').Value := RecordCount;

onBeforeOpen -> RecordCount:=2

onBeforeScroll ->
 RecordCount := DataSet.FieldByName('MyCalc').Value;


msguns   (2004-12-20 11:49:00) [2]

А нельзя использовать событие TField.OnGetText, а в нем, собственно, юзать RecNo ?


sniknik   (2004-12-20 11:25:00) [3]

> Ты хочешь сказать это не рабочий пример?
вычисления не последовательны (от начала к концу) а по "требованию" по мере показа.
сам ответь. ;)


Johnmen   (2004-12-20 11:22:00) [4]

>GonSales   (20.12.04 11:15) [24]
>Ты хочешь сказать это не рабочий пример?

Смотря что ты подразумеваешь под "рабочий".
Лично я - это когда работает, и работает, как ожидалось. В данном случае это не так...


Соловьев   (2004-12-20 11:17:00) [5]

А зачем эта нумерация?


GonSales   (2004-12-20 11:15:00) [6]

>Johnmen
Ты хочешь сказать это не рабочий пример?


Johnmen   (2004-12-20 10:54:00) [7]

>GonSales   (20.12.04 10:46) [22]

Есть предложение типа сначала опробовать самому...


GonSales   (2004-12-20 10:46:00) [8]

в unit добавить var RecordCount: integer;
в DataSet.onBeforeOpen RecordCount:=1;
в DataSet.onCalcFields типа следующего
 DataSet.FieldByName('MyCalcFields').Value := RecordCount;
 if RecordCount = 1 then RecordCount:=2 else RecordCount:=1;


aus   (2004-12-18 16:18:00) [9]

>автоинкремент в таблице есть? от него можно считать.

Это в случае, если ни одна запись не была удалена.


sniknik   (2004-12-18 16:13:00) [10]

Серый   (18.12.04 16:05) [19]
это надо бы в самом начале, т.к. основа, от нее все зависит, все меняется. а про курсоры, если было непонятно тоже надо было выяснить (спросить), а не игнорировать.

автоинкремент в таблице есть? от него можно считать.


Серый   (2004-12-18 16:05:00) [11]

Я понял, все дело в том, что мы говорим о разных вещах. Вы о TCustomADODataSet, а я о TQuery


aus   (2004-12-18 15:58:00) [12]

TADOQuery используй для доступа к Access.
как использовать ищи в поиске.


Серый   (2004-12-18 15:29:00) [13]

Если вы говорите о TQuery, то таких свойств, для данного элемента управления - я не нашел!


aus   (2004-12-18 15:24:00) [14]

В Object Inspector
CursorLocation = clUseClient
CursorType = ctStatic


Серый   (2004-12-18 15:15:00) [15]

>или игнорируешь подсказки о типах курсора
Дело все в том, что это моя первая встреча с курсорами - и особыми навыками не блистаю.
Если вам не тяжело, вы не могли бы мне показать хоть пример, как это сделать.
>Ну вот трудность в том как что бы числа были по очереди - 1-2-1-2-1-2...
Числа могут не обязательно должны быть 1 и 2 - можно любые типа <парное>- <не парное>


aus   (2004-12-18 15:08:00) [16]

повторюсь:
или игнорируешь подсказки о типах курсора


aus   (2004-12-18 15:06:00) [17]

Боюсь, что в самом запросе не сделаешь, только Calculated Field на клиенте.
Хотя может и подскажет кто такие выкрутасы...


Серый   (2004-12-18 15:04:00) [18]

> что-то ты не так делаешь
С вами спорить не буду, я получаю постоянно -1

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(IntToStr(Query1.RecNo));
end;
Подскажите как правильно!
Заранее благодарен.


Серый   (2004-12-18 14:58:00) [19]

>Что сделать-то? Вычисляемое поле?
Ну вот же я писал -

----------- -----
|FirstField |Expr1|
|---------- |-----|
|  xxx     | 1   |
|---------- |-----|
|  yyy     | 2   |
|---------- |-----|
|  zzz     | 1   |
|---------- |-----|
Приведу даже структуру таблици

id       - (Счетчик)
FullNum  - Integer
ShNum    - Integer
Date     - Date
и выбираю я полный номер газеты (FullNum) - и думаю сгенерить запросик, у которого будет еще и вычисляемое поле - для дальнейшего использования. Ну вот трудность в том как что бы числа были по очереди - 1-2-1-2-1-2...


aus   (2004-12-18 14:56:00) [20]

Неправда!
Я же использовал RecNo и не раз, именно с Access, что-то ты не так делаешь, или игнорируешь подсказки о типах курсора.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо