database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
ㆍInformix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Informix Q&A 286 게시물 읽기
No. 286
Re: ifx_num_rows()함수 사용에 문제가....
작성자
박영길
작성일
2000-09-15 20:55
조회수
7,126

안녕하세요.

 

인포믹스는 UPDATE, DELETE문은 처리가 모두 완료된 후에 제어권이

반환되고 처리된 행의 수가 sqlcq.sqlerrd[2]에 설정됩니다. 그러나

SELECT문의 경우는 병렬처리와 색인의 사용으로 전체데이터가 디스크로

부터 읽혀지기 전에 최초의 행이 반환된다고 합니다. 즉 많은 양의

데이터를 검색할 경우 파이프라인 형태로 작업이 처리되기 때문에

서버내에서 모든 작업이 이루어지기 전에 검색되는 전체행의 수를 알 수

없습니다. 그렇기 때문에 optimizer가 estimate한 값을 sqlca.sqlerrd[2]에

설정하고 첫번째 row를 반환한다고 합니다.

 

물론 예상하셨겠지만 ifx_num_rows()는 바로 sqlca.sqlerrd[2]의 값을

반환하는 함수고요. 그러므로 정확한 검색될 행의 수는

 

select count(*) from ...

 

문장으로 얻어내야 합니다. ESQL/C 에서도 동일하게 적용됩니다.

그래서 일반적인 경우 다음과 같이 작성하고 있습니다.

 

if ($nResult = ifx_query(...)) {

$aRow = ifx_fetch_row($nResult);

if (is_array($aRow)) {

do {

...

} while (!($aRow = ifx_fetch_row($nResult)));

} else print("자료 없어요...T_T");

} else print(ifx_errormsg());

 

그럼.

 

::국연주 님께서 쓰시길::

 

> 안녕하세요.....^^

> ifx_num_rows()함수 사용에 문제가 생겨서 아시는분의 도움을 구합니다.

>

> 제가 알기론 ifx_num_rows($result)함수는 $result에 대한 행수를 결과값으로 되돌려 주는 걸로 알고

> 있는데...값이 정상적으로 리턴되지 않는것 같아서요..

>

> if(ifx_num_rows($result)){ $row = ifx_fetch_row($result);

> $row[data] = nl2br($row[data]);

> } else echo "<script> alert('자료 엄떠');</script>";

>

> 위 처럼 결과가 있을 경우만 fetch 하도록 하려 했는데 ifx_num_rows()함수를 사용하면 fetch 가 되

> 지 않는것 같습니다.

> 직접 $row = ifx_fetch_row($result);

> $row[data] = nl2br($row[data]);

> 이런식으로 fetch 하면 결과 값이 나오구요...~

>

> ifx_num_rows()에서 문제가 있는거 같은데....

> 다른 분들은 아무 이상없이 사용하고 계신지...

> 제 프로그램 상에 문제가 있는건지...

>

> <?

> include "../include/error.inc";

> include "../include/connection.inc";

> include "../include/config.inc";

>

>

> ifx_textasvarchar(1);

> $que = "select * from freeboard where no='$no' and num=$num and reno=$reno";

> $result = ifx_query($que,$connection);

> if(!$result) error_message("query 실패!!");

>

> /*

> if(ifx_num_rows($result)){ $row = ifx_fetch_row($result);

> $row[data] = nl2br($row[data]);

> } else echo "<script> alert('자료 엄떠');</script>";

> */

>

> $row = ifx_fetch_row($result);

> $row[data] = nl2br($row[data]);

> ifx_free_result($result);

>

> :

> :

> :

> ?>

[Top]
No.
제목
작성자
작성일
조회
294이 허접 좀 도와주세요!
헬푸미!
2000-09-27
5880
292ASP와 Informix 의 연결과 인스톨 문제
궁금남
2000-09-25
6250
293┕>Re: ASP와 Informix 의 연결과 인스톨 문제
박영길
2000-09-26 10:08:56
8217
289질의문 중 분모가 0이되는 경우 발생시
고정현
2000-09-23
6566
290┕>Re: 질의문 중 분모가 0이되는 경우 발생시
박영길
2000-09-23 22:49:05
6678
291 ┕>친절하고 상세한 답변에 감사드립니다.
고정현
2000-09-24 01:07:16
6306
285ifx_num_rows()함수 사용에 문제가....
국연주
2000-09-15
6007
286┕>Re: ifx_num_rows()함수 사용에 문제가....
박영길
2000-09-15 20:55:50
7126
287 ┕>아웅....넘 고마워요......*^^*
국연주
2000-09-16 10:34:05
6305
281PHP에서 informix stored procedure사용?
정인규
2000-09-14
6361
295┕>Re: PHP에서 informix stored procedure사용?
까마구
2000-09-28 06:51:50
7208
280문자열 자를때요..
하태현
2000-09-08
6638
279linux java jdbc lock에 관하여 ....
드림
2000-09-05
6547
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.031초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다