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

Вниз

Вычисляемое поле   Найти похожие ветки 

 
Серый   (2004-12-18 14:06) [0]

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


 
UVV ©   (2004-12-18 14:21) [1]

А БД нужно угадать!


 
Серый   (2004-12-18 14:28) [2]

Access.


 
aus   (2004-12-18 14:33) [3]

Используй клиентский курсор, RecNo четный-нечетный.


 
Серый   (2004-12-18 14:34) [4]

Qyery.RecNo - возвращает -1


 
sniknik ©   (2004-12-18 14:41) [5]

> Qyery.RecNo - возвращает -1
значит курсор серверный


 
Серый   (2004-12-18 14:42) [6]

Значит и надо использовать вычисляемые поля. А вот как это сделать?


 
aus   (2004-12-18 14:43) [7]

Это при серверном курсоре, а ты с помощью CursurLocation и CursorType выбери сочетание, при котором будет правильный RecNo.


 
aus   (2004-12-18 14:45) [8]

>Как мне посредствам SQL-запросов сделать так, что бы в вычисляемом поле поочереди фигурировала 1 и 2?

Что сделать-то? Вычисляемое поле?


 
Серый   (2004-12-18 14:52) [9]

>aus
>при котором будет правильный RecNo
Он не будет правильным в любом случае - так что нужно попробывать SQL-ом.
Вот ради интереса попробуйте

Query.SQL.Add("select * from <TableName>");
Query.Active := True;

и после этого проделать такое

showmessage(IntToStr(Query.RecNo));

ответ будет -1


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

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


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

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

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

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


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

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

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


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

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


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

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


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

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


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

В Object Inspector
CursorLocation = clUseClient
CursorType = ctStatic


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

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


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

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


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

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


 
sniknik ©   (2004-12-18 16:13) [20]

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

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


 
aus   (2004-12-18 16:18) [21]

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

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


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

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


 
Johnmen ©   (2004-12-20 10:54) [23]

>GonSales   (20.12.04 10:46) [22]

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


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

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


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

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


 
Johnmen ©   (2004-12-20 11:22) [26]

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

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


 
sniknik ©   (2004-12-20 11:25) [27]

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


 
msguns ©   (2004-12-20 11:49) [28]

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


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

А если так
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;



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

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

Наверх





Память: 0.51 MB
Время: 0.036 c
9-1097749443
Malefic
2004-10-14 14:24
2005.01.23
Как сделать многоуровневую карту?


4-1102053755
Rext
2004-12-03 09:02
2005.01.23
Получение списка запущенных прочессов


1-1105326484
barbar
2005-01-10 06:08
2005.01.23
Нужно нарисовать на форме порялка 1000 элементов.


3-1103503786
rosl
2004-12-20 03:49
2005.01.23
кодировка


3-1103552469
alex145
2004-12-20 17:21
2005.01.23
Текст запроса





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский