권장 : ASP에서는 DBF 데이터베이스에서 SQL 테이블로 데이터 내보내기를 구현합니다. 설명 : DBF 데이터베이스 구조는 SQL 테이블과 일치해야합니다. 다음은 참조 내용입니다 : <% dim conndbf_dbf, driver_dbf, sourcetype_dbf, dbpath_dbf dim conn_
8.4.3 레코드 세트 작성레코드 세트를 만드는 것은 매우 쉽습니다. 레코드 세트의 열린 메소드를 호출하여 달성됩니다.
recordset.open [source], [activeconnection], [cursortype], [locktype], [옵션]
매개 변수와 설명은 표 8-3에 나와 있습니다.
표 8-3 열린 방법의 매개 변수 및 설명
매개 변수
설명
원천
데이터 소스. 데이터베이스의 테이블 이름, 저장된 쿼리 또는 절차, SQL 문자열, 명령 개체 또는 제공자에게 적합한 기타 명령 개체 일 수 있습니다.
활성화
레코드 세트에서 사용한 연결. 연결 문자열 또는 열린 연결 객체 일 수 있습니다.
커서 타입
사용 된 커서의 유형. 정의 된 커서 유형 중 하나 여야하며 기본값은 adforwardonly입니다.
Locktype
사용 된 잠금 유형. 정의 된 잠금 유형 중 하나 여야하며 기본값은 adlockreadonly입니다.
옵션
테이블, 텍스트 문자열 등과 같이 소스 매개 변수의 내용이 무엇인지 제공합니다.
예를 들어, 데이터베이스 펍의 저자 테이블에서 레코드 세트를 열려면 다음과 같습니다.
Dim Rsauthors
set rsauthors = server.createobject (adodb.recordset)
rsauthors. Open Authors, Strconn
'여기서 뭔가를하십시오
rsauthors.close
rsauthors = 아무것도 설정하지 않습니다
지정되지 않은 여러 매개 변수가 있습니다. 실제로 모든 매개 변수는 선택 사항이며, 열기 전에 레코드 세트의 해당 속성 값을 설정할 수 있습니다.
Dim Rsauthors
set rsauthors = server.createobject (adodb.recordset)
RSAUTHORS와 함께
.Source = 저자
.ActiveConnection = strconn
.cursortype = 채택
.LockType = adlockreadonly
.열려 있는
끝납니다
'여기서 뭔가를하십시오
rsauthors.close
rsauthors = 아무것도 설정하지 않습니다
레코드 세트가 열리면 현재 포인터는 첫 번째 레코드에 자동으로 위치합니다. 레코드 세트에 레코드가없는 경우 EOF 및 BOF 속성이 모두 참입니다.
rsauthors. Open Authors, Strconn
rsauthors.bof 및 rsauthors.eof
'레코드 세트가 비어 있습니다
끝 If
1. 옵션 매개 변수
열기 메소드의 옵션 매개 변수를 사용하면 명령 텍스트 내용을 지정할 수 있습니다. 다음 명령 상수 중 하나 일 수 있습니다.
ADCMDTEXT : SQL 문자열과 같은 텍스트 명령.
adcmdtable : 테이블 이름.
ADCMDSTOREDPROC : 저장 프로 시저 이름.
adcmdfile : 저장된 레코드 세트의 파일 이름.
adcmdTeableDirect : 테이블 이름.
adcmdurlbind : URL 주소.
adcmdtable과 adcmdtabledirect의 차이점은 매우 작습니다. 테이블의 모든 열을 사용하려면 ADCMDTeableDirect를 사용하면 ADO가 내부 최적화를 수행하기 때문에 더 빨리 실행됩니다.
명령 유형이 지정되지 않으면 ADO는 실행 된 명령 유형을 계산해야하므로 추가 오버 헤드가 발생합니다.
여기에는 두 가지 옵션이 더 있습니다. ADCMDUNSPECIFIED는 지정된 유형이 없음을 의미합니다. adcmdunknow는 명령 유형이 알려지지 않음을 의미합니다. 일반적으로 사용되지 않을 수 있습니다.
추가 옵션
옵션 매개 변수는 위의 상수 중 하나 일 수 있지만 다음 executeoptionenum 상수도 추가 할 수 있습니다.
adasyncexcute : 명령을 비동기 적으로 실행합니다.
Adasyncfetch : 초기 행 세트를 얻은 후 나머지 행을 비동기식으로 얻으십시오.
adasyncfetchblocking : 레코드를 얻지 못하고 명령이 실행되는 것을 막지 않는 것을 제외하고 다른 하나는 adasyncfetch와 유사합니다.
adexechtenorecords : 명령은 레코드를 반환하지 않습니다.
비동기 처리는 작업이 백그라운드에서 수행되며 명령을 실행 한 다음 완료되기를 기다리지 않고 다른 작업을 계속할 수 있음을 의미합니다 (동기 조작). 데이터 수집이 여전히 백그라운드에있는 동안 사용자에게 일부 컨텐츠를 표시하기 위해 명령 실행에서 반환 할 수 있기 때문에 사용자 인터페이스를 작성할 때 특히 편리합니다. 스크립팅 언어가 ADO 이벤트를 지원하지 않기 때문에 레코드 세트를 반환 할 때 ASP 프로그래머에게는 그다지 유용하지 않으므로 레코드 세트가 채우기 시프트를 완료 한시기는 알려져 있지 않습니다. 업데이트를 처리, 삭제 또는 삽입 또는 삽입 할 때 레코드 세트를 반환하지 않으면 결과에 신경 쓰지 않는 경우에만 비동기 작업을 사용할 수 있습니다.
반면에 Adexecutenorecords 옵션은 매우 유용합니다. Ado에게 데이터를 반환하지 않는 명령을 실행하도록 지시합니다. 따라서 레코드 세트를 만들 필요가 없습니다 (아마도 비어 있음). 이로 인해 업데이트 또는 데이터 추가에 대한 쿼리 작업 실행 속도가 높아집니다.
이 옵션 중 하나를 추가하려면 OR 기호를 사용할 수 있습니다 (플러스 부호에 해당)
adcmdstordproc 또는 adexecutenorecords
adcmdstoreproc adexecutenorecords
다음 장에서는 관련 컨텐츠에 대한 자세한 소개가 표시됩니다. 레코드 세트가 아닌 명령을 다룰 때 더 유용 할 수 있습니다.
2. 레코드 세트로 이동하십시오
레코드 세트가 열리면 종종 각 레코드를 가로 질러야합니다. 이를 위해서는 EOF 속성을 사용해야합니다. 레코드 세트의 끝에 도달하면 EOF가 진실됩니다. 루프는 다음과 같이 만들 수 있기 때문입니다.
rsauthors. Open Authors, Strconn
rsauthors.eof
응답. rsauthors (au_lname :) & & _
rsauthors (au_fname) & <br>
rsauthors.movenext
향하게 하다
위의 예제는 종료하기 전에 EOF 속성이 참을 때까지 반복됩니다. Movenext 메소드는 다음 레코드로 이동하는 데 사용됩니다.
레코드 세트에서 후진 이동이 허용되면 MovePrevious 메소드를 사용할 수 있습니다. 이 경우 BOF 속성 값은 루프에서 감지해야합니다. 첫 번째 및 마지막 레코드로 이동하는 MoveFirst 및 Movelast 메소드도 있습니다.
rsauthors.open 저자, Strconn, Abonaldynamic
'이제 첫 번째 기록
rsauthors.movelast
'이제 마지막 기록에 있습니다
rsauthors.moveprevious
rsauthors.moveprevious
'이제 레코드 세트 끝에서 3 줄
rsauthors.movefirst
'처음으로 다시
3. 필드 컬렉션을 사용하십시오
필드 컬렉션에는 레코드 세트의 각 필드 (열)의 필드 객체가 포함되어 있습니다. Fields Collection은 기본 레코드 세트 컬렉션이므로 위의 Wend 예제와 마찬가지로 필드에 액세스 할 때 생략 할 수 있습니다. 따라서 필드에 액세스하는 방법에는 여러 가지가 있습니다.
rsauthors.fields (au_lname) .Value
rsauthors (au_lname) .Value
rsauthors (1). 값
rsauthors.fields (1) .Value
필드 이름을 사용하거나 컬렉션에서 비트를 사용할 수 있습니다.
공유 : ASP는 데이터베이스에 양식을 제출하는 동안 이메일 알림 보내기를 구현합니다. 다음은 인용 된 내용입니다. <% dim objcdomail set objcdomail = server.createobject (cdonts.newmail) objcdomail.from = xxx@h.