ADOData 컨트롤 사용
ADOData 컨트롤은 Microsoft ADO(ActiveX Data Objects)를 사용하여 데이터 바인딩된 컨트롤과 데이터 공급자 간의 연결을 빠르게 설정합니다. 데이터 바인딩된 컨트롤은 DataSource 속성이 있는 컨트롤입니다. 데이터 공급자는 OLEDB 사양을 준수하는 모든 데이터 소스가 될 수 있습니다. Visual Basic의 클래스 모듈을 사용하여 하위 집합 데이터 공급자를 쉽게 만들 수도 있습니다.
응용 프로그램에서 ActiveX 데이터 개체를 직접 사용할 수 있지만 ADOData 컨트롤은 그래픽 컨트롤("앞으로" 및 "뒤로" 버튼 포함)과 최소한의 코드를 사용할 수 있는 사용하기 쉬운 인터페이스라는 장점이 있습니다. 데이터베이스 애플리케이션.
Visual Basic "도구 상자"에서는 확인란, 콤보 상자, 이미지, 레이블, 목록 상자, 그림 상자 및 텍스트 상자 컨트롤을 포함하여 많은 컨트롤을 데이터 바인딩된 컨트롤로 사용할 수 있습니다. 또한 Visual Basic에는 DataGrid, DataCombo, Chart 및 DataList 컨트롤과 같은 여러 데이터 바인딩 ActiveX 컨트롤도 포함되어 있습니다. 사용자는 자신만의 데이터 바인딩 ActiveX 컨트롤을 만들거나 다른 개발자로부터 컨트롤을 구입할 수도 있습니다.
이전 버전의 Visual Basic에서는 데이터 액세스를 위한 기본 데이터 컨트롤과 RDC(RemoteData 컨트롤)를 제공했습니다. 이전 버전과의 호환성을 제공하기 위해 두 컨트롤 모두 Visual Basic에 계속 포함되어 있습니다. 그러나 ADO는 적응성이 더 높기 때문에 사용자는 ADOData 컨트롤을 사용하여 새 데이터베이스 응용 프로그램을 만드는 것이 좋습니다.
추가 정보 데이터 바인딩된 컨트롤의 전체 목록은 "ADOData 컨트롤에 바인딩된 컨트롤"에 있습니다. 이러한 내장 데이터 컨트롤이나 RemoteData 컨트롤을 사용하는 방법을 알아보려면 "데이터 컨트롤 사용" 또는 "RemoteData 컨트롤 사용"을 참조하십시오. 데이터 공급자 생성에 대한 자세한 내용은 "데이터 인식 클래스 생성"을 참조하십시오.
가능한 사용법
로컬 또는 원격 데이터베이스에 연결합니다.
지정된 데이터베이스 테이블을 열거나 SQL(구조적 쿼리 언어) 쿼리, 저장 프로시저 또는 데이터베이스의 테이블 보기를 기반으로 레코드 집합을 정의합니다.
데이터 필드의 값을 데이터 바인딩된 컨트롤에 전달하여 표시하거나 변경할 수 있습니다.
새 레코드를 추가하거나 바인딩된 컨트롤에 표시된 데이터의 변경 사항을 기반으로 데이터베이스를 업데이트합니다.
클라이언트 또는 프런트 엔드 데이터베이스 응용 프로그램을 만들려면 ADOData 컨트롤과 기타 필수 Visual Basic 컨트롤을 양식에 추가합니다. 필요에 따라 양식에 여러 ADOData 컨트롤을 배치할 수 있습니다. 그러나 이 컨트롤은 연결을 생성하는 다소 "비용이 많이 드는" 방법이므로 첫 번째 컨트롤에 최소한 두 개의 연결이 있고 각 후속 컨트롤에 최소한 하나의 연결이 더 있을 때 사용해야 합니다.
최소한의 코드로 프런트 엔드 데이터베이스 애플리케이션 만들기
디자인 타임에 몇 가지 속성을 설정하면 최소한의 코드로 데이터베이스 애플리케이션을 만들 수 있습니다. OLEDB 데이터 원본을 사용하는 경우 해당 Microsoft DataLinkName(.MDL)을 컴퓨터에 만들어야 합니다. 단계별 예제는 "Northwind의 OLEDBDataLink 만들기"를 참조하세요.
간단한 프런트 엔드 데이터베이스 애플리케이션을 생성하려면 다음을 수행하십시오.
1. ADOData 컨트롤을 폼에 배치합니다(아이콘의 도구 설명은 ADODC입니다). 컨트롤이 "도구 상자"에 없으면 Ctrl T 키를 눌러 "Parts" 대화 상자를 표시합니다. 구성 요소 대화 상자에서 MicrosoftADODataControl을 클릭합니다.
2. "도구 상자"에서 "ADOData 컨트롤"을 클릭하여 선택합니다. 그런 다음 F4 키를 눌러 속성 창을 표시합니다.
3. 속성 창에서 ConnectionString을 클릭하여 ConnectionString 대화 상자를 표시합니다.
4. Microsoft DataLinkfile(.MDL)을 생성한 경우 "OLEDB 파일 사용"을 선택하고 "찾아보기"를 클릭하여 컴퓨터에서 파일을 찾습니다. DSN을 사용하는 경우 ODBC 데이터 원본 이름 사용을 클릭하고 상자에서 DSN을 선택하거나 새로 만들기를 클릭하여 새로 만듭니다. 연결 문자열을 만들려면 ConnectionString 사용을 선택하고 생성을 클릭한 다음 데이터 연결 속성 대화 상자를 사용하여 연결 문자열을 만듭니다. 연결 문자열을 만든 후 확인을 클릭합니다. ConnectionString 속성은 다음 줄과 유사한 문자열로 채워집니다.
드라이버={SQLServer};서버=bigsmile;uid=sa;pwd=pwd;데이터베이스=pubs
5. "속성" 창에서 "레코드 소스" 속성을 SQL 문으로 설정합니다. 예: SELECT*FROMTitlesWHEREAuthorID=72 테이블에 액세스할 때 항상 WHERE 절을 포함해야 합니다. 그렇지 않으면 전체 테이블이 잠기게 되어 다른 사용자에게 심각한 장애가 될 수 있습니다.
6. 데이터베이스 정보를 표시하려면 양식에 또 다른 "텍스트 상자" 컨트롤을 배치합니다.
7. "속성" 창에서 Text1의 "데이터 소스" 속성을 ADOData 컨트롤(ADODC1)의 이름으로 설정합니다. 그러면 텍스트 상자와 ADOData 컨트롤이 함께 바인딩됩니다.
8. "속성" 창에서 "데이터 필드"를 클릭하여 사용 가능한 필드의 드롭다운 목록을 가져옵니다. 표시하려는 필드의 이름을 클릭합니다.
9. 액세스하려는 각 필드에 대해 6, 7, 8단계를 반복합니다.
10. F5 키를 눌러 애플리케이션을 실행합니다. 사용자는 ADOData 컨트롤에 있는 네 개의 화살표 버튼을 사용하여 데이터의 시작 부분이나 레코드의 끝 부분에 도달하거나 데이터 내의 한 레코드에서 다른 레코드로 이동할 수 있습니다.
프로그램에서 ConnectionString, Source, DataSource 및 DataField를 설정하십시오. 다음 코드는 프로그램에서 이러한 네 가지 속성을 설정하는 방법을 보여줍니다. DataSource 속성을 설정하려면 Set 문을 사용해야 합니다.
PRivateSubForm_Load()
ADODC1 포함
.ConnectionString=드라이버={SQLServer};&_
서버=bigsmile;uid=sa;pwd=pwd;데이터베이스=pubs
.RecordSource=선택*FromTitlesWhereAuthorID=7
끝
SetText1.DataSource=ADODC1
Text1.DataField=제목
EndSub
ADOData 제어 이벤트
ADOData 컨트롤은 프로그래밍 가능한 여러 이벤트를 제공합니다. 다음 표에서는 이러한 이벤트와 발생 시기를 설명하지만, 이 표는 이러한 이벤트가 발생하는 경우에 대한 모든 조건의 전체 목록이 아닙니다. 자세한 내용은 개별 이벤트 참조 항목을 참조하세요.
자세한 내용은 ADOData 컨트롤을 단계별로 사용하려는 경우 "DataGrid 및 ADO 데이터 컨트롤을 사용하여 간단한 데이터베이스 응용 프로그램 만들기", "간단한 DataCombo 응용 프로그램 만들기" 및 "DataList에 연결된 DataGrid 만들기"를 참조하세요. 제어."
ADOData 컨트롤의 데이터베이스 관련 속성 설정
연결을 만들 때 연결 문자열, OLEDB 파일(.MDL) 또는 ODBC 데이터 원본 이름(DSN)의 세 가지 원본 중 하나를 사용할 수 있습니다. DSN을 사용할 때 컨트롤의 다른 속성을 변경할 필요가 없습니다.
그러나 데이터베이스 기술에 대해 더 많이 알고 있으면 ADOData 컨트롤에 나타나는 다른 속성을 변경할 수 있습니다. 다음 목록에서는 이 컨트롤의 데이터베이스 관련 속성 중 일부를 설명합니다. 이 목록은 또한 이러한 속성을 설정하는 논리적 순서를 제안합니다.
데이터베이스 기술은 복잡 하므로 다음 제안 사항은 규칙으로 간주되지 않습니다.
1.ConnectionString - ConnectionString 속성은 연결을 만드는 데 필요한 모든 설정 값을 포함할 수 있는 문자열입니다. 이 문자열에 전달된 매개변수는 드라이버별로 다릅니다. 예를 들어 ODBC 드라이버를 사용하면 문자열에 드라이버, 공급자, 기본 데이터베이스, 서버, 사용자 이름, 암호 등이 포함될 수 있습니다.
2.UserName - 데이터베이스가 비밀번호로 보호되는 경우 이 속성을 지정해야 합니다. Provider 속성과 마찬가지로 이 속성은 ConnectionString에 지정할 수 있습니다. ConnectionString 속성과 UserName 속성이 모두 제공되면 ConnectionString의 값이 UserName 속성의 값을 재정의합니다.
3. 비밀번호 - 보호된 데이터베이스에 액세스할 때도 필요합니다. Provider 특성 및 UserName 특성과 유사하게 ConnectionString 특성에 비밀번호가 지정되면 이 특성에 지정된 값을 덮어씁니다.
4.RecordSource - 이 속성에는 일반적으로 데이터베이스에서 검색할 정보를 결정하는 데 사용되는 문이 포함되어 있습니다.
5.CommandType - CommandType 속성은 Source 속성이 SQL 문인지, 테이블 이름인지, 저장 프로시저인지, 알 수 없는 유형인지 데이터 공급자에게 알려줍니다.
6.CursorLocation - 이 속성은 커서의 위치(클라이언트에 있는지 아니면 서버에 있는지)를 지정합니다.
우수한. 이 결정은 다음 속성에 대한 설정에 영향을 미칩니다.
7.CursorType - CursorType 속성은 레코드 세트가 정적 유형인지, 동적 유형인지, 키 세트 커서 유형인지를 결정합니다.
8.LockType - LockType 속성은 편집 중인 데이터를 다른 사람이 변경하려고 할 때 잠기는 방식을 결정합니다. 이 LockType 속성을 설정하는 방법은 여러 요인에 따라 결정되는 복잡한 결정입니다.
9.Mode - 모드 속성은 레코드세트로 수행할 작업을 결정합니다. 예를 들어 보고서만 생성하려는 경우 이 속성을 읽기 전용으로 설정하면 성능이 향상될 수 있습니다.
10.MaxRecords - 이 속성은 커서의 크기를 결정합니다. 이 속성의 값이 결정되는 방식은 검색되는 레코드의 크기와 컴퓨터에서 사용 가능한 리소스(메모리)의 양에 따라 달라집니다. 큰 레코드(많은 열과 긴 문자열 포함)는 작은 레코드보다 더 많은 리소스를 소비합니다. 따라서 MaxRecords 속성은 너무 클 수 없습니다.
11.ConnectionTimeout - 연결 설정을 기다리는 시간을 초 단위로 설정합니다. 연결 시간이 초과되면 오류가 반환됩니다.
12.CacheSize - CacheSize 속성은 커서에서 검색할 수 있는 레코드 수를 지정합니다. CursorLocation이 클라이언트로 설정된 경우 이 속성은 부작용 없이 작은 숫자(대개 1)로만 설정될 수 있습니다. 커서 위치가 서버 측에 있는 경우 이 숫자를 한 번에 볼 수 있는 행 수로 조정할 수 있습니다. 예를 들어 DataGrid 컨트롤을 사용하여 30개의 행을 보는 경우 더 많은 데이터를 검색하지 않고 스크롤할 수 있도록 CacheSize를 60으로 설정할 수 있습니다.
13.BOFAction, EOFAction - 이 두 속성은 컨트롤이 커서의 시작과 끝에 있을 때 컨트롤의 동작을 결정합니다. 사용 가능한 옵션에는 시작 또는 끝 부분 유지, 첫 번째 또는 마지막 레코드로 이동, 새 레코드 추가(끝에만) 등이 있습니다.
ADOData 컨트롤에 바인딩된 컨트롤
DataSource 속성이 있는 모든 컨트롤은 ADOData 컨트롤에 바인딩될 수 있습니다. 다음 내장 컨트롤을 ADOData 컨트롤에 바인딩할 수 있습니다.
체크박스
콤보박스
영상
상표
목록 상자
픽처박스
텍스트 상자
다음과 같은 데이터 바인딩된 ActiveX 컨트롤은 모든 버전의 Visual Basic에서도 사용할 수 있습니다.
데이터 목록
데이터콤보
데이터그리드
MicrosoftHierarchicalFlexGrid
RichTextBox
마이크로소프트차트
날짜시간선택기
이미지콤보
월별 보기
마지막으로 사용자는 DataBinding 개체를 사용하여 자신만의 데이터 바인딩된 ActiveX 컨트롤을 만들 수 있습니다.
자신만의 데이터 바인딩된 컨트롤을 만드는 방법에 대한 자세한 내용은 "데이터 바인딩된 사용자 컨트롤 만들기"를 참조하세요.
->