권장 : SQL-DMO를 사용하여 백업 및 확인 ASP 애플리케이션을 만듭니다. 개요 SQL 분산 관리 개체 (SQL-DMO)는 개발자에게 프로그램 및 스크립팅 언어를 사용하여 일반 작업을 수행하는 방법을 제공하여 SQL Server의 기능을 확장합니다. 이 기사는 SQL-DMO를 영리하게 사용하여 생성하는 방법에 대해 이야기합니다.
1. 명령문을 선택하십시오
SQL 세계에서 가장 기본적인 작업은 SELECT 문입니다. 데이터베이스 도구 바로 아래에서 SQL을 직접 사용하면 많은 사람들이 다음 작업에 익숙해집니다.
| 다음은 인용 된 내용입니다. 무엇을 선택하십시오 어떤 THEBLE에서 기준 위치 |
위의 문을 실행하면 결과를 저장하는 쿼리가 생성됩니다.
ASP 페이지 파일에서는 위의 일반 구문을 사용할 수 있지만 상황은 약간 다릅니다. ASP를 프로그래밍 할 때 select 문의 내용은 변수에 문자열로 할당되어야합니다.
| 다음은 인용 된 내용입니다. SQL = 기준의 위치를 선택하십시오 |
좋아, 나는 SQL이 ASP에서 어떻게 말하는지 이해하고 같은 방식으로 그것을한다. 귀하의 요구를 충족하는 한 기존의 SQL 쿼리 모드 및 조건부 쿼리가 유용 할 수 있습니다.
예를 들어, 데이터베이스, 즉 제품에 데이터 테이블이 있다고 가정 할 수도 있으며 이제이 테이블의 모든 레코드를 검색하려고합니다. 그런 다음 다음 코드를 작성했습니다.
| 다음은 인용 된 내용입니다. SQL = 제품에서 선택 *을 선택하십시오 |
위의 Code-SQL 문의 기능은 테이블의 모든 데이터를 검색하는 것입니다. 실행 후 데이터 테이블의 모든 레코드가 선택됩니다. 그러나 p_name과 같은 테이블에서 특정 열만 제거하려는 경우. 그러면 * 와일드 카드 문자를 사용할 수 없습니다. 특정 열의 이름을 입력해야하며 코드는 다음과 같습니다.
| 다음은 인용 된 내용입니다. SQL = 제품에서 p_name을 선택하십시오 |
위의 쿼리를 실행하면 제품 테이블 및 P_Name 열의 모든 내용이 선택됩니다.
2. 위치 절에 대한 쿼리 조건을 설정하십시오
예를 들어, P_NAME 레코드 만 꺼내고 해당 레코드의 이름을 문자 w로 시작 해야하는 경우 다음 Where 절을 사용해야합니다.
| 다음은 인용 된 내용입니다. sql = p_name과 같은 'w%'와 같은 제품에서 p_name을 선택하십시오. |
여기서 키워드에 이어 데이터를 필터링하는 데 사용되는 조건이 이어집니다. 이러한 조건의 도움으로 특정 표준을 충족하는 데이터 만 쿼리됩니다. 위의 예에서 쿼리 결과는 w로 시작하는 이름의 p_name 레코드 만 얻게됩니다.
위의 예에서 백분율 기호 (%)는 쿼리가 W 문자로 시작하는 모든 레코드 항목을 반환하고 데이터 또는 데이터가 없음을 의미합니다. 따라서 위의 쿼리를 실행할 때 West와 Willow는 제품 테이블에서 선택되고 쿼리에 저장됩니다.
보시다시피, Select 문을 신중하게 설계하면 레코드 세트에 반환 된 정보의 양을 제한 할 수 있으며 더 많은 것을 생각하면 항상 요구 사항을 충족시킬 수 있습니다.
이것들은 SQL 사용을 마스터하는 시작일뿐입니다. 복잡한 선택 문의 사용을 점차적으로 마스터하는 데 도움이 되려면 주요 표준 용어 인 비교 연산자를 살펴 보겠습니다. 이러한 것들은 특정 데이터를 얻기 위해 자신의 선택 문자열을 만들 때 종종 사용됩니다.
위치 절 기본 사항
WHERE 절을 만들기 시작하면 가장 쉬운 방법은 표준 비교 기호를 사용하는 것입니다.이 비교 기호는 <, <=,>,> =, <> 및 =입니다. 분명히, 당신은 곧 다음 코드의 의미와 구체적인 결과를 이해할 것입니다.
| 다음은 인용 된 내용입니다. P_PRICE> = 199.95의 제품에서 *를 선택하십시오 p_price <> 19.95 인 제품에서 *를 선택하십시오 p_version = '4'인 제품에서 * 선택 |
참고 : 여기서 마지막 예제의 숫자 4는 단일 따옴표로 둘러싸여 있음을 알 수 있습니다. 그 이유는이 예에서 4가 숫자 유형이 아닌 텍스트 유형이기 때문입니다.
3. 비교 연산자 : 좋아요, 좋아하지 않고 그 사이
비교 연산자는 표에서 데이터가 검색되는 컨텐츠 범위를 지정합니다. 레코드 세트의 범위를 좁히기 위해 필터를 생성하는 데 사용하여 주어진 작업에서 관심있는 정보 만 저장할 수 있습니다.
위의 W의 헤더 레코드를 꺼낸 예에서 같은 사용법을 보았습니다. 같은 결정 요인은 매우 유용한 기호입니다. 그러나 많은 경우에, 그것을 사용하면 너무 많은 데이터를 가져올 수 있으므로 뇌를 사용하고 사용하기 전에 얻을 데이터에 대해 더 많이 생각하는 것이 가장 좋습니다. 5 자리의 SKU 번호를 꺼내고 시작은 1이고 엔딩은 5 숫자라고 가정 해 봅시다. 그러면 % 기호 대신 밑줄 (_)을 사용할 수 있습니다.
SQL = 선택 * P_SKU가 '1___5'와 같은 제품에서 선택 *
밑줄은 모든 캐릭터를 나타냅니다. 따라서 1___5를 입력하면 검색이 특정 모드를 만족하는 5 자리 범위로 제한됩니다.
반대를하려면 1___5 모드와 일치하지 않는 모든 SKU 항목을 찾으십시오. 그러면 지금 진술 예제에서 같은 것에 추가하지 않아도됩니다.
사이
특정 범위 내에서 데이터를 추출하고 사전에 범위의 시작점과 엔드 포인트를 알고 있다고 가정하면 판단 단어 사이를 사용할 수도 있습니다. 이제 주어진 테이블에서 1에서 10 사이의 레코드를 선택하려고한다고 가정 해 봅시다. 다음 사이에 사용할 수 있습니다.
… 여기서 ID는 1과 10 사이입니다
또는 친숙한 수학적 판단 문장을 사용할 수 있습니다.
… 여기서 id> = 1 및 id> = 10입니다
4. 공동 진술
우리가 지금까지 이야기 한 SQL 진술은 비교적 간단합니다. 표준 레코드 세트 루프 쿼리를 전달할 수 있다면이 문장은 더 복잡한 요구 사항을 충족 할 수 있습니다. 그러나 왜 그것을 시도하는 기본 수준을 고수해야합니까? 더 강력한 기능을 완성하기 위해 다른 기호를 추가 할 수 있습니다.
다음 SQL 문이 예입니다.
| 다음은 인용 된 내용입니다. SQL = C_FIRSTNAME, C_LASTNAME, C_EMAIL이 NULL 및 C_PURCHASE = '1'또는 C_PURCHASE = '2'및 C_LASTNAME LIKE 'A%'를 선택하십시오. |
현재 가지고있는 SQL 지식을 사용하면 위의 예제는 설명하기가 어렵지 않지만 위의 진술은 조건부 문장이 단일 SQL 문에 어떻게 접착되는지 명확하게 볼 수 없습니다.
다중 라인 문
SQL 문이 이해하기 쉽지 않은 경우 전체 명령문을 여러 줄의 코드 라인으로 분해 한 다음 기존 변수를 기반으로 쿼리 문의 다양한 구성 요소를 점차적으로 추가하고 동일한 변수로 저장할 수 있습니다.
| 다음은 인용 된 내용입니다. SQL = 선택 C_FIRSTNAME, C_LASTNAME, C_EMAILADDRESS, C_PHONE을 선택하십시오 SQL = SQL 및 고객의 SQL sql = sql & 여기서 c_firstname 'a%'와 c_emailaddress not null sql = sql & order by c_lastname, c_firstname |
마지막 문장에 따르면 SQL 변수에는 다음 전체 select 문이 포함되어 있습니다.
| 다음은 인용 된 내용입니다. C_FirstName, C_LASTNAME, C_EMAILADDRESS, C_LASTNAME와 C_EMAILADDRESS NUL NULL ORDER NO NULL ORDER, C_FIRSTNAME를 선택하십시오. |
위의 전체 문장을 분해 한 후에는 읽기가 더 쉽습니다! 디버깅 할 때 프로그램을 변경하고 더 잘 읽기 위해 몇 개의 캐릭터를 더 입력 할 수 있습니다. 그러나 인용문을 닫기 전에 또는 따옴표를 열린 후 공백을 추가해야한다는 것을 기억해야합니다. 그래서 문자열이 연결될 때 몇 단어를 모으지 않도록하십시오.
5. 실행을 시작하십시오
Select 문의 구성 및 사용을 배우고 나면 사용 방법을 배울 차례입니다. 보유한 데이터베이스 도구에서 "실행"이라는 단어가있는 버튼을 누르야한다는 것을 의미 할 수 있습니다. ASP 웹 페이지에서 SQL 문은 즉시 실행되거나 저장 프로 시저로 호출 될 수 있습니다.
SQL 문이 만들어지면 쿼리 결과에 액세스해야합니다. 분명히 여기의 핵심은 ASP 레코드 세트입니다. 더 친숙한 SQL 기술을 최대한 활용하려면 일반 ASP 웹 페이지에서 가장 일반적으로 사용되는 레코드 세트를 조정해야합니다.
| 다음은 인용 된 내용입니다. 희미한 Rs set rs = server.createobject (adodb.recordset) Rs. Open SQL, Conn, 1,2 |
여기서 Conn은 데이터베이스 연결 선언이며, 수정 된 유일한 수정은 SQL 문이 포함 된 변수를 사용하여 쿼리 할 데이터 테이블의 이름을 대체하는 것입니다.
이 접근법의 장점 중 하나는 위의 1과 2에 표시된 것처럼 커서 유형을 지정할 수 있다는 것입니다.
SQL을 실행하십시오
소형 코드 라인을 사용하여 레코드 세트를 만들어 SQL 문을 실행할 수도 있습니다. 다음은 구문입니다.
희미한 Rs
set rs = conn.execute (SQL)
위의 예에서 보는 SQL은 자신의 SQL Select 문을 저장하는 변수입니다. 이 코드 라인은 SQL 문을 실행하거나 데이터베이스를 쿼리하고 데이터를 선택하고 데이터를 레코드 세트에 저장합니다. 위의 예에서는 변수 Rs입니다. 이 접근법의 주요 단점은 사용하려는 커서 유형을 선택할 수 없다는 것입니다. 대신, 레코드 세트는 항상 전방 커서로 열립니다.
커서 때문에 레코드 세트를 만드는 두 가지 방법에 익숙 할 수 있습니다. 쿼리를 실행하면 문자를 입력하는 데 소비 된 시간이 직접 저장되지만이 경우 기본 커서를 사용해야합니다.이 경우 정상적으로 작동하지 않을 수 있습니다. 어떤 방법을 사용하든 둘 사이의 가장 큰 차이점은 코드가 개선되었는지 여부에 지나지 않습니다. 어떤 분야를 얻거나 표준이 무엇인지 고려하지 않고 데이터를 저장하는 방법에 관계없이 SQL 스타일 레코드 세트를 사용하는 것은 ASP에서 열린 표준 레코드 세트보다 크기가 훨씬 작습니다. 작동 용이성은 말할 것도 없습니다. 결국, 데이터를 필터링함으로써 시간이 많이 걸리는 IF 테스트 및 가능한 루프를 제거합니다.
6. 쿼리를 저장하십시오
쿼리가 비교적 단순하면 매번 처음부터 SQL 문을 작성하는 데 많은 노력이 필요하지 않습니다. 그러나 복잡한 쿼리는 다릅니다. 처음부터 시작할 때마다 많은 개발 오류가 발생합니다. 따라서 SQL이 원활하게 실행되면 저장하고 필요한 경우 전화 할 수 있습니다. 이러한 방식으로 간단한 쿼리조차도 언제든지 쿼리 문을 저장할 수 있습니다.
데이터베이스에서 선택 해야하는 현재 비즈니스 지원 문제를 나타내려면 일주일에 한 번 팀에보고해야한다고 가정하고, 레코드를 날짜별로 선택하고 사용중인 지원 문제의 범주에 따라 정렬해야합니다. 이 쿼리를 설계 한 후에는 왜 일주일에 한 번 다시 작성해야합니까? HTML 페이지에서 쿼리를 생성하지 않으면 데이터베이스 도구로 쿼리를 생성하고 저장해야합니다. 그런 다음 ActiveCommand 속성을 사용하여 ASP 페이지에 쿼리를 삽입 할 수 있습니다. 당신은 처음 또는 두 가지가 의미가 없다는 것을 알 수 있지만 실제로는 몇 줄의 코드 일뿐입니다.
| 다음은 인용 된 내용입니다. set objsq = server.createobject (adodb.command) OBJSQ.ActiveConnection = DatabaseName objsq.commandText = StoredQueryName OBJSQ.COMMANDTYPE = ADCMDSTOREDPROC objrec = objsq.execute를 설정하십시오 |
adcmdstordproc을 사용한다는 것은 페이지에 adovbs.inc 파일을 포함 시켰음을 의미합니다. 이 파일은 숫자가 아닌 이름으로 액세스 할 수있는 액세스 상수를 정의합니다. 페이지에 파일을 포함 시키면 adcmdstordproc을 사용할 수 있습니다. 이런 식으로, 위의 저장된 쿼리가 향후에 볼 때 무엇을 의미하는지 이해하는 것이 더 쉬울 것입니다.
7. 주문
액세스 데이터베이스에서 가장 역겨운 것을 선택하면 입력 한 순서대로 데이터베이스에 입력됩니다. 액세스 환경에서 정렬을 사용하여 레코드보기를 변경하더라도 데이터 테이블의 레코드 순서가 변경되지 않았습니다.
ASP RecordSet을 사용하여 웹 페이지에 레코드를 작성하는 경우 혼란에 빠지는 것이 얼마나 고통 스러운지 알 수 있습니다. 그러나 간단하고 편리한 솔루션이 없기 때문에이 문제에 직면해야 할 수도 있습니다. 다행히도 주문은이 문제를 단순화 할 수 있습니다.
결과를 정렬하려면 SELECT 문의 끝까지 순서를 추가하고 정렬 해야하는 참조 열을 지정하십시오. 따라서 고객 테이블을 고객의 성으로 정렬하려면 다음 쿼리 문을 작성할 수 있습니다.
SQL = C_LASTNAME, C_FIRSTNAME, C_LASTNAME의 C_LASTNAME, C_LASTNAME를 선택하십시오
이러한 방식으로 레코드 세트를 만들고 결과를 화면에 쓰기 시작하는 한 데이터가 알파벳순으로 배열되어 있음을 알 수 있습니다.
다음은 테이블의 작업입니다.
표 A의 구조 만 표 B에 만 복사하십시오 (복사 데이터 없음)
| 다음은 인용 된 내용입니다. sql = a에서 b로 * select * 1 <> 1 SQL = A에서 B로 * 선택 * 1 = 0 |
표 A의 구조 및 데이터를 표 B에 복사하십시오.
| 다음은 인용 된 내용입니다. sql = a에서 b로 * 선택하십시오 |
공유 : ASP 3.0 고급 프로그래밍 (45) 비동기 실행은 백그라운드에서 데이터를 검색하는 것을 말하며, 얻은 데이터는 모든 데이터가 반환되기 전에 웹 페이지에서 사용할 수 있습니다. 모든 데이터가 필요할 수 있지만 비동기 작업은 적어도 미리 데이터 처리를 시작할 수 있습니다. 또한 사용자가 특정 콘텐츠를 먼저 볼 수 있으므로 웹 사이트가됩니다.