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

Вниз

Добавление автоинкрементного столбца   Найти похожие ветки 

 
Pascal ©   (2007-08-17 13:10) [0]

Привет всем. Помогите с проблемой!

Нужно добавить в таблицу столбец, который бы показывал порядковый номер записи.

Есть таблица t1, например:

NAME  ADDRESS   TEL
z        город_      9999
b        деревня    8888
i         деревня    3333

Какие операции нужно выполнить, что бы получить таблицу

ID  NAME  ADDRESS   TEL
1   z        город_      9999
2   b        деревня    8888
3   i         деревня    3333

Все операции проводятся только в консоли interBase.

Всем спасибо!


 
Anatoly Podgoretsky ©   (2007-08-17 13:19) [1]

> Pascal  (17.08.2007 13:10:00)  [0]

Автоинкриментный и номер записи это разные несовместимые вещи.
Номера записей поддерживают только xBase СУБД


 
Desdechado ©   (2007-08-17 13:21) [2]

ALTER TABLE
CREATE GENERATOR
CREATE TRIGGER


 
pascal ©   (2007-08-17 13:25) [3]


> Anatoly Podgoretsky ©   (17.08.07 13:19) [1]
> > Pascal  (17.08.2007 13:10:00)  [0]
>
> Автоинкриментный и номер записи это разные несовместимые
> вещи.
> Номера записей поддерживают только xBase СУБД


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


 
Desdechado ©   (2007-08-17 13:26) [4]

Это не номер записи, а ее идентификатор, первичный ключ.


 
Anatoly Podgoretsky ©   (2007-08-17 13:36) [5]

> Desdechado  (17.08.2007 13:26:04)  [4]

И это не порядковый номер, сказано только xBase


 
Anatoly Podgoretsky ©   (2007-08-17 13:37) [6]

> pascal  (17.08.2007 13:25:03)  [3]

Если оно не автоинкриментное, то Integer или его эквивалент, номера записей будешь отслеживать сам, правда это и не возможно, но все равно сам.


 
pascal ©   (2007-08-17 13:43) [7]


> Anatoly Podgoretsky ©   (17.08.07 13:36) [5]
> > Desdechado  (17.08.2007 13:26:04)  [4]
>
> И это не порядковый номер, сказано только xBase


Я пробовал такой вариант:

Создал вторую таблицу, в которой записан ряд порядковый чисел

NUM
1
2
3

и пробовал их объединить в одну таблицу, но у меня не получилось. Т.е. он выдает все возможное сочетания всех записей таблиц. Вот если бы как ни будь соединить их в единственном числе...


 
Sergey13 ©   (2007-08-17 13:48) [8]

> [7] pascal ©   (17.08.07 13:43)
> Я пробовал такой вариант:

Не исключено, что методом тыка ты найдешь таки нужный вариант. Но проще почитать учебник.

> [0] Pascal ©   (17.08.07 13:10)
> бы показывал порядковый номер записи.

Какой смысл ты вкладываешь в порядковый номер и что ждешь от его использования?


 
pavel_guzhanov ©   (2007-08-17 13:55) [9]


> Desdechado ©   (17.08.07 13:21) [2]
> ALTER TABLE
> CREATE GENERATOR
> CREATE TRIGGER


Здесь полный ответ.


 
Anatoly Podgoretsky ©   (2007-08-17 13:56) [10]

> pascal  (17.08.2007 13:43:07)  [7]

У тебя ошибка в запросе


 
pascal ©   (2007-08-17 13:57) [11]


> > [7] pascal ©   (17.08.07 13:43)
> > Я пробовал такой вариант:
>
> Не исключено, что методом тыка ты найдешь таки нужный вариант.
>  Но проще почитать учебник.
>
> > [0] Pascal ©   (17.08.07 13:10)
> > бы показывал порядковый номер записи.
>
> Какой смысл ты вкладываешь в порядковый номер и что ждешь
> от его использования?


Задача, на самом деле много сложнее. Я через ODBC работаю с базой iBase на несколько гигов. При попытке выбрать все значения вылетает исключение с ошибкой нехватки памяти. В таблицах значения индексных полей вирируются от 1 до 100 000 000 000 000 000

всего записей порядка 20 миллионов, но их индексы разброса в вышеуказанном деапозрне.  Если задать соответствие, то можно будет делать выборки по частям.

Но решение я правда уже нашел.

select * from t1 rows 1000000 to 2000000

:-)


 
Anatoly Podgoretsky ©   (2007-08-17 13:58) [12]

Вообще что хочешь сделать, пора карты раскрывать, только не надо про номер записию


 
pascal ©   (2007-08-17 14:02) [13]

спасибо за перенос в раздел начинающих. )


 
Desdechado ©   (2007-08-17 14:03) [14]

> значения индексных полей вирируются от 1 до 100 000 000 000 000 000
Что это за тип данных? И как его поддерживает ODBC?


 
Desdechado ©   (2007-08-17 14:05) [15]

> При попытке выбрать все значения вылетает исключение с ошибкой
> нехватки памяти
Обычно "все значения" не нужны. Но если очень надо, достаточно использовать однонаправленный Unidirectional датасет.


 
MsGuns ©   (2007-08-17 14:10) [16]

Если надо показывать номер текущей записи в ОТОБРАЖАЕМОМ наборе данных (полученный ЛЮБЫМ способом, но поддерживающий двунаправленный курсор), то достаточно в обработчике OnGetText ЛЮБОГО поля датасета, содержимое которого не нужно отображать, написать:

 Text := IntToStr(DataSet.RecNo);


 
MsGuns ©   (2007-08-17 14:11) [17]

Прошу прощения, не обратил внимание на фразу про консоль


 
pascal ©   (2007-08-17 14:12) [18]


> Desdechado ©   (17.08.07 14:03) [14]
> > значения индексных полей вирируются от 1 до 100 000 000
> 000 000 000
> Что это за тип данных? И как его поддерживает ODBC?


java получает их как строковые. Такие диапазоны целым числам и не снились.


 
pascal ©   (2007-08-17 14:14) [19]

Решение найдено. Всем спасибо!


 
sdts   (2007-08-17 14:21) [20]


> pascal ©   (17.08.07 14:14) [19]

интересно, какое?



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

Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.325 c
15-1186507910
Mr. D
2007-08-07 21:31
2007.09.09
RLE-кодирование


2-1187005597
Sonia
2007-08-13 15:46
2007.09.09
Даты в Oracle


15-1186632992
sergeyst
2007-08-09 08:16
2007.09.09
Автотест


15-1187114748
anton773
2007-08-14 22:05
2007.09.09
Куда делось событие OnFileDownload у webbrowsera


1-1182747433
Dmitry_177
2007-06-25 08:57
2007.09.09
TWebBrowser без полос прокрутки





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