권장 : ASP 팁 예 : 운영 양식 프로그램 정보 다음은 참조 된 컨텐츠입니다. ASP가있는 데이터베이스에 양식 컨텐츠를 삽입합니다. <% ' - loader.asp -' - 버전 1.5.2
8.3.3 연결 상태를 사용하십시오응용 프로그램 변수에 연결 문자열을 저장하는 것은 일반적인 트릭이며 포함 된 파일을 사용하는 것만 큼 작동합니다. 예를 들어 Global.asa 파일에 다음 코드를 추가 할 수 있습니다.
하위 응용 프로그램 _onstart ()
strconn = 제공자 = sqloledb; 데이터 소스 = 감시자; & _
초기 카탈로그 = 펍; 사용자 ID = Davids; 비밀번호 = 위스키
Application (ConnectionString) = strconn을 설정하십시오
종료 서브
ASP 페이지에서 다음 코드를 사용할 수 있습니다.
conpubs = server.createobject (adodb.connection)
conpubs.application (Connectionstring)
개인적인 관점에서 볼 때 다양한 서버 및 데이터베이스에 연결하는 여러 가지 다른 예를 작성했기 때문에 포함 된 파일 방법을 사용하는 것이 좋습니다. 응용 프로그램 방법을 사용하면 응용 프로그램을 다시 시작할 때마다 브라우저를 닫아야합니다. 독자는 자신이 좋아하는 모든 방법을 사용할 수 있으며 속도에 차이를 만들지 않습니다.
이 책 의이 섹션의 예는 Connection.asp 파일이 포함 된 파일로 사용됩니다.
8.3.4 연결 구문
위에서 설명한 것은 관련 이론입니다. 실제로 데이터 저장소에 연결하고 싶을 때 어떻게해야합니까? 명시 적으로 정의 된 연결 객체를 사용하는 경우 열린 메소드를 사용할 수 있으며 구문은 다음과 같습니다.
Connection.open [ConnectionString], [userId], [password], [옵션]
매개 변수는 표 8-1에 나와 있습니다.
열린 방법의 표 8-1 매개 변수 및 설명
매개 변수
설명
ConnectionString
연결 세부 사항이 포함 된 문자열. ODBC DSN의 이름, 데이터 링크 파일의 이름 또는 실제 연결 세부 사항 일 수 있습니다.
userID
연결 중에 사용자가 사용하는 이름입니다. 연결 문자열에 제공된 모든 사용자 이름을 대체하십시오
비밀번호
사용자 비밀번호. 연결 문자열에 제공된 암호를 덮어 씁니다
옵션
연결이 비동기 적으로 설정되어 있음을 지정하여 AdasyncConnect 일 수 있습니다. 이 매개 변수를 무시하고 동기 연결을 설정하십시오
스크립팅 언어는 ADO로부터 이벤트를받을 수 없기 때문에 ASP 환경에서는 비동기 연결이 사용되지 않습니다.
8.3.5 연결 예
다음은 몇 가지 예입니다. 여기에 strconn에 유효한 연결 문자열이 포함되어 있다고 가정합니다.
연결을 열려면 연결 객체의 열린 메소드를 사용하십시오. 예를 들어:
conpubs = server.connection (adodb.connection)
conpubs.
'일부 처리
conpubs.close
ConnectionString 속성을 사용할 수도 있습니다.
conpubs = server.createobject (adodb.connection)
conpubs.connectionstring = strconn
conpubs.
'일부 처리
conpubs.close
이 두 구현 방법에는 차이가 없습니다. 전자 메소드가 연결을 구현하는 데 사용되면 ConnectionString 속성도 할당됩니다.
데이터 저장소와 연결되면 ADO는 ConnectionString 속성 값을 변경할 수 있음을 주목할 가치가 있습니다. 걱정하지 마십시오. Ado는 일부 추가 속성 값을 채 웁니다.
8.3.6 버퍼 풀에 연결
연결 풀은 항상 많은 사람들을 혼란스럽게하지만 원칙은 실제로 매우 간단합니다. 연결이 닫히면 사용자 (및 ADO)의 경우 연결이 닫힙니다. 그러나 실제로 OLE DB는 연결을 닫지 않지만 비활성 연결 버퍼 풀에 넣습니다. 사용자 (또는 기타)가 연결을 엽니다면 OLE DB는 먼저 연결 풀에 동일한 연결 세부 사항과 연결되어 있는지 여부를 감지합니다. 그렇다면이 연결은 버퍼 풀에서 직접 얻습니다. 그렇지 않은 경우 사용자를위한 새 연결을 만듭니다. 자원 낭비를 피하기 위해 기본 시간 후에 버퍼 풀에서 연결이 지워집니다.
그렇다면 장점은 무엇입니까? 연결을 여는 것은 아마도 가장 느린 작업 중 하나 일 수 있으며 연결 버퍼 풀을 사용하면 사용자가 연결을 재현하지 않고도 데이터 저장소에 다시 연결할 수 있습니다. 이는 많은 연결을 지속적으로 열고 닫는 웹 사이트에서 특히 중요합니다.
ODBC 연결의 경우 연결 버퍼 풀은 ODBC 데이터 소스 관리자에 의해 제어됩니다. OLE DB의 경우 연결 버퍼 풀 (또는 세션 버퍼 풀)을 변경할 수 없습니다.
연결 버퍼 풀은 연결 공유가 아닙니다. 연결은 고객이 닫은 후에 만 다시 사용할 수 있습니다.
가정
연결 버퍼 풀이 적용 되려면 하우스 키핑이 질서 정연한 상태인지 확인해야합니다. 여기에는 연결 객체를 제 시간에 닫는 것이 포함되어 버퍼 풀에 다시 재사용 할 수 있습니다. 지속적으로 개방 및 닫는 연결이 시스템에 비싸다고 생각할 수도 있지만 확장 성을 측정해야합니다. 많은 사람들이 응용 프로그램을 사용할 수 있으며 OLE DB는 연결 리소스를 관리하는 데 매우 능숙합니다.
일반적인 원칙은 다음과 같습니다. 가능한 한 늦게 연결을 설정하고 동시에 연결을 열기위한 최단 기간을 보장하기 위해 가능한 한 빨리 연결을 닫습니다.
8.4 레코드 세트
앞에서 언급했듯이 레코드 세트는 Ado에서 가장 일반적으로 사용되는 객체이며 놀라운 것은 아닙니다. 결국, 그들은 데이터를 포함합니다. 그러나 생각보다 레코드 세트에 더 많은 것이 있으며, 이는 사용할 레코드를 선택하기위한 더 많은 참조를 제공하기 때문에 데이터를 저장하고 처리하는 방법을 아는 것이 중요합니다.
레코드 세트마다 유형이 다르며 일부 작은 장소에는 차이가있어 실수로 쉽게 이어질 수 있습니다. 당신이 진지하게 이야기해야 할 첫 번째는 커서의 개념입니다.
8.4.1 커서
커서는 많은 사람들을 혼란스럽게하는 개념이지만 실제로는 매우 간단합니다.
커서는 레코드 세트와 레코드 세트의 현재 위치를 관리하는 데 사용되며 현재 레코드 포인터에 의해 처리됩니다.
이것이 레코드 세트 객체가하는 일이 아닙니까? 예, 그러나 레코드 세트는 커서에도 의존합니다. 이것은 여전히 커서가 무엇인지에 대한 질문에 대답하지 않으므로 표 8-2와 같이 레코드 세트를 먼저 살펴 보겠습니다.
au_id
au_lname
au_fname
핸드폰
172-32-1176
하얀색
단발
408 496-7223
219-46-8915
녹색
마조리
415 986-7020
238-95-7766
카슨
셰릴
415 548-7723
267-41-2394
O'Leary
남자 이름
408 286-2428
274-80-9391
똑바로
학장
415 834-2919
341-22-1782
스미스
사리
913 843-0462
여기에는 6 개의 행과 4 개의 열이 있습니다. 레코드 세트를 열면 현재 레코드는 첫 번째 레코드, 즉 Bob White의 레코드입니다. 현재 레코드를 식별하기 위해 무엇을 사용합니까? 현재 레코드 포인터를 사용하십시오. 그렇다면이 포인터를 다루는 방법은 무엇입니까? 다음 레코드 또는 다른 레코드로 이동 해야하는 경우 커서를 통해 달성됩니다. 현재 행의 필드에 액세스 할 때 커서는 현재 위치에있는 행을 알고 있으므로 올바른 값을 반환 할 수 있습니다. 레코드 세트의 마지막 행 밖으로 이동하려고하면 커서도 처리합니다.
커서를 이해하는 좋은 방법은 커서를 레코드 세트 내에서 이동할 수있는 창으로 상상하는 것입니다. 이 창은 레코드 세트의 단일 행만큼 키가 크고 길기 때문에 한 번에 한 줄의 데이터 값 만 볼 수 있습니다. 다른 레코드로 이동하면 창이 함께 움직입니다.
어쩌면 이것이 매우 간단하다고 생각할 수도 있지만 커서로 할 수있는 것은 커서 유형에 따라 결정되기 때문에 중요합니다.
공유 : 루틴 : ASP를 사용하여 파일 주소가 유효한 지 확인 다음은 인용 된 내용입니다. <% response.write (<head> <style> <!-Span {font-size : 9pt}-> </style> </head & g