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
운영게시판
최근게시물
PostgreSQL Q&A 3904 게시물 읽기
No. 3904
Re: delete, update 실행후 그 실제 결과를 알 수 있는 방법?
작성자
정재익(advance)
작성일
2002-01-18 19:26
조회수
1,808

당연합니다. SQL 에러가 없다고 성공으로 나오는 것이 아니고, SQL 명령어를 제대로 실행한 경우 성공으로 나오죠. 그건 당연한 결과 이겠지요. 비록 SQL 결과 DB 에 아무런 영향을 못미치더라도 성공한 건 성공 한거죠.

 

delete/update 구문 등에 의해 영향을 받은 row 가 있는가 확인해 보기 위해서는 다음 함수를 이용해야 합니다.

 

char * PQcmdTuples(const PGresult *res);

 

이 함수는 update/delete/insert 명령어 실행 결과 몇개의 row 가 영향을 받았는가 하는 그 row 의 갯수를 문자 자료형으로 돌려 줍니다. 즉 10개의 row 가 update 되었다면 '10' 이 돌아온다는 거죠.

 

도움이 되셨길 바랍니다.

 

위의 코드는 다음과 같이 고쳐질수 있을 듯...

 ============================================================
     // 중간 생략
     lsSql = " delete from tb_user where user_id = 'jaeho' ";
     res = PQexec(conn, lsSql);
     if(PQresultStatus(res) != PGRES_COMMAND_OK) 
    {
         no_of_rows = PQcmdTuples(res);
         printf ("%s rows are deleted\n",no_of_rows);
         PQclear(res);
         PQfinish(conn);
         return(-1);
     }
      // 중간 생략
 =============================================================

 

-- 윤재호 님이 쓰신 글:

>> c와 postgresql을 연동하고 있습니다.

>> 아래와 같이 delete를 하려고 합니다.

>> 결과는 PQresultStatus(res)를 통해서 알 수 있지만,

>> 제가 해본 결과로는 쿼리문상에 오류가 없으면 무조건 성공한 것으로 나오는데,

>> 제가 바라는것은 'jaeho'라는 user_id가 없으면 결과적으론 delete를 수행하지 못한것 아닙니까?

>> 이런 경우의 결과 값도 가지고 올 수 있는지?

>> 고수님덜 부탁드립니다.

>>

>> ============================================================

>> // 중간 생략

>> lsSql = " delete from tb_user where user_id = 'jaeho' ";

>> res = PQexec(conn, lsSql);

>> if(PQresultStatus(res) != PGRES_COMMAND_OK)

>> {

>> PQclear(res);

>> PQfinish(conn);

>> return(-1);

>> }

>> // 중간 생략

>> =============================================================

[Top]
No.
제목
작성자
작성일
조회
3908[ 질문 ] inidb에 관하여 ( 왕처버 )
정성훈
2002-01-21
1629
3909┕>Re: [ 질문 ] initdb에 관하여 ( 왕처버 )
정재익
2002-01-21 15:54:47
1708
3906postgresql 설치 ...
hansuni
2002-01-20
1813
3907┕>Re: postgresql 설치 ...
정재익
2002-01-20 01:49:33
2019
3905솔라리스에서 configure 시 도와수세염
김소라
2002-01-19
1571
3903delete, update 실행후 그 실제 결과를 알 수 있는 방법?
윤재호
2002-01-18
1697
3904┕>Re: delete, update 실행후 그 실제 결과를 알 수 있는 방법?
정재익
2002-01-18 19:26:54
1808
3918 ┕>Re: Re: 매번 답변 정말 감사드립니다. (내용무)
윤재호
2002-01-23 10:23:43
1473
3898정재익님께 질문_윈도우용 설치에 관해
forDB
2002-01-17
1570
3901┕>Re: 정재익님께 질문_윈도우용 설치에 관해
정재익
2002-01-18 13:23:03
1714
3897설치에러
박정영
2002-01-17
1508
3900┕>Re: 설치에러
정재익
2002-01-18 13:14:06
1439
3890blob형태, 즉(oid타입으로)저장되는용량을 설정하는 파일이 있나요?
이대선
2002-01-16
1773
3893┕>Re: blob형태, 즉(oid타입으로)저장되는용량을 설정하는 파일이 있나요?
정재익
2002-01-17 08:59:03
1962
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다