|
아르스님의 답변에 조금만 추가해서 답변 드립니다.
Query1->FieldByName("name")->AsString;
은 쿼리의 내용중에서 현재 선택된 행의 'name'이라는 필드의 내용을 가져오는 것입니다.
요구르트님이 원하는건 어떻게 내가 원하는 행을 찾느냐 하는 것 같은데요..
Query의 Locate()를 이용하면 찾고 싶은 행으로 이동할 수 있습니다.
[순서]
1. ID가 '001'인 학생을 찾는다.
2. 찾은 행의 데이터(ex Name, Tel, Age..)등을 보여준다.
[예] 버튼 btnSearch를 클릭하였을때...아이디가 vID->Text인 사람의 정보를 찾을려면..
// DB필드 구성: ID, Name, Adress, Tel, Age
// 폼의 구성
// Query1:TQuery
// vID:TEdit, vName:TEdit, vAdress:TEdit, vTel:TEdit, vAge:TEdit
// btnSearch:TButton
TLocateOptions Options;
Options = Options << loCaseInsensitive;
//이 옵션은 찾을려는 내용과 똑같은 것만 찾을때: loCaseInsensitive옵션을 씁니다.
//특정 내용을 포함하는 것을 찾을때는: loPartialKey을 쓰면 됩니다.
// 이 함수를 사용하기전에
// Query1이 이미 Open되어 있어야 합니다.
if(Query1->Locate("ID",vID->Text,Options)) //함수형식: Locate("찾을 필드명","찾을 내용",Options)
{
// DB의 ID필드의 내용이 vID->Text의 내용과 같은것이 있으면
// 그 행의 이름, 주소, 전화, 나이 필드를 Edit에 표시한다.
vName->Text = Query1->FieldByName("Name")->AsString;
vAdress->Text = Query1->FieldByName("Adress")->AsString;
vTel->Text = Query1->FieldByName("Tel")->AsString;
vAge->Text = Query1->FieldByName("Age")->AsString;
}
else
{
// 찾을려는 ID의 사람이 없을 경우
// 다음 메시지를 띄운다.
ShowMessage("아이디가 " + vID->Text + "인 사람은 없습니다.");
}
요구르트 님이 쓰신 글 :
: 질문1.
: 단순히 하나의 폼에서 버튼을 클릭하면 DB에서 가령 Id가 001인 사람의
: 데이터(ex Name, Tel, Age..)등을 각각의 Edit에 출력하는 방법이 뭐죠..?
: 책에는 DBgrid에 출력하는 법뿐이 없어서..ㅜㅜ;
: 간단한 예제 부탁드려요..^^*
:
|