![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вычисляемое поле
Серый © (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, что-то ты не так делаешь, или игнорируешь подсказки о типах курсора.