Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Два и более одновременно соеденения к базе
|
|||
|---|---|---|---|
|
#18+
Файл web.config <configuration> <appSettings> <add key="dbconnectstring" value="server=172.*.*.**;user id=**;password=**; database=**Marketing;max pool size=70;" /> </appSettings> </configuration> ============================================= index.aspx <script runat="server"> 'Список анкет function AnketaList(dbCommand as SqlCommand) as string dim out as string dbcommand.commandtext="select * from anketa_title " dim reader as sqldatareader=dbcommand.executereader() while reader.read() dim t_id as integer=reader.getint32(0) dim t_name as string=reader.getstring(1) out = out + "<p><a href=***>" ' ---> тут идет еще запрос out=OtvetList(t_id,dbCommand) end while reader.close() AnketaList=out end function Function OtvetList(ByVal v_id As Integer,dbCommand as SqlCommand) As String Dim out As String = "" dbcommand.CommandText = "select * from anketa_otvet WHERE o_vopros='" + v_id.ToString() + "' order by o_id ASC" Dim reader As SqlDataReader = dbcommand.ExecuteReader() While reader.Read() Dim o_id As Integer = reader.GetInt32(0) out = out + "bla" End While reader.Close() OtvetList = out End Function </script> <% Dim dbcon As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("dbconnectstring")) Dim dbcommand As SqlCommand = New SqlCommand() dbcon.Open() response.write(AnketaList(dbcommand)) %> Как быть когда идет цикл выборки данных, и всем сделать еще один зайпрос и вывести данных. Выходит ошибка Server Error in '/anketa' Application. ExecuteReader: Connection property has not been initialized. в PHP все просто делается, а тут как , обьясните пожалуйста. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 11:25 |
|
||
|
Два и более одновременно соеденения к базе
|
|||
|---|---|---|---|
|
#18+
если FW 1.x то датаридер монопольно юзает коннектион. От хаоса в космос и далее к наличным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 11:33 |
|
||
|
Два и более одновременно соеденения к базе
|
|||
|---|---|---|---|
|
#18+
По подроьбней если можно с Asp я изучаю недавно =) желательно с примером кода, как мне выйти с сложившейся проблемы . thk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 11:37 |
|
||
|
Два и более одновременно соеденения к базе
|
|||
|---|---|---|---|
|
#18+
PProServer Error in '/anketa' Application. ExecuteReader: Connection property has not been initialized. Так текст ошибки достаточно явный. Вот тут: Код: plaintext 1. 2. 3. 4. 5. Твоему объекту dbcommand нуже объект типа connection Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 12:23 |
|
||
|
Два и более одновременно соеденения к базе
|
|||
|---|---|---|---|
|
#18+
Блин попутал. Ошибка на само деле такая There is already an open DataReader associated with this Command which must be closed first. Смысл такой что мне нужно рекурсивно выполнять нескольок запросов на одном соеденении. в примере сверху все видно. В функции AnketaList есть цикл , в этом цикле вызывается функция OtvetList которая использует тоже соеденение что и AnketaList, и ошибка поевляется что DataReader не закрыто... Так как использовать DataReader не закрывая. ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 12:57 |
|
||
|
Два и более одновременно соеденения к базе
|
|||
|---|---|---|---|
|
#18+
в FW 1.1 на соединении может быть только 1 (один) активный датаридер! Шайтан ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 13:40 |
|
||
|
Два и более одновременно соеденения к базе
|
|||
|---|---|---|---|
|
#18+
Ты еще не до конца изучил ADO:)), если я правильно понял вопрос. То, что ты хочешь сделать можно сделать при помощи DataSet и Relation. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 13:51 |
|
||
|
Два и более одновременно соеденения к базе
|
|||
|---|---|---|---|
|
#18+
хех, понятно так что два соеденения открывать и передавать в функцию 2 ссылки на соеденение. а если мне рекурсивно нужно обойти дерево 10 уровней что делать? =) Какое решение для моего скрипта есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 13:54 |
|
||
|
Два и более одновременно соеденения к базе
|
|||
|---|---|---|---|
|
#18+
У тебя проблема в идеологии - грамотно так - если можно вытащить данные за 1 обращение к БД, то нужно вытаскивать за 1 обращение. Тебе сначала нужно считать все что нужно в свои коллекции, замапить, а уже потом рендерить. Или использовать датаадаптеры/датасеты (с множественным резалсетом) где выкачка/релейшены уже сделаны за тебя. ЗЫ монопольность пользования коннекшина датаридером в 1х - цена за его скорость считывания. ЗЗЫ фак и сдк рулятОт хаоса в космос и далее к наличным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 14:10 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=34069017&tid=1388396]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 385ms |

| 0 / 0 |
