powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Цикл по курсору обходит не все строки
51 сообщений из 51, показаны все 3 страниц
Цикл по курсору обходит не все строки
    #38646650
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, коллеги.

Есть вот такой код:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
IF OBJECT_ID('tempdb.dbo.#mytemptable') IS NOT NULL
	DROP TABLE dbo.#mytemptable;


CREATE TABLE dbo.#mytemptable
(
	id CHAR(9),
	descr VARCHAR(1000)	 
);

DECLARE @id CHAR(9)
DECLARE @descr VARCHAR(70)

DECLARE cur CURSOR LOCAL READ_ONLY FAST_FORWARD FOR
	SELECT
		t1.ID as id,
		t3.DESCR as descr
	FROM
		t1
		INNER JOIN t2 (NOLOCK) ON t2.PARENTEXT = t1.ID
		INNER JOIN t3 as ON t3.ID = t2.t3id
	WHERE
		t2.IsMark = 0
	ORDER BY
		id

OPEN cur

FETCH NEXT FROM cur INTO 
	@id,
	@descr

WHILE @@FETCH_STATUS = 0 BEGIN
	INSERT INTO #mytemptable(
	id,
	descr)
	VALUES(@id,
	@descr)


	FETCH NEXT FROM cur INTO 
		@id,
		@descr
END

CLOSE cur
DEALLOCATE cur;



Код упрощен для отладки, так что на "физический смысл" не обращайте внимания.
Проблема вот в чем.
Запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT
		t1.ID as id,
		t3.DESCR as descr
	FROM
		t1
		INNER JOIN t2 (NOLOCK) ON t2.PARENTEXT = t1.ID
		INNER JOIN t3 as ON t3.ID = t2.t3id
	WHERE
		t2.IsMark = 0
	ORDER BY
		id


возвращает более 6000 записей, а запрос по результирующей таблице
Код: sql
1.
2.
SELECT *
FROM #mytemptable


возвращает примерно 160-170 записей (при каждом выполнении разное число!!!)
Причем это именно первые 160-170 записей из верхнего запроса. Получается, что цикл по курсору не обходит все строки, а вылетает где-то раньше времени по непонятной причине. Как такое вообще возможно и куда теперь копать?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646667
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адо. Получается, что цикл по курсору не обходит все строки, а вылетает где-то раньше времени по непонятной причине
А как число записей в таблице #mytemptable показывает число итераций цикла WHILE ?
И как вы обрабытываете ошибки выполнения вашего кода ?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646682
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryА как число записей в таблице #mytemptable показывает число итераций цикла WHILE ?


А какие еще могут быть причины непопадания записей в эту таблицу?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646685
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоGloryА как число записей в таблице #mytemptable показывает число итераций цикла WHILE ?


А какие еще могут быть причины непопадания записей в эту таблицу?Ошибки в коде до упрощения.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646691
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адо,

а если попробовать объявить курсор статическим?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646693
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевичадопропущено...
А какие еще могут быть причины непопадания записей в эту таблицу?Ошибки в коде до упрощения.

А какое они имеют значение? Проблема то фиксируется в уже упрощенном коде, в том, который приведен выше.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646698
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapадо,

а если попробовать объявить курсор статическим?

Попробовал. Нет, не помогает.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646701
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоПроблема то фиксируется в уже упрощенном коде, в том, который приведен выше.
И где же она фиксируется то ?
Вы трассировали число итераций в Профайлере, например ?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646703
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоiapадо,

а если попробовать объявить курсор статическим?

Попробовал. Нет, не помогает.Что сделали? Текст покажите
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646712
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryадоПроблема то фиксируется в уже упрощенном коде, в том, который приведен выше.
И где же она фиксируется то ?
Вы трассировали число итераций в Профайлере, например ?

Нет. Ситуация осложняется тем, что доступа к инструментальным средствам MS-SQL нет, есть доступ только к клиентскому приложению. Так что я могу только исполнять запросы и выводить результаты.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646720
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapадопропущено...
Попробовал. Нет, не помогает.Что сделали? Текст покажите

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
IF OBJECT_ID('tempdb.dbo.#mytemptable') IS NOT NULL
	DROP TABLE dbo.#mytemptable;


CREATE TABLE dbo.#mytemptable
(
	id CHAR(9),
	descr VARCHAR(1000)	 
);

DECLARE @id CHAR(9)
DECLARE @descr VARCHAR(70)

