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
운영게시판
최근게시물
DB2 Q&A 1545 게시물 읽기
No. 1545
cli를 이용한 테이블 생성 및 insert 질문입니다.
작성자
이도희
작성일
2008-03-04 18:03
조회수
10,990

1 #include #include #include #include

2 void insql(int* input1,int* output, int input_id, int output_id, SQLUDF_TRAIL_ARGS) {

4 SQLHANDLE hstmt;

5 SQLHENV henv;

6 SQLHDBC hdbc;

7 SQLRETURN rc=SQL_SUCCESS;

8 rc = SQLAllocEnv(&henv);

9 rc = SQLAllocConnect(henv, &hdbc);

10 rc = SQLConnect(hdbc, NULL, SQL_NTS, NULL, SQL_NTS, NULL, SQL_NTS);

11 SQLCHAR * sql = (SQLCHAR *)"CREATE TABLE test_dll(no integer)";

13 rc=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);

15 SQLExecDirect (hstmt,sql,SQL_NTS);

16 if(rc != sql_success)

17 *output=-1;

20 *output=0;

21 SQLFreeStmt(hstmt,SQL_CLOSE);

22 SQLEndTran(SQL_HANDLE_DBC, hdbc, SQL_COMMIT);

23 SQLFreeConnect(hdbc);

24 SQLFreeEnv(henv); return }


SQL1224N The database manager is not able to accept new requests, has

terminated all requests in progress, or has terminated your particular request

due to an error or, a force interrupt. SQLSTATE=55032

외부 함수 호출로 위의 함수를 호출하여 create table 또는 insert를 하려고 하면 위의 에러가 납니다.

에러 이유와 해결 방안을 가르쳐 주시면 감사드리겠습니다.

이 글에 대한 댓글이 총 3건 있습니다.
에러 메시지 ->
SQLSTATE 55032: The CONNECT statement is invalid, because the database manager
was stopped after this application was started.


SQLConnect 샘플 ->                          님의 소스
  cliRC = SQLConnect(hdbc,                rc = SQLConnect(hdbc,   
                     (SQLCHAR *)db1Alias,                 NULL,   
                     SQL_NTS,                             SQL_NTS,
                     (SQLCHAR *)user,                     NULL,   
                     SQL_NTS,                             SQL_NTS,
                     (SQLCHAR *)pswd,                     NULL,   
                     SQL_NTS);                            SQL_NTS);

db명이 없네요
벽타는 냥이님이 2008-03-05 09:29에 작성한 댓글입니다. Edit

DB명은 이미 커넥션이 되어 있는 상태이기 ㅤㄸㅒㅤ문이 NULL로 해 준 거였습니다.


그런데 말씀해 주신 방법으로 DB이름을 적고 이 함수를 external function call을 통해 실행했더니


1         

-----------

          0


  1 record(s) selected.



이런 결과가 나와서 테이블 생성이 되었는 줄 알고 테이블을 검색해보니 생성되지 않았습니다.


혹시 다른 어떤 문제 있는 것인지 궁금합니다.


또한


sample code에 있는 테이블 생성 하는 함수를 위와 같은 방법으로 실행하면 컴파일 에러 없이 so파일이 생기고 function 밑에 so 파일을 넣어주고

create function create_table(integer)

   returns integer

   specific createtable

   external name 'tbcreate.so!TbCreate'

   deterministic

  language c

  parameter style db2sql @

이렇게 함수를 생성해서 함수 콜을 하면

SQL0444N  Routine "CREATE_TABLE" (specific name "CREATETABLE") is implemented

with code in library or path ".../sqllib/function/tbcreate.so", function

"TbCreate" which cannot be accessed.  Reason code: "5".  SQLSTATE=42724

이런 에러가 발생합니다.

왜 이런 에러가 나는지 도무지 모르겠습니다.

꼭 답변해 주시면 감사드리겠습니다.

이도희님이 2008-03-05 10:47에 작성한 댓글입니다. Edit

sp 루틴을 사용해보세요. 

http://www.ibmdb2.net/board/board.php?bnum=4&num=2437&act=read&cate=&page=1&search=&s_word=

에서 cli 폴더안의 sp* 에 예제가 있습니다. 

벽타는 냥이님이 2008-03-06 09:47에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1549SQLGetConnectAttr() [3]
낭만자객
2008-03-06
9600
1548[질문]페이징 도움 요청합니다. [1]
박준
2008-03-06
9585
1547DB2가 트랙잰션용 DB인가요? 아님 DW전용DB인가요..? [1]
배상현
2008-03-05
9257
1545cli를 이용한 테이블 생성 및 insert 질문입니다. [3]
이도희
2008-03-04
10990
1543Database Connection Time [2]
DB2
2008-03-03
8181
1542전화번호 - 구분자로 자는것 아시는분 답변부탁드려요~! [2]
쏠라-C
2008-03-01
8678
1540import 사용법 [1]
써니
2008-02-28
9566
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.052초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다