Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 | 2 |

 

  Вопрос: Получение произвольной записи из БД Добавлено: 13.05.07 16:05  

Автор вопроса:  747212
Средствами ASP необходимо выдавать на сайт произвольную запись из базы данных. Формат базы MDB.

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

Спасибо!

Ответить

  Ответы Всего ответов: 17  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 13.05.07 16:20
RTFM
select top 1 * from t order by rnd()

Ответить

Номер ответа: 2
Автор ответа:
 747212



Вопросов: 4
Ответов: 15
 Профиль | | #2 Добавлено: 13.05.07 17:11
Мануал читал. И не раз.

И почему у меня при коде

Rs.Open "SELECT Top 1 * FROM Tbl_Film order by rnd()", Conn1, 3,3

Выдает один и тот же фильм?

Ответить

Номер ответа: 3
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #3 Добавлено: 13.05.07 17:22
Потому что каждый раз rnd инициализируется заново одним и тем же числом?

Сделай order by rnd(id), где id - первичный ключ таблицы Tbl_Film.

Ответить

Номер ответа: 4
Автор ответа:
 747212



Вопросов: 4
Ответов: 15
 Профиль | | #4 Добавлено: 13.05.07 17:31
Я дурак. Я знаю. Можно на одноклеточном уровне?

Ключевое поле для таблицы Tbl_Film - поле Code

Код

Rs.Open "SELECT Top 1 * FROM Tbl_Film order by rnd(code)", Conn1, 3,3

опять возвращает один и тот же фильм. Правда другой уже...

Ответить

Номер ответа: 5
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #5 Добавлено: 13.05.07 17:40
Странно.
http://bbs.vbstreets.ru/viewtopic.php?p=163157#163157 - работает.

Ответить

Номер ответа: 6
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #6 Добавлено: 13.05.07 17:47
Rs.Close' !!!
Rs.Open "SELECT Top 1 Tbl_Film.naim FROM Tbl_Film order by rnd(Tbl_Film.code)"

Ответить

Номер ответа: 7
Автор ответа:
 747212



Вопросов: 4
Ответов: 15
 Профиль | | #7 Добавлено: 13.05.07 20:07
"Rs" у меня и так закрыта на момент выполнения запроса.

Код

Rs.Open "SELECT Top 1 * FROM Tbl_Film order by rnd(Tbl_Film.code)",conn1,3,3

опять выдает один и тот же фильм

Tbl_Film.naim не указал, так как использую много полей.

Ответить

Номер ответа: 8
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #8 Добавлено: 13.05.07 22:29

"Rs" у меня и так закрыта ..


точно-ли?
проверь по другому.
Debug.Print conn1.Execute("SELECT Top 1 * FROM Tbl_Film order by rnd(Tbl_Film.code)";).Fields(0) '?

Ответить

Номер ответа: 9
Автор ответа:
 747212



Вопросов: 4
Ответов: 15
 Профиль | | #9 Добавлено: 13.05.07 23:08
Точно. Она и не открывалась.

Debug.Print conn1.Execute...

Выдает постоянно один и тот же результат.


Прямо заколдованный круг какой-то!

Ответить

Номер ответа: 10
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #10 Добавлено: 13.05.07 23:35
Бывает. запарился.
покажи всю процедуру, если не слишком громоздко.

Ответить

Номер ответа: 11
Автор ответа:
 747212



Вопросов: 4
Ответов: 15
 Профиль | | #11 Добавлено: 13.05.07 23:53
'Произвольный фильм
Rs.Open "SELECT Top 1 * FROM Tbl_Film order by rnd(Tbl_Film.code)",conn1,3,3
%>
<a href="Film.asp?Film=<%=Rs("Code";)%>" class=linkT1><img border=0 src="main/Base/Film/<%=Rs("Foto";)%>" width=106 height=160 alt="<%=Rs("Film";)%>"><br>
<%=Rs("Film";)%><br></a>
<%
Rs.Close

Ответить

Номер ответа: 12
Автор ответа:
 747212



Вопросов: 4
Ответов: 15
 Профиль | | #12 Добавлено: 14.05.07 19:10
Ну, товарищи!
Неужто никто из гуру не поможет начинающему ламеру?

Ответить

Номер ответа: 13
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #13 Добавлено: 14.05.07 22:58
Покажи всю процедуру (до Rs.Open)

Ответить

Номер ответа: 14
Автор ответа:
 747212



Вопросов: 4
Ответов: 15
 Профиль | | #14 Добавлено: 14.05.07 23:52

<TABLE cellSpacing=0 cellPadding=0 width=100% height=100% border=0>
<TR height=210>
<TD align=center class=f10b>
<font color="<%=ZCMas(11)%>">Случайный выбор</font><br>
<%
'Произвольный фильм
'Rs.Open "SELECT Top 1 * FROM Tbl_Film order by rnd(size)", Conn1, 3,3
Rs.Open "SELECT Top 1 * FROM Tbl_Film order by rnd(Tbl_Film.code)",conn1,3,3
%>
<a href="Film.asp?Film=<%=Rs("Code";)%>" class=linkT1><img border=0 src="main/Base/Film/<%=Rs("Foto";)%>" width=106 height=160 alt="<%=Rs("Film";)%>"><br>
<%=Rs("Film";)%><br></a>
<%
Rs.Close
%>

</TD>
</TR>
</TABLE>

Ответить

Номер ответа: 15
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #15 Добавлено: 15.05.07 00:50
Хотелось бы увидеть объявления Rs и conn1.
Подозреваю, что повторный запрос идет при закрытом рекордсете или коннекешне.

MsgBox conn1.State '

MsgBox rs.State ' должно быть 0
Rs.Open
MsgBox rs.State ' 1

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам