Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / И снова RecNo / 14 сообщений из 14, страница 1 из 1
03.11.2003, 14:37
    #32313566
Desil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
Колупаюсь с RecNo уже почти месяц. Нашла в форуме кусок кода, который должен по идее решать все мои проблемы (возвращать номер записи в наборе данных):

Код: plaintext
1.
2.
3.
set nocount on
select identity(int, 1 , 1 ) Number, * into #tmp from Table ..... order by ....
select * from #tmp order by Number
drop table #tmp


Вот только одно но - среди возвр. полей у меня уже есть автоинкрементные и SQL'ина ругается:
Код: plaintext
1.
2.
Cannot add identity column, using the SELECT INTO statement, 
to table '#tmp', which already has column 'Моя_колонка_ID' that inherits 
the identity property.


Никто не знает, чего делать?
...
Рейтинг: 0 / 0
03.11.2003, 14:41
    #32313571
olga1999
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
А какая СУБД. Если Oracle, то там для этого существует ROWNUM.
...
Рейтинг: 0 / 0
03.11.2003, 14:42
    #32313572
Desil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
СУБД - MSSQL, всеми любимый...
...
Рейтинг: 0 / 0
03.11.2003, 15:06
    #32313610
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
А поконкретней можно ??
если есть автоинкременая колонка зачем сного что то химичить ?

и что значит возрашать номер записи ?
что конкретно хотите ?
...
Рейтинг: 0 / 0
03.11.2003, 15:41
    #32313666
daw
daw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
Desil писал:Никто не знает, чего делать?
не поленитесь создать временную табличку явно и сделать
insert into #tmp
(...)
select
...
...
Рейтинг: 0 / 0
03.11.2003, 15:52
    #32313696
selena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
а какой доступ к базе используете???
...
Рейтинг: 0 / 0
03.11.2003, 16:28
    #32313775
Desil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
Теперь пишу так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE #tmp
(
 Number int IDENTITY( 1 , 1 ),
 ID int
)

select TableID
into  #tmp
from Table

select * from #tmp order by Number

drop table #tmp


На что мне говорят:

Код: plaintext
There is already an object named '#tmp' in the database.


???????????????????
...
Рейтинг: 0 / 0
03.11.2003, 16:34
    #32313793
Rostyk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
Выполни отдельно
Код: plaintext
drop table #tmp
...
Рейтинг: 0 / 0
03.11.2003, 16:47
    #32313818
Desil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
Ни какой реакции
...
Рейтинг: 0 / 0
03.11.2003, 17:05
    #32313854
Rostyk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
После drop'a #tmp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE TABLE #tmp
(
 Number int IDENTITY( 1 , 1 ),
 ID int
)

select TableID
into  #tmp
from Table

select * from #tmp order by Number

drop table #tmp
не проходит ?
...
Рейтинг: 0 / 0
03.11.2003, 17:27
    #32313903
Luchkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE #tmp ( Number int IDENTITY( 1 , 1 ), ID int )

insert #tmp (ID) 
select TableID
from Table

select * from #tmp order by Number

drop table #tmp

а так?
...
Рейтинг: 0 / 0
03.11.2003, 17:29
    #32313907
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
Вот так

if object_id('tempdb..#tmp')
drop table #tmp
create table #tmp ...
...
Рейтинг: 0 / 0
03.11.2003, 18:05
    #32314005
daw
daw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
Дык, не надо делать select into ... Делайте insert into ... select ...
...
Рейтинг: 0 / 0
03.11.2003, 21:07
    #32314148
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова RecNo
Desi писал:
Вот только одно но - среди возвр. полей у меня уже есть автоинкрементные и SQL'ина ругается:
Cannot add identity column, using the SELECT INTO statement,
to table '#tmp', which already has column 'Моя_колонка_ID' that inherits
the identity property.


В этом случае надо делать явное преобразование identity-поля в int или явно указывать все нужные поля, кроме identity-поля. В таком запросе нельзя использовать шаблон *.
Код: plaintext
1.
2.
3.
4.
5.
set nocount on
select identity(int, 1 , 1 ) Number, convert(int,identity_field) as Field0, field1, fileld2 into #tmp 
from Table ..... order by ....
select * from #tmp order by Number
drop table #tmp
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / И снова RecNo / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]