1. 형식: result= msqlQuery(msql, query)
2. 기능: 인자 msql으로 접속된 mSQL 서버에 인자 query의 SQL 질의어를 전달하여
실행한다.
3. 설명
(1) 이 함수는 mSQL에서 지원하는 함수이며 함수명은 mSQL의 C API와 동일하다.
(2) 인자 msql은 mSQL 포인터이며 mSQL 연결시 얻은 값이어야 하고 mSQL 포인터
가 아니면 에러 처리되며 이미 폐쇄된 mSQL 포인터일 때에는 경고 메시지를
출력하고 result에 -1 의 값을 되돌린다.
(3) 인자 query는 SQL 질의어로 문자열이어야 하며 수치이면 문자열로 변환된다.
(4) result의 값이 정수 -1(MSQL_ERR)이면 질의어 실행을 실패한 경우이다.
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번지
|