Главная страница
    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.5 MB
Время: 0.046 c
2-1187035315
loeg
2007-08-14 00:01
2007.09.09
Delphi и Касперский


2-1187029833
L12
2007-08-13 22:30
2007.09.09
Полноэкранное приложение


15-1185869028
Alex Konshin
2007-07-31 12:03
2007.09.09
Анализатор трейс файлов Оракл.


15-1187106129
iZEN
2007-08-14 19:42
2007.09.09
Mdf2iso, есть ли аналоги iat.exe?


2-1187081956
newcounter
2007-08-14 12:59
2007.09.09
WideString из массива.





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