классическое соединение asp - PullRequest
0 голосов
/ 10 июня 2011

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

Ниже приведен фрагмент кода сайта, на котором вообще отсутствуют строки подключения.

obj_ADO.ClearParameters
lng_RecSet1 = obj_ADO.GetFreeRecordset
obj_ADO.Recordset "A_combo_Permissions_select", adCmdStoredProc, obj_Session.int_CommandTimeout, lng_RecSet1
while obj_ADO.EOF(lng_RecSet1) = 0

и

если str_Action = obj_Session.str_FileName или len (str_Action) = 0 или str_Action = str_SwitchLangText, то

obj_ADO.ClearParameters
obj_ADO.AddParameter "SessionID", adChar, adParamInput, len(obj_Session.str_SessionID), obj_Session.str_SessionID
obj_ADO.AddParameter "PermissionID", adInteger, adParamInput, 8, lng_PermissionID
lng_RecSet = obj_ADO.GetFreeRecordset
obj_ADO.Recordset "A_PagePermissions_select", adCmdStoredProc, obj_Session.int_CommandTimeout, lng_RecSet

Ответы [ 2 ]

2 голосов
/ 10 июня 2011

Я предполагаю, что вы имеете в виду соединение с базой данных? Если это так, Нет , вы никогда не должны хранить объекты ADO в переменной сеанса; он не будет масштабироваться, и, поскольку они являются многопоточными, они не могут использовать пул потоков.

Вы должны подключаться и отключаться на каждой странице по мере необходимости (т. Е. Обычно только один раз).
Закулисные действия Пул подключений означает, что это оказывает меньшее влияние, чем можно предположить.

1 голос
/ 10 июня 2011

База данных Соединение

это нормально, чтобы принять пользовательскую библиотеку, по крайней мере, в качестве методов для open connection, execute query и close connection

Пример:

<%
    '' Database file database.asp

    Sub openDB(query, objConn, objRS)

        Set objConn = Server.CreateObject("ADODB.Connection")
        objConn.ConnectionString = "DSN=myCONNECTION.dsn"
        objConn.Open

        Set objRS = Server.CreateObject("ADODB.Recordset")
        objRS.Open query, objConn

    End Sub

    Sub CloseRs(objRS)

        objRS.Close
        Set objRS = Nothing

    End Sub

    Sub CloseDb(objConn)

        objConn.Close
        Set objConn = Nothing

    End Sub

%>

тогда вы можете просто использовать:

<!--#include file="header.inc"-->
<%
    Dim rs, conn
    openDb("SELECT Name FROM TBL_USERS", conn, rs)

    '' you can loop through the rs object now
    while NOT rs.EOF

        Response.Write rs("Name")

        rs.MoveNext
    wend

    closeRs(rs)
    closeDb(conn)
%>

(старое сообщение, так как я не видел тег sql

В Classic ASP всегда используется

Request.QueryString("myInput") или Request.Forms("myInput") или еще 2-в-1 Request("myInput") и работа оттуда

«Соединения» производятся по ссылкам и формируют сообщения / Получи

В сети есть множество примеров, но вот один

Чтобы сохранить переменные на страницах у вас есть (как и сегодня) 3 способа

  • Session переменная, она уходит за сеанс пользователя
  • Application переменная, она распространяется на каждый веб-сайт и распространяется для всех пользователей
  • Cookies

например, «Авторизованный доступ к странице» осуществляется путем установки Session при правильном входе в систему, пересылка с использованием Response.Redirect("myProtectedPage.asp") и на этой странице обычно выглядит так:

<%
    If Session("user-login") = True Then
        Response.Redirect("NotAuthorized.asp")
    End if
%>
<!--#include file="header.inc"-->
...

больше здесь

...