1. 형식: result= msqlDataSeek(mres_ptr, pos)
2. 기능: 인자 mres_ptr의 임시 저장된 결과 자료에서 인자 pos번째 레코드의
위치로 이동한다.
3. 설명
(1) 이 함수는 mSQL에서 지원하는 함수이며 함수명은 mSQL의 C API와 동일하다.
(2) 인자 mres_ptr은 mSQL result 포인터이며 msqlStoreResult()함수나 기타
결과를 저장하는 함수에 의하여 얻은 값이어야 하고 mSQL result 포인터가
아니면 에러 처리되며, 이미 해제된 mSQL result 포인터일 때에는 경고
메시지를 출력하고 result에 -1 의 값을 되돌린다.
(3) 인자 pos는 레코드에 대한 순번( 0 부터 레코드 개수 - 1 )이며 이 값이
문자열이고 수치로 변환될 수 없을 때는 에러 처리된다.
(4) 인자 pos가 0 보다 작거나 또는 레코드의 개수보다 크거나 같으면 정수 -1 이
result에 돌려진다.
(5) 위의 설명(2)나 설명(4)의 경우가 아니면 정수 1 이 result에 돌려진다.
4. 사용예
// 아래 프로그램은 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 테이블의 모든 항목을 선택
if(msqlQuery(msql, query)==MSQL_ERR)
{
print("query error!\n"); return(-1);
}
mres= msqlStoreResult(); // 추출된 자료를 저장하고 포인터를 돌려줌
row_count= msqlNumRows(mres); // 추출된 자료의 레코드 개수 얻기
field_count= msqlNumFields(mres); // 추출된 자료의 항목 개수 얻기
msqlDataSeek(mres, 1); // 2번째 레코드로 이동한다.
row_count-= 1; // 추출된 레코드의 개수를 조정
for(i=0; i<row_count; i++)
{
row= msqlFetchRow(mres); // 저장된 자료에서 한 레코드를 읽는다
if( isarray(row) ) // 또는 if(row!=MSQL_ERR)
for(j=0; j<field_count; j++) print("\t", row[j]); // 항목 출력
print();
}
msqlFreeResult(mres); // 임시 저장된 자료를 해제(free)한다.
msqlClose(msql); // mSQL 서버와의 접속을 해제한다.
------------------------------ [ 출력결과 ] ------------------------------
한여름 35 oo시 oo동 456번지
서지연 20 A시 B동 789번지
|