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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод номера записи через select 
:(
    Опции темы
Delphist
  Дата 6.10.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


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

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



Скажите, пожалуйста, как с помощью select сделать так, чтобы дополнительно выводилось поле с номером строки.
Т.е. есть у нас таблица MyTable с 3-ми полями:
ROW_ID, RAW_NAME, RAW_TYPE_ID
сделав вот такой запрос:
Код

select * from MyTable where raw_type_id=2

выполнив такой запрс, мы получим список сырья с типом=2.
Хотелось бы еще, чтобы каждая запись пронумеровалась т.е. типа вот этого
Код

select inc(k) as row_num,  * from MyTable where raw_type_id=2

Возможно ли такое с использованием Firebir 2.0
На sql.ru предложили вот такой вариант:
Код

select count(1) as rn,
t1.name,
t1.age
from t t1
join t t2 on t1.name >= t2.name
group by t1.name, t1.age

но он меня не очень устраивает, мож есть другие спообы.

Это сообщение отредактировал(а) Delphist - 6.10.2008, 15:00


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Deniz
Дата 6.10.2008, 15:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Delphist, можно посмотреть в сторону for select ...


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Delphist
Дата 6.10.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


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

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



Цитата(Deniz @  6.10.2008,  16:34 Найти цитируемый пост)
Delphist, можно посмотреть в сторону for select ... 

Через хранимую процедуру как то не хотелось, потому как сортировкой а как следствие и нумерация строк хотелось бы управлять на клиенте


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Deniz
Дата 6.10.2008, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(Delphist @  6.10.2008,  18:44 Найти цитируемый пост)
потому как сортировкой а как следствие и нумерация строк хотелось бы управлять на клиенте 
так может грид какой умеет это делать? или в CDS запихнуть?


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Delphist
Дата 6.10.2008, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


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

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



[quote=Deniz, 6.10.2008,  16:59, post1660238]так может грид какой умеет это делать?
Гридом я пользуюсь EhLib'овским. И мне необходимо, чтобы номера строк хранились все же в DataSet'e.
Цитата(Deniz @  6.10.2008,  16:59 Найти цитируемый пост)

или в CDS запихнуть

Что такое CDS?



--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Akella
Дата 6.10.2008, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Добавлено @ 17:17
http://www.sql.ru/faq/faq_topic.aspx?fid=126

вспомнил
Код

select w.rdb$db_key, w.* from water w;


DB_KEY    ID    NAME    EXP

156:1    1    +    T
156:2    2    -    T
156:3    5    хол.    T
156:4    7    хол+гор.    T
156:5    10    колодец    T
156:6    11    колонке    T
156:7    20    по улице    T
156:8    81    ?    T

результаты из IBExpert

Это сообщение отредактировал(а) Akella - 7.10.2008, 16:29
PM MAIL   Вверх
Akella
Дата 6.10.2008, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



теперь в событии столбца ongettext, помоему, парсим результат и показываем всё, что справа от двоеточия

Добавлено через 1 минуту и 14 секунд
Цитата(Deniz @  6.10.2008,  15:34 Найти цитируемый пост)
Delphist, можно посмотреть в сторону for select ...

тоже прекрасный вариант с хранимкой или execute block`ом
PM MAIL   Вверх
vladimir74
Дата 6.10.2008, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Akella @  6.10.2008,  15:10 Найти цитируемый пост)
    
select w.rdb$db_key, w.* from water w;

ты уверен что это работает? я у себя на firebird посмотрел - w.rdb$db_key возвращает 16-чный код и не по порядку... надо в документации посмотреть что это....
--------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ.
PM MAIL   Вверх
vladimir74
Дата 6.10.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



ок.
только что честно спионерил с ibase.ru  smile 
Цитата

A: Это "номер записи". Для таблиц он имеет длину 8 байт (для view - 8 байт умножить на количество таблиц в запросе, если запрос содержит явный или неявный join), которые представлены в виде строки, содержащей двоичные значения. Поэтому в ряде инструментов запрос
select rdb$db_key, t.* from table t
будет возвращать "мусор" в первом столбце.

а тут правда на немецком  smile юнит как через TIBDataSet в TDBGrid показать то что как я понял хочет автор. Там написано, что это работает - но я не проверял а потому снимаю с себя всю ответственность. Если совсем не работает можно будет посмотреть что там накалякали...

--------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ.
PM MAIL   Вверх
Akella
Дата 7.10.2008, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



vladimir74, никто не пионерил smile

Добавлено через 1 минуту и 19 секунд
Цитата(vladimir74 @  6.10.2008,  17:35 Найти цитируемый пост)
w.rdb$db_key возвращает 16-чный код 

кто/что возвращает? smile  ГДЕ?
PM MAIL   Вверх
vladimir74
Дата 7.10.2008, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Akella @  7.10.2008,  14:28 Найти цитируемый пост)
vladimir74, никто не пионерил smile

неправда!! я сам и спионирил, когда ты написал!!! сам не знал про это пошел погуглям, и сам нарвался на эту статью что и дал тут ссылку!!!
Цитата(Akella @  7.10.2008,  14:28 Найти цитируемый пост)
кто/что возвращает? smile  ГДЕ? 

у меня.  Во всяком случае ничего типа я не получил.
Цитата(Akella @  6.10.2008,  15:10 Найти цитируемый пост)
156:7    20    по улице    T
156:8    81    ?    T


у меня вот такой вывод получился (кусок из моей таблицы)

Цитата

DB_KEY                         GRIDID            LEVEL    GROUPID
000000B1000884D2    40.000.570    1.082     27    
000000B1000884D8    40.000.571    24.081     27    
000000B1000C2157    40.000.263    24.067    27    

кстати заметил, что данные занесенные последовательно в одну таблицу имеют последовательный порядковый номер. Отсюда делаю вывод, что как бы небыл записан rdb$db_key там хранится не только порядковый номер записи...
Может я в чем то и не прав, не знаю....
--------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ.
PM MAIL   Вверх
Akella
Дата 7.10.2008, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(vladimir74 @  6.10.2008,  18:00 Найти цитируемый пост)
только что честно спионерил с ibase.ru 

я думаю и так понятно, что много информации берётся с ibase.ru и sql.ru  smile , это как бы сказать, первоисточник для русскоязычных программистов

Добавлено через 41 секунду
Цитата(vladimir74 @  7.10.2008,  17:08 Найти цитируемый пост)
Цитата(Akella @  7.10.2008,  14:28 Найти цитируемый пост)
кто/что возвращает? smile  ГДЕ? 

у меня.  

блин  smile  smile  smile , да я и так понял, что У ТЕБЯ!!!!!!1 smile

Добавлено через 2 минуты и 1 секунду
Цитата(vladimir74 @  7.10.2008,  17:08 Найти цитируемый пост)
DB_KEY                         GRIDID            LEVEL    GROUPID
000000B1000884D2    40.000.570    1.082     27    
000000B1000884D8    40.000.571    24.081     27    
000000B1000C2157    40.000.263    24.067    27  

Каким образом ты получил это???  В IBExpert`е?

Добавлено через 3 минуты и 22 секунды
Цитата(Akella @  6.10.2008,  17:10 Найти цитируемый пост)
результаты из IBExpert

+FB 2.0.4
PM MAIL   Вверх
vladimir74
Дата 8.10.2008, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Akella @  7.10.2008,  18:31 Найти цитируемый пост)
Каким образом ты получил это???  В IBExpert`е?

ну ладно, самого IBExpert`а я не использовал, даные получаю едентичными в SQL Manager и если пользую компаненты IB-Objects, из программы на Delphi...
Не хочешь же ты сказать что IBExpert выводит данные не так как все другие?!!!
FireBird 2.0.2 (хотя может и выше, если уже Update сделали что обещали)