DECLARE cur CURSOR LOCAL READ_ONLY FAST_FORWARD FOR
	SELECT
		t1.ID as id,
		t3.DESCR as descr
	FROM
		t1
		INNER JOIN t2 (NOLOCK) ON t2.PARENTEXT = t1.ID
		INNER JOIN t3 as ON t3.ID = t2.t3id
	WHERE
		t2.IsMark = 0
	ORDER BY
		id

OPEN cur

FETCH NEXT FROM cur INTO 
	@id,
	@descr

WHILE @@FETCH_STATUS = 0 BEGIN
	INSERT INTO #mytemptable(
	id,
	descr)
	VALUES(@id,
	@descr)


	FETCH NEXT FROM cur INTO 
		@id,
		@descr
END

CLOSE cur
DEALLOCATE cur;
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646721
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоСитуация осложняется тем, что доступа к инструментальным средствам MS-SQL нет, есть доступ только к клиентскому приложению.
Откуда вы тогда знаете, что происходит на сервере при выполнении вашего кода ?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646725
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоiapпропущено...
Что сделали? Текст покажите

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
IF OBJECT_ID('tempdb.dbo.#mytemptable') IS NOT NULL
	DROP TABLE dbo.#mytemptable;


CREATE TABLE dbo.#mytemptable
(
	id CHAR(9),
	descr VARCHAR(1000)	 
);

DECLARE @id CHAR(9)
DECLARE @descr VARCHAR(70)

DECLARE cur CURSOR LOCAL READ_ONLY FAST_FORWARD FOR
	SELECT
		t1.ID as id,
		t3.DESCR as descr
	FROM
		t1
		INNER JOIN t2 (NOLOCK) ON t2.PARENTEXT = t1.ID
		INNER JOIN t3 as ON t3.ID = t2.t3id
	WHERE
		t2.IsMark = 0
	ORDER BY
		id

OPEN cur

FETCH NEXT FROM cur INTO 
	@id,
	@descr

WHILE @@FETCH_STATUS = 0 BEGIN
	INSERT INTO #mytemptable(
	id,
	descr)
	VALUES(@id,
	@descr)


	FETCH NEXT FROM cur INTO 
		@id,
		@descr
END

CLOSE cur
DEALLOCATE cur;

И где тут ключевое слово STATIC?
Синтаксис Вам доступен?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646734
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryадоСитуация осложняется тем, что доступа к инструментальным средствам MS-SQL нет, есть доступ только к клиентскому приложению.
Откуда вы тогда знаете, что происходит на сервере при выполнении вашего кода ?

Делаю косвенные выводы по получаемым результатам.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646738
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоGloryпропущено...

Откуда вы тогда знаете, что происходит на сервере при выполнении вашего кода ?

Делаю косвенные выводы по получаемым результатам.Без трассы профайлера разговор ни о чем. Никто даже не знает, какой именно код выполняется на сервере, но результаты этого неизвестного кода почему-то считаются неправильными.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646740
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapИ где тут ключевое слово STATIC?
Синтаксис Вам доступен?
Пардон, не оттуда скопировал. Ну, в общем, добавил STATIC в декларацию курсора. На результат не повлияло.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646744
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоGloryпропущено...

Откуда вы тогда знаете, что происходит на сервере при выполнении вашего кода ?

Делаю косвенные выводы по получаемым результатам.
Ааа. Типа дедуктивный метод Шерлока Холмса ?
И вы получили вывод, что курсор именно пропускает строки ?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646747
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевичадопропущено...
Делаю косвенные выводы по получаемым результатам.Без трассы профайлера разговор ни о чем. Никто даже не знает, какой именно код выполняется на сервере, но результаты этого неизвестного кода почему-то считаются неправильными.
Предполагаете, что где-то в недрах ODBC-драйвера код может волшебным образом поменяться?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646752
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоПредполагаете, что где-то в недрах ODBC-драйвера код может волшебным образом поменяться?
Ваша тезка ADO такая затейница.
Так и непонятно, как же вы обрабатываете ошибки ?
И тетстировали ли вы ваш скрипт просто в SMS ?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646761
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gloryадопропущено...
Делаю косвенные выводы по получаемым результатам.
Ааа. Типа дедуктивный метод Шерлока Холмса ?
И вы получили вывод, что курсор именно пропускает строки ?

Не пропускает, скорее вылетает из цикла раньше, чем должен. Вот пытаюсь выяснить, почему, и как это вообще понять отлаживая через замочную скважину.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646770
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryТак и непонятно, как же вы обрабатываете ошибки ?
Ну как обрабатываю, обыкновенно. Коннектор возвращает ошибку -- я о ней сообщаю. В данном случае -- не возвращает.

GloryИ тетстировали ли вы ваш скрипт просто в SMS ?
Говорю же, нет такой возможности. На реально базе, по крайней мере. А на нереальной ошибка не воспроизводится.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646781
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоНу как обрабатываю, обыкновенно. Коннектор возвращает ошибку -- я о ней сообщаю. В данном случае -- не возвращает.
Круто
адоГоворю же, нет такой возможности. На реально базе, по крайней мере.
Это как ? Чем ваши приложение отличается от SMS или sqlcmd или Access или Excel ?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646785
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryЧем ваши приложение отличается от SMS или sqlcmd или Access или Excel ?
Тем, что к этому приложению у меня есть доступ на сервере заказчика, а к другим нет.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646788
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоТем, что к этому приложению у меня есть доступ на сервере заказчика, а к другим нет.
Обратитесь к администратору, за получением доступа.
Обратитесь к администратору, за получением бэкапа базы.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646790
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryадоТем, что к этому приложению у меня есть доступ на сервере заказчика, а к другим нет.
Обратитесь к администратору, за получением доступа.
Обратитесь к администратору, за получением бэкапа базы.
Ни то, ни другое невозможно из-за параноидальной политики безопасности.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646796
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоНи то, ни другое невозможно из-за параноидальной политики безопасности.
Ага, давайте подметать лужи ломами.
Ибо мне не нужно, чтобы луж не было. Мне нужно, чтобы вы зае-лись.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646812
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После открытия курсора, посмотрите что вернет @@cursor_rows
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646830
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
STATIC не совместим с FAST_FORWARD
Слабо верится в "добавил STATIC"
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646847
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invmПосле открытия курсора, посмотрите что вернет @@cursor_rows
@@cursor_rows возвращает то, что и ожидается, то есть число, совпадающее с количеством записей, которое возвращает запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT
		t1.ID as id,
		t3.DESCR as descr
	FROM
		t1
		INNER JOIN t2 (NOLOCK) ON t2.PARENTEXT = t1.ID
		INNER JOIN t3 as ON t3.ID = t2.t3id
	WHERE
		t2.IsMark = 0
	ORDER BY
		id
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646848
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зайцев ФёдорSTATIC не совместим с FAST_FORWARD
Слабо верится в "добавил STATIC"

Хммм, справка говорит, что FAST_FORWARD не совместим только с SCROLL и FOR_UPDATE
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646852
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоЗайцев ФёдорSTATIC не совместим с FAST_FORWARD
Слабо верится в "добавил STATIC"

Хммм, справка говорит, что FAST_FORWARD не совместим только с SCROLL и FOR_UPDATE
А справка, случайно, не говорит, что FAST_FORWARD - фишка динамических курсоров?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646853
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зайцев Фёдорадопропущено...
Хммм, справка говорит, что FAST_FORWARD не совместим только с SCROLL и FOR_UPDATE
А справка, случайно, не говорит, что FAST_FORWARD - фишка динамических курсоров?

Нет, не говорит. А можно пруф?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646866
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоЗайцев Фёдорпропущено...

А справка, случайно, не говорит, что FAST_FORWARD - фишка динамических курсоров?

Нет, не говорит. А можно пруф?
Этого уже нет в справке) Раньше было в BOL.
А что, у вас без ошибок выполняется следующий код?
Код: sql
1.
declare c cursor static fast_forward for select * from sys.objects
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646876
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зайцев Фёдорадопропущено...
Нет, не говорит. А можно пруф?
Этого уже нет в справке) Раньше было в BOL.
А что, у вас без ошибок выполняется следующий код?
Код: sql
1.
declare c cursor static fast_forward for select * from sys.objects

в описании синтаксиса явно указано [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ], что значит "только одна из опций"
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646881
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Упростил до предела. Загнал результат запроса в промежуточную таблицу, и на ней уже построил курсор. Получилось так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
DECLARE @id CHAR(9)
DECLARE @descr VARCHAR(70)

DECLARE cur CURSOR LOCAL STATIC FOR
	SELECT
		id,
		descr
	FROM
		#mytemptable1
	ORDER BY
		id

OPEN cur

FETCH NEXT FROM cur INTO 
	@id,
	@descr

WHILE @@FETCH_STATUS = 0 BEGIN
	INSERT INTO #mytemptable(
	id,
	descr)
	VALUES(@id,
	@descr)


	FETCH NEXT FROM cur INTO 
		@id,
		@descr
END

CLOSE cur
DEALLOCATE cur;



При этом
Код: sql
1.
SELECT * FROM #mytemptable1

возвращает 6195 записей, а
Код: sql
1.
SELECT * FROM #mytemptable

-- 169.
Шайтанама! Ну где оно может ломаться?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646891
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну даже фиг знает
Код: sql
1.
DECLARE @descr VARCHAR(1000)
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646898
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakillв описании синтаксиса явно указано [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ], что значит "только одна из опций" Я как бы вопрос задал про безошибочное выполнение. Ваш ответ - это "да" или "нет"?
И да, "в описании синтаксиса явно указано" STATIC | DYNAMIC, что значит "только одна из опций". Самому не смешно?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646901
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зайцев Фёдорадопропущено...


Нет, не говорит. А можно пруф?
Этого уже нет в справке) Раньше было в BOL.
А что, у вас без ошибок выполняется следующий код?
Код: sql
1.
declare c cursor static fast_forward for select * from sys.objects


Каюсь, не заметил. fast_forward у меня уже удален был, когда я static добавил.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646904
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зайцев ФёдорНу даже фиг знает
Код: sql
1.
DECLARE @descr VARCHAR(1000)


А что такого? VARCHAR, вроде, до 8000 знаков допускает.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646910
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоЗайцев ФёдорНу даже фиг знает
Код: sql
1.
DECLARE @descr VARCHAR(1000)


А что такого? VARCHAR, вроде, до 8000 знаков допускает.
Да это я уже теней шугаюсь ))

Ошибки при выполнении возникают?
Если нет, то ничего умнее
set rowcount 0;
в голову не приходит
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646930
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том то и беда, что никаких ошибок.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646939
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адоПри этом
Код: sql
1.
SELECT * FROM #mytemptable1

возвращает 6195 записей, а
Код: sql
1.
SELECT * FROM #mytemptable

-- 169.
Шайтанама! Ну где оно может ломаться?Что вернет
Код: sql
1.
SELECT count(distinct ID) FROM #mytemptable1
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38646943
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адо,

Чудес не бывает.
В начало скрипта - set nocount on. Иначе иногда в клиенте можно не отловить ошибку.
Либо оберните цикл в try/catch и ловите ошибку на сервере.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38647011
Edkonst2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адо,

Код: sql
1.
2.
3.
4.
5.
CREATE TABLE dbo.#mytemptable
(
	id CHAR(9),
	descr VARCHAR(1000)	 
);



Ниже вы в курсоре используете неявное преобразования поля id. На нем не может валиться?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38647028
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edkonst2008адо,

Код: sql
1.
2.
3.
4.
5.
CREATE TABLE dbo.#mytemptable
(
	id CHAR(9),
	descr VARCHAR(1000)	 
);



Ниже вы в курсоре используете неявное преобразования поля id. На нем не может валиться?

Теоретически не должно, но попробую сделать явным.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38647228
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
адо,

После цикла чему равен @@FETCH_STATUS?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38647258
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зайцев ФёдорShakillв описании синтаксиса явно указано [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ], что значит "только одна из опций" Я как бы вопрос задал про безошибочное выполнение. Ваш ответ - это "да" или "нет"?
И да, "в описании синтаксиса явно указано" STATIC | DYNAMIC, что значит "только одна из опций". Самому не смешно?
не поняли друг друга
это был комментарий не про выполнение, а про то что в справке нет слов, подтверждающих ваши. я сослался на описание синтаксиса, которое означает, что из четырех этих ключей можно использовать только один
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38647271
VARCHAR(70)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а вас не смущает?


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
DECLARE @descr VARCHAR(70)


CREATE TABLE dbo.#mytemptable
(
	id CHAR(9),
	descr VARCHAR(1000)	 
);
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38647279
адо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VARCHAR(70)а вас не смущает?


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
DECLARE @descr VARCHAR(70)


CREATE TABLE dbo.#mytemptable
(
	id CHAR(9),
	descr VARCHAR(1000)	 
);



Я же в 1000 пишу 70, а не наоборот.
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38647289
VARCHAR(70)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
адоVARCHAR(70)а вас не смущает?


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
DECLARE @descr VARCHAR(70)


CREATE TABLE dbo.#mytemptable
(
	id CHAR(9),
	descr VARCHAR(1000)	 
);



Я же в 1000 пишу 70, а не наоборот.

1. Предварительно значения поля descr из таблицы #mytemptable1 (а размере которого вы ничего не сообщили) сохраняется в переменную @descr.
2. VARCHAR(1000) вы взяли "от балды" или ориентируюсь на реальный размер поля в исходных таблицах?
...
Рейтинг: 0 / 0
Цикл по курсору обходит не все строки
    #38647368
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
READ_ONLY лишнее при FAST_FORWARD.
...
Рейтинг: 0 / 0
51 сообщений из 51, показаны все 3 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Цикл по курсору обходит не все строки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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