sql sql-server asp-classic connection-string

Conexión ASP SQL Server



sql-server asp-classic (2)

<% DIM objConn Set objConn = Server.CreateObject("ADODB.Connection") objConn.ConnectionString = "Data Source=123.123.12.123,1234;Database=DatabaseName;User Id=Usernm;Password=abcd1234;" objConn.Open DIM mySQL mySQL = "SELECT * FROM [Users] WHERE [User ID]=''1''" DIM objRS Set objRS = Server.CreateObject("ADODB.Recordset") objRS.open(mySQL, objConn) Response.Write objRS("FullName") objRS.Close Set objRS = Nothing objConn.Close Set objConn = Nothing %>

Quiero conectarme a una base de datos de SQL Server, leer los datos y cerrar la conexión. He estudiado los ejemplos y se me ocurrió esto. Pero no está funcionando. Por favor guíame. ¿Dónde estoy equivocado?


Algunas respuestas han sugerido incluir la lógica en las funciones, no hay necesidad de esto.

Es solo mucha pelusa que no es necesaria, solo use el objeto ADODB.Command . Hay cientos de formas de abordar esto, pero un método que he encontrado que funciona una y otra vez es dejar que el objeto ADODB.Command haga el trabajo y luego devolver los resultados en una Array utilizando el método .GetRows() del objeto ADODB.Recordset . De esta forma, puede cerrar los objetos ADODB.Recordset y ADODB.Command rápidamente y trabajar solo con la Array .

Dim conn, cmd, rs, sql, data, search ''Assume value to query comes from a Request Collection. search = Request("myvalue") & "" conn = "Data Source=123.123.12.123,1234;Database=DatabaseName;User Id=Usernm;Password=abcd1234;" sql = "select from mytable where this = ?" Set cmd = Server.CreateObject("ADODB.Command") With cmd ''No need to handle connection let ADODB.Command create and destory it. .ActiveConnection = conn .CommandType = adCmdText .CommandText = sql .Parameters.Append(.CreateParameter("@myparam", adVarWChar, adParamInput, 50)) .Parameters("@myparam").Value = search Set rs = .Execute() If Not rs.EOF Then data = rs.GetRows() Call rs.Close() Set rs = Nothing End with Set cmd = Nothing ''ADODB.Connection is closed when ADODB.Command is destroyed. If IsArray(data) Then rows = UBound(data, 2) For row = 0 To rows ''Return first column of the current row Call Response.Write("First Column of Row " & row & " is ''" & data(0, row) & "''<br />" Next Else Call Response.Write("No records") End If


Dim rs, dbConn Function OpenDB() Set dbConn = Server.CreateObject("ADODB.Connection") dbConn.ConnectionTimeout = 300 dbConn.CommandTimeout = 300 dbConn.Open "Data Source=123.123.12.123,1234;Database=DatabaseName;User Id=Usernm;Password=abcd1234;" End Function Function CloseDB() Set rs = Nothing if ucase(TypeName(dbConn)) = "CONNECTION" then dbConn.Close Set dbConn = Nothing end if End Function Function OpenRecordSet(recset, tablename) Call OpenDB() Set recset = Server.CreateObject("ADODB.Recordset") recset.Open tablename, dbConn, 0, 1 End Function Function CloseRecordSet(recset) Set recset = Nothing Call CloseDB() End Function

Entonces usa

<% Call OpenDB() sql = "select from mytable where this = ''that''" Set rs = dbConn.Execute(sql) if not rs.EOF then '' do your stuff! end if Call CloseDB() %>

http://www.shiningstar.net/articles/articles/database/datafunctions.asp?ID=AW