Добавлено через 6 минут и 42 секунды
Цитата(Akella @  7.10.2008,  18:31 Найти цитируемый пост)
я думаю и так понятно, что много информации берётся с ibase.ru и sql.ru  smile , это как бы сказать, первоисточник для русскоязычных программистов

ну все таки одно дело прочитать и запомнить, другое - услышать что то пойти найти и запостить  smile  smile . Хотя на самом деле - поэтому я и люблю форумы, сам не знаешь где и когда выципишь что то. что сам не дочитал....

Цитата(Akella @  7.10.2008,  18:31 Найти цитируемый пост)

блин  smile  smile  smile , да я и так понял, что У ТЕБЯ!!!!!!1 smile

да ладно, а вдруг я бы писал от соседки  smile или с бара какого то  smile  В жизни всякое бывает smile 
 smile  smile  smile  smile 
--------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ.
PM MAIL   Вверх
Akella
Дата 8.10.2008, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(vladimir74 @  8.10.2008,  09:27 Найти цитируемый пост)
FireBird 2.0.2 (хотя может и выше, если уже Update сделали что обещали)

т.е. ты не уверен?

Добавлено через 21 секунду
Цитата(vladimir74 @  8.10.2008,  09:27 Найти цитируемый пост)
Не хочешь же ты сказать что IBExpert выводит данные не так как все другие?!!!

поэтому и спросил
PM MAIL   Вверх
vladimir74
Дата 9.10.2008, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Akella @  8.10.2008,  17:03 Найти цитируемый пост)
т.е. ты не уверен?

ну как тебе сказать... нет. У нас несколько серверов. Один наш тестовый, и три на котором сидят живые пользователи. Чаще всего если начальству взбредет в голову обновить версию, они делают это на тестовом сервере. Если пару недель все нормально, то идет обновление всех серверов. Все бы хорошо, но   вот последний раз я узнал об обновлении когда уже собирались обновлять все сервера....

Цитата(Akella @  8.10.2008,  17:03 Найти цитируемый пост)
поэтому и спросил 

ерунда какая то.... что то тяжело в это верится...

Добавлено через 4 минуты и 36 секунд
но если ты прав, то я лучше буду работать с тем, что дает мне реальные данные (как минимум совпадающими с тем что я прочитал на ibase.ru)
--------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

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

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

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

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

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

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


 




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


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

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