powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как создать цикл по полям Recortset'а
13 сообщений из 13, страница 1 из 1
Как создать цикл по полям Recortset'а
    #32106137
-=Extreme=-ShamaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно, 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
Как создать цикл по полям Recortset'а
    #32106159
-=Extreme=-ShamaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что - никто помочь ничем не может?
...
Рейтинг: 0 / 0
Как создать цикл по полям Recortset'а
    #32106183
Pifon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Как создать цикл по полям Recortset'а
    #32106185
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
While Not RecSet.EOF
    response.write( "<tr><td>"  &  "текст"  &  "</td><td>"  & RecSet( "имяполя" ) &  "</td></tr>" )
    RecSet.MoveNext
Loop
...
Рейтинг: 0 / 0
Как создать цикл по полям Recortset'а
    #32106210
-=Extreme=-ShamaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Pifon
Greate Thanks

2Кузя:
А ты вообще понял, что я хотел???? :((((
...
Рейтинг: 0 / 0
Как создать цикл по полям Recortset'а
    #32106239
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
увы, такая запись не так проста для понимания
For Each Name In RecSet
только subj помог :)
...
Рейтинг: 0 / 0
Как создать цикл по полям Recortset'а
    #32106262
-=Extreme=-ShamaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да я уже разобрался и вот, может коряво, но сделал (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
Как создать цикл по полям Recortset'а
    #32114016
ArchiMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых - не используй ReDim в ASP!

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

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

Почему?

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

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


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

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

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

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


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