Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как создать цикл по полям Recortset'а / 13 сообщений из 13, страница 1 из 1
13.02.2003, 17:05
    #32106137
-=Extreme=-ShamaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать цикл по полям Recortset'а
Собственно, subj.
Имею:
Код: plaintext
1.
2.
3.
4.
  For Each Name In RecSet 
      response.write( "<tr><td>name</td><td>RecSet(name)</td></tr>" )
      RecSet.MoveNext
  Next


Получаю:

Microsoft VBScript runtime (0x800A01B6)
Object doesn't support this property or method
...
Рейтинг: 0 / 0
13.02.2003, 17:21
    #32106159
-=Extreme=-ShamaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать цикл по полям Recortset'а
Что - никто помочь ничем не может?
...
Рейтинг: 0 / 0
13.02.2003, 17:54
    #32106183
Pifon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать цикл по полям Recortset'а
primer funccii na javascript


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
function print(oRst){
	Response.Write ( "<table border=1 >")
	Response.Write ( "<tr>" )
	for (var i= 0 ;i<oRst.Fields.Count;i++){
		Response.Write ( "<td>"  + oRst.Fields(i).Name +   "</td>" );
	}	
	Response.Write ( "</tr>" )
	while (!oRst.EOF){
		Response.Write ( "<tr>" )
		for (var i= 0 ;i<oRst.Fields.Count;i++){
			Response.Write ( "<td>"  +  oRst.Fields(i).value +   "</td>" );
		}	
		Response.Write ( "</tr>" )
		oRst.MoveNext()
	}
	Response.Write ( "</table>" )
}

...
Рейтинг: 0 / 0
13.02.2003, 17:55
    #32106185
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать цикл по полям Recortset'а
Код: plaintext
1.
2.
3.
While Not RecSet.EOF
    response.write( "<tr><td>"  &  "текст"  &  "</td><td>"  & RecSet( "имяполя" ) &  "</td></tr>" )
    RecSet.MoveNext
Loop
...
Рейтинг: 0 / 0
13.02.2003, 18:22
    #32106210
-=Extreme=-ShamaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать цикл по полям Recortset'а
2Pifon
Greate Thanks

2Кузя:
А ты вообще понял, что я хотел???? :((((
...
Рейтинг: 0 / 0
13.02.2003, 19:01
    #32106239
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать цикл по полям Recortset'а
увы, такая запись не так проста для понимания
For Each Name In RecSet
только subj помог :)
...
Рейтинг: 0 / 0
13.02.2003, 19:18
    #32106262
-=Extreme=-ShamaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать цикл по полям Recortset'а
Да я уже разобрался и вот, может коряво, но сделал (VBScript):
Код: plaintext
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.
function Print(RecSet)
Dim i
Dim FieldNames()

' Создаем таблицу
 response.write("<table border=1 cellpadding=2>")

' Получаем список имён полей 
 ReDim Preserve FieldNames(RecSet.Fields.Count -  1 )
 For i =  0  to RecSet.Fields.Count -  1 
    FieldNames(i) = RecSet.Fields(i).Name
 Next 

' Печатаем заголовок таблицы (имена полей RecSet'а)
 response.write( "<tr>" )
 For Each Name In FieldNames
     response.write( "<td>"  & Name &  "</td>" )
 Next
 response.write( "</tr>" )
 
' Печатаем сами данные
 do while not RecSet.eof
   response.write( "<tr>" )
    For Each Name In FieldNames
        response.write( "<td>"  & RecSet(Name) &  "</td>" )
    Next
    RecSet.MoveNext
 loop
 response.write( "</tr>" )

 response.write( "</table>" )
end function
...
Рейтинг: 0 / 0
04.03.2003, 08:34
    #32114016
ArchiMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать цикл по полям Recortset'а
Во-первых - не используй ReDim в ASP!

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

В-третьих, что тебе мешает использовать конструкцию
For each Field in RecSet.Fields
...
Рейтинг: 0 / 0
04.03.2003, 10:15
    #32114061
-=Extreme=-ShamaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать цикл по полям Recortset'а
Во-первых - не используй ReDim в ASP!

Почему?

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

В-третьих, что тебе мешает использовать конструкцию
For each Field in RecSet.Fields


Неее, ничего не мешает :) Просто новичок пока в деле программирования на VBScript, вот и спрашивал :)
...
Рейтинг: 0 / 0
04.03.2003, 10:36
    #32114081
-=Extreme=-ShamaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать цикл по полям Recortset'а
Код: plaintext
1.
2.
    For Each Field In RecSet.Fields
        response.write( "<td>"  & RecSet(Field) &  "</td>" )

Ошибка:
Код: plaintext
1.
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.

Что не так?
...
Рейтинг: 0 / 0
04.03.2003, 10:48
    #32114091
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать цикл по полям Recortset'а
Код: plaintext
1.
2.
For Each Field In RecSet.Fields
  response.write( "<td>"  & Field.Value &  "</td>" )
Next Field
...
Рейтинг: 0 / 0
04.03.2003, 12:58
    #32114238
-=Extreme=-ShamaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать цикл по полям Recortset'а
Спасибо :)
...
Рейтинг: 0 / 0
07.03.2003, 05:44
    #32116141
ArchiMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать цикл по полям Recortset'а
ReDim создает новый массив в памяти и копирует туда данные предыдущего. Операция весьма ресурсоемкая, к тому же памяте-емкая. Представь, что сразу 1000 клиентов сделают ReDim массива объемом 100000 байт. Итак занято 100 Мб, а тут еще надо выделить 100 Мб и их скопировать, неслабо, да?

Одновременное увеличение объема используемой памяти на 100 Мб + xxx на увеличение массива + квантование времени процессора и перезаполнение кэша.

Копирование областей памяти в другую область не очень линейно зависит от количества процессов, выполняющих эту операцию.

Хотя современная память и использует режим DMA, кеш все-таки перезаполняется :(
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как создать цикл по полям Recortset'а / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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