Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
parashin
0 / 0 / 0
Регистрация: 21.06.2007
Сообщений: 654
1

Почему такой код не работает?

31.12.2008, 16:10. Просмотров 619. Ответов 4
Метки нет (Все метки)

for n=0 to 30

dim strSQL
strSQL='INSERT INTO tblTest (test_name) VALUES ('' & n & '')' & Chr(13) & _
'SELECT @@IDENTITY AS new_id'

set rsOtvetim=connOtvetim.Execute (strSQL)
Response.Write rsOtvetim('new_id') & '
'
'в этой сточке выдает ошибку, короче возвращается закрытый рекордсет


set rsOtvetim=nothing

next
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.12.2008, 16:10
Ответы с готовыми решениями:

почему не работает такой код? :(
<% Set svod = Server.CreateObject("ADODB.Connection") svod.Open "SVOD" %> <script...

Кто знает, почему не работает такой SQL-запрос? Всегда пустой рекордсет.
У меня в asp-странице идет запрос к БД, такого рода. 'SELECT ALL * FROM tbl_price WHERE name...

Почему один и тот-же код в WindowsForms работает, а в Web не работает?
Здравствуйте, подскажите почему один и тот-же код в WindowsForms работает, а в Web не работает....

Почему данный код не работает?
Я вообще-то по жизни писал на Васике, а тут приспичило разобраться с АСП. По ходу, если сохранить...

Почему мой код не работает?
следующий код: <%Set oShell = CreateObject("WScript.Shell")%> прокатывает без проблем а ...

4
Roby
0 / 0 / 0
Регистрация: 29.05.2007
Сообщений: 354
31.12.2008, 18:19 2
А так попробуй.

strSQL='INSERT INTO tblTest (test_name) VALUES ('' & n & '')'
connOtvetim.Execute (strSQL)
strSQL=' SELECT @@IDENTITY AS new_id'
set rsOtvetim=connOtvetim.Execute (strSQL)
new_id = rsOtvetim('new_id')

P.S. А не легче извлечение id только что введенной записи поручить хранимой процедуре?
0
parashin
0 / 0 / 0
Регистрация: 21.06.2007
Сообщений: 654
01.01.2009, 16:03  [ТС] 3
Такой вариант я уже пробовал - работает. Просто хочется за одну транзакцию вставить строчку и получить новый ID.

Видимо действительно нужно в хранимую процедуру все это запихать.
0
yr2003
0 / 0 / 0
Регистрация: 13.08.2006
Сообщений: 16
01.01.2009, 17:22 4
Сделай так:
szInsert = 'INSERT INTO нужный текст;SELECT @@IDENTITY'

Set rs = cn.Execute(szInsert).nextrecordset
ID = rs.fields(0)
получишь что надо
0
parashin
0 / 0 / 0
Регистрация: 21.06.2007
Сообщений: 654
01.01.2009, 17:37  [ТС] 5
О! спасибо. Я такой способ хотел использовать, но потом подумал что возвращается все-таки только один рекордсет

Получается что оператор INSERT тоже возвращает рекордсет только закрытый.
0
01.01.2009, 17:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.01.2009, 17:37

Почему этот код не работает?
Делаю вот что (часть кода): ........ Dim idd idd=Request.QueryString('id') ........... <%...

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

Как бы вы отрефакторили такой код?
Как бы вы отрефакторили такой код? (Если у вас есть несколько вариантов – это только приветствуется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru