[차례]  [함수색인] Wel 도움말 문서 [이전]  [다음]
대분류: Database
소분류: 레코드 읽기
msqlFetchGlobal() 작성일: 2002/07/05
수정일: 2002/07/05

1. 형식 형식1) result= msqlFetchGlobal(mres_ptr) 형식2) result= msqlFetchGlobal(mres_ptr, prefix) 2. 기능: 인자 mres_ptr의 임시 저장된 결과 자료에서 한 레코드씩 순차적으로 읽어 전역변수로 항목의 값을 얻는다. 이때 형식1)은 데이터베이스의 항목 명칭 과 같은 변수명의 전역변수, 형식2)에서 인자 prefix로 지정한 접두사가 포함된 항목 명칭의 전역변수, 항목 명칭과 무관하게 인자 prefix에 순번 을 부여한 변수명의 전역변수로 값을 얻어올 수 있다. ( setlocal(ON) 이면 전역 변수, setlocal(OFF) 이면 지역 변수에 대입됨 ) 3. 설명 (1) 이 함수는 mSQL에서 지원하지 않으며 msqlFetchRow() 함수를 응용한 것이다. (2) 인자 mres_ptr은 mSQL result 포인터이며 msqlStoreResult()함수나 기타 결과를 저장하는 함수에 의하여 얻은 값이어야 하고 mSQL result 포인터가 아니면 에러 처리되며, 이미 해제된 mSQL result 포인터일 때에는 경고 메시지를 출력하고 result에 -1 의 값을 되돌린다. (3) 형식1)은 데이터베이스의 항목 명칭과 동일한 전역변수에 값이 돌려진다. (4) 형식2)는 인자 prefix에 의해 응용된 명칭의 전역변수에 값이 돌려진다. (5) 인자 prefix는 문자열이어야 하며 문자열이 아니면 형변환된다. (6) 인자 prefix가 15 문자(bytes)를 초과하거나 그 값이 변수명 작성규칙(첫글자 는 영문/한글, 그 다음부터는 숫자도 조합가능)에 위배되면 에러 처리된다. (7) 인자 prefix의 값이 '#'으로 끝나면 '#' 문자를 제외한 명칭에 순번(1 부터 항목개수)을 부여한 변수명으로 값이 돌려지며, '#'으로 끝나지 않으면 prefix의 값에 데이터베이스의 항목명칭을 조합한 변수명에 값이 돌려진다. (예를 들어 mres_ptr의 대상 항목의 명칭이 각각 name 과 addr 이고 prefix의 값이 "DB"이면 이 함수를 수행한 후에는 name 항목의 값은 DBname , addr 항 목의 값은 DBaddr에 기억되며, prefix의 값이 "Field#"과 같이 '#'으로 끝나 면 name 항목의 값은 Field1 , addr 항목의 값은 Field2에 기억된다) (8) mres_ptr의 항목명이 변수명 작성규칙에 위배되면 그 항목은 field + 항목 순번(1부터)의 변수명에 값이 돌려진다.(예를 들어 3번째 항목의 항목명이 234abc와 같이 될 수 있다면 그 항목의 값은 field3의 변수명에 기억된다) (9) 인자 prefix의 값이 NULL 또는 ""이면 형식1)과 같다. (10) mres_ptr에 대한 항목의 개수가 결과값 result에 돌려진다. (11) result의 값이 정수 -1(MSQL_ERR)이면 에러가 발생한 경우이다. 4. 사용예#1 // 아래 프로그램은 mSQL 서버가 정상 작동하지 않거나 또는 welhelp 라는 // 데이터베이스가 없거나 addr 이라는 테이블이 없으면 에러가 발생한다. msql= msqlConnect(NULL); // localhost에 연결함 if(msql==MSQL_ERR) { print("mSQL 서버 연결 에러!\n"); return(-1); } if(msqlSelectDB(msql, "welhelp")==MSQL_ERR) // welhelp database 선택 { print("welhelp database 선택 에러!\n"); return(-1); } query= "select * from addr"; // addr 테이블의 모든 항목을 선택 mres= msqlQueryResult(msql, query); if(mres==MSQL_ERR) { print("query error!!\n"); return(-1); } if(mres==NULL) { print("store result error!\n"); return(-1); } while( msqlFetchGlobal(mres) > 0 ) { print("\t", name); // addr 테이블의 name 항목의 값은 name print("\t", age); // addr 테이블의 age 항목의 값은 age print("\t", address); // addr 테이블의 address 항목의 값은 address print(); // 줄을 빠꿔준다. } msqlFreeResult(mres); // 임시 저장된 자료를 해제(free)한다. msqlClose(msql); // mSQL 서버와의 접속을 해제한다. ------------------------------ [ 출력결과 ] ------------------------------ 홍길동 28 xx시 xx동 123번지 한여름 35 oo시 oo동 456번지 서지연 20 A시 B동 789번지 5. 사용예#2 // 아래 프로그램은 mSQL 서버가 정상 작동하지 않거나 또는 welhelp 라는 // 데이터베이스가 없거나 addr 이라는 테이블이 없으면 에러가 발생한다. msql= msqlConnect(NULL); // localhost에 연결함 if(msql==MSQL_ERR) { print("mSQL 서버 연결 에러!\n"); return(-1); } if(msqlSelectDB(msql, "welhelp")==MSQL_ERR) // welhelp database 선택 { print("welhelp database 선택 에러!\n"); return(-1); } query= "select * from addr"; // addr 테이블의 모든 항목을 선택 mres= msqlQueryResult(msql, query); if(mres==MSQL_ERR) { print("query error!!\n"); return(-1); } if(mres==NULL) { print("store result error!\n"); return(-1); } while( msqlFetchGlobal(mres, "DB_") > 0 ) { print("\t", DB_name); // addr 테이블의 name 항목의 값은 DB_name print("\t", DB_age); // addr 테이블의 age 항목의 값은 DB_age print("\t", DB_address); // addr 의 address 항목의 값은 DB_address print(); // 줄을 빠꿔준다. } msqlFreeResult(mres); // 임시 저장된 자료를 해제(free)한다. msqlClose(msql); // mSQL 서버와의 접속을 해제한다. ------------------------------ [ 출력결과 ] ------------------------------ 홍길동 28 xx시 xx동 123번지 한여름 35 oo시 oo동 456번지 서지연 20 A시 B동 789번지 6. 사용예#3 // 아래 프로그램은 mSQL 서버가 정상 작동하지 않거나 또는 welhelp 라는 // 데이터베이스가 없거나 addr 이라는 테이블이 없으면 에러가 발생한다. msql= msqlConnect(NULL); // localhost에 연결함 if(msql==MSQL_ERR) { print("mSQL 서버 연결 에러!\n"); return(-1); } if(msqlSelectDB(msql, "welhelp")==MSQL_ERR) // welhelp database 선택 { print("welhelp database 선택 에러!\n"); return(-1); } query= "select * from addr"; // addr 테이블의 모든 항목을 선택 mres= msqlQueryResult(msql, query); if(mres==MSQL_ERR) { print("query error!!\n"); return(-1); } if(mres==NULL) { print("store result error!\n"); return(-1); } while( msqlFetchGlobal(mres, "dbfield#") > 0 ) { print("\t", dbfield1); // addr 테이블의 name 항목의 값은 dbfield1 print("\t", dbfield2); // addr 테이블의 age 항목의 값은 dbfield2 print("\t", dbfield3); // addr 테이블의 address 항목의 값은 dbfield3 print(); // 줄을 빠꿔준다. } msqlFreeResult(mres); // 임시 저장된 자료를 해제(free)한다. msqlClose(msql); // mSQL 서버와의 접속을 해제한다. ------------------------------ [ 출력결과 ] ------------------------------ 홍길동 28 xx시 xx동 123번지 한여름 35 oo시 oo동 456번지 서지연 20 A시 B동 789번지

Wel Version 1.0
[차례]  [함수색인] [이전]  [다음]