Continuo
LEctura a una base de datos desde mi DLL
+ Bueno para el ejemplo usaremos SQL 2005
+ Creamos una base llamada “mibase”
+ Dentro de ella una tabla llamada “nombres_comunes”
Código asp:
Ver originalUSE [mibase]
GO
/****** Object: Table [dbo].[nombres_comunes] Script Date: 09/17/2008 19:36:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[nombres_comunes](
[id] [int] IDENTITY(1,1) NOT NULL,
[nombre] [varchar](50) COLLATE Modern_Spanish_CI_AI NULL,
[veces] [numeric](18, 0) NULL,
[genero] [varchar](1) COLLATE Modern_Spanish_CI_AI NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
+ Luego insertamos algunos registros para tener valores en la tabla (nota insertare solo algunos registros pero prometo entregar un listo mas completo de datos)
Insertar registros: nombres_comunes
Código asp:
Ver originalinsert into nombres_comunes values ('ALEJANDRO', 252,'M')
insert into nombres_comunes values ('DANIEL', 244,'M')
insert into nombres_comunes values ('ADRIAN', 198,'M')
insert into nombres_comunes values ('PABLO', 177,'M')
insert into nombres_comunes values ('JAVIER', 157,'M')
insert into nombres_comunes values ('DAVID', 152,'M')
insert into nombres_comunes values ('GABRIEL', 150,'M')
insert into nombres_comunes values ('ALVARO', 137,'M')
insert into nombres_comunes values ('JORGE', 128,'M')
insert into nombres_comunes values ('DIEGO', 126,'M')
insert into nombres_comunes values ('SERGIO', 110,'M')
insert into nombres_comunes values ('CARLOS', 101,'M')
insert into nombres_comunes values ('SAMUEL', 96,'M')
insert into nombres_comunes values ('RAUL', 87,'M')
insert into nombres_comunes values ('HUGO', 86,'M')
insert into nombres_comunes values ('MIGUEL', 76,'M')
insert into nombres_comunes values ('LUCIA', 228,'F')
insert into nombres_comunes values ('PAULA', 221,'F')
insert into nombres_comunes values ('DANIELA', 179,'F')
insert into nombres_comunes values ('LAURA', 161,'F')
insert into nombres_comunes values ('MARIA', 152,'F')
insert into nombres_comunes values ('CARLA', 142,'F')
insert into nombres_comunes values ('ANDREA', 139,'F')
insert into nombres_comunes values ('CLAUDIA', 137,'F')
insert into nombres_comunes values ('ALBA', 116,'F')
insert into nombres_comunes values ('MARTA', 104,'F')
insert into nombres_comunes values ('SARA', 101,'F')
insert into nombres_comunes values ('NEREA', 91,'F')
insert into nombres_comunes values ('ADRIANA', 81,'F')
insert into nombres_comunes values ('ELENA', 74,'F')
insert into nombres_comunes values ('ALEJANDRA', 67,'F')
insert into nombres_comunes values ('CRISTINA', 63,'F')
Código para la lectura de la base de datos
Código asp:
Ver originalPublic Sub CrearTabla(strServer As String, strDB As String)
On Error GoTo errores
Dim objctx As ObjectContext
Dim Resp As ASPTypeLibrary.Response
Dim adCon As ADODB.Connection
Dim adRS As ADODB.Recordset
Dim iCount As Integer
Dim msConstring As String
Dim msSQL As String
Dim miBorder As Integer
msConstring = "driver={SQL Server};server=" + strServer + "; uid=SA; pwd=pruebas; database=" + strDB + ";"
msSQL = "select * from dbo.nombres_comunes order by id"
Set objctx = GetObjectContext()
Set Resp = objctx.Item("Response")
Set adCon = New ADODB.Connection
Set adRS = New ADODB.Recordset
adCon.ConnectionString = msConstring
adCon.Open
Set adRS.ActiveConnection = adCon
adRS.Open msSQL, , adOpenForwardOnly, adLockReadOnly
If adRS.EOF And adRS.BOF Then
Resp.Write "NO RECORDS RETURNED<BR>"
Exit Sub
End If
With Resp
.Write "<TABLE BORDER = " & miBorder & ">"
.Write "<TR>"
For iCount = 0 To adRS.Fields.Count - 1
.Write "<TD>" & adRS.Fields(iCount).Name & "</TD>"
Next
.Write "</TR>"
Do While Not adRS.EOF
.Write "<TR>"
For iCount = 0 To adRS.Fields.Count - 1
.Write "<TD>" & adRS.Fields(iCount).Value & "</TD>"
Next
.Write "</TR>"
adRS.MoveNext
Loop
.Write "</TABLE>"
End With
Set Resp = Nothing
adRS.Close
adCon.Close
Set adRS = Nothing
Set adCon = Nothing
Set objctx = Nothing
errores:
If Err.Number <> 0 Then
Response.Write "<p>Error en la conexion SQL</p>"
Response.Write "<p>.</p>"
Response.Write "<p>Error número: " + CStr(Err.Number) + "</p>"
Response.Write "<p>Error descripción: " + CStr(Err.Description) + "</p>"
Exit Sub
End If
End Sub
Para los programadores el código se explica fácilmente para los que no somos tan duchos necesitaremos algunas explicaciones.
Lo básico es enviar en los parámetros de nuestro ASP,
+ la dirección IP de el SQL Server
+ el nombre de la base,
+ dentro hacemos la consulta
++ Podríamos enviar el usuario y la clave también desde el ASP pero no quise profundizar en ello mucho en ello
creando la pagina ASP para la lectura
Código asp:
Ver original<html>
<head>
<title>Mi DLL ASP - Lectura Base de datos</title>
</head>
<body>
<%
Dim PobarMiDLL
On Error Resume Next
Set PobarMiDLL = Server.CreateObject("ForosDelWebDLL.funciones")
If Err <> 0 then
response.write "<h2>Error cargando DLL</h2>"
response.end
else
PobarMiDLL.CrearTabla "localhost","mibase"
Set PobarMiDLL = Nothing
End If
%>
</body>
</html>
el resultado en el navegador seria:
EDITO:
---- espero que les sea de utilidad ---