이 기사는 VB에서 생성 한 DLL 캡슐화 된 ASP 코드를 사용하여 데이터베이스에 연결합니다 (예로서 액세스 데이터베이스를 취함).
일반적으로 ASP를 사용하여 액세스 데이터베이스에 연결하면 일반적으로 다음 작업을 수행합니다.
'//proconn.asp
<%
Dimproconn
setproconn = server.createobject ( "adodb.connection")
proconn.open "driver = {Microsoft AccessDriver (*. mdb)}; uid =; pwd = 123; dbq ="& server.mappath ( "db.asp")
'원래 db.mdb 인 접미사 db.asp가있는 파일은 db.asp, 데이터베이스 비밀번호 123으로 변경되었습니다.
iferr.number <> 0then
response.write "데이터베이스에는 연결이 없습니다. 확인하십시오"
응답. 엔드
또 다른
응답. "데이터베이스 링크"
응답. 엔드
endif
%>
서버가 구성된 경우 Coponn.asp에 액세스하십시오. 데이터베이스 연결이 성공하면 출력은 "데이터베이스 연결 성공"이됩니다.
그러나 ASP 코드와 같은 보안 수준은 매우 낮습니다. 이 ASP 원본이 보이면이 데이터베이스 파일을 사용하면 다른 사람들이 쉽게
작동을 위해 데이터베이스를 엽니 다.
그래서 우리의 임무는 여기에 있습니다. 이러한 주요 컨텐츠를 캡슐화하는 방법은 무엇입니까?
먼저 방법과 객체를 결정해야합니다.
인터넷에서 일부 정보를 확인한 후 주로 VB를 사용하여 DLL을 생성하여 캡슐화합니다. 그래서 우리는 또한이 방법을 채택해야합니다 (아직 VB를 실제로 사용하지는 않았지만)
이 방법은 결정되므로 캡슐화해야 할 객체는 무엇입니까?
와서 모두를 만나십시오
"드라이버 = {Microsoft AccessDriver (*. MDB)}; uid =; pwd = 123; dBq ="& server.mappath ( "db.asp")
가장 중요한 코드입니다. 이 코드는 VB로 생성 된 DLL에서 더 잘 캡슐화해야합니다.
전체를 두지 않는 이유
Dimproconn
setproconn = server.createobject ( "adodb.connection")
proconn.open "driver = {Microsoft AccessDriver (*. mdb)}; uid =; pwd = 123; dbq ="& server.mappath ( "db.asp")
모두 캡슐화되어 있습니다 (전체 연결 코드가 캡슐화되었다고 말하기 때문에) 다른 ASP 파일이 Proconn.asp를 참조 할 때
또한 다른 작업을 수행하려면 내부의 안쪽 컨퍼런스가 필요하며 캡슐화되면 참조 및 작동에 불편합니다.
(위의 캡슐화 객체에 대한 설명의 이유는 내 개인적인 의견입니다. 일부 친구들은 전반적인 캡슐화가 Proconn 사용에 영향을 미치지 않는다고 말했습니다. 이해가 안 돼요.
"Driver = {Microsoft AccessDriver (*. MDB)}}; uid =; pwd = 123; dbq ="& server.mappath ( "db.asp") "
캡슐화 할 내용을 분석하십시오.
그것의 전반부는 문자열입니다.
"드라이버 = {Microsoft AccessDriver (*. MDB)}; uid =; pwd = 123; dBq ="
후반에 다른 문자열을 사용하고 연결합니다.
후반의 또 다른 문자열은 서버의 리턴 값입니다.
다음은이 패키지의 작동 과정입니다.
첫 번째
VB에 따라 새로운 ActiveXDLL 프로젝트를 작성하고 프로젝트 프로젝트 이름을 CondBDLL로 변경합니까 ?? 메소드 클래스 1의 이름이 CS로 변경됩니다.