본문 바로가기

분류 전체보기

(505)
[PRO*C] 멀티 쓰레드 프로그램을 만들어서 돌리구 있씁니다. Dynamic SQL Method 4 샘플 소스를 가져와서 멀티 쓰레드 프로그램을 만들어서 돌리구 있씁니다.... 실행은 잘되는데...메모리가 계속 증가합니다... 커서 CLOSE 도 점검했고...프로그램 자체의 메모리 누수도 체크해 봤지만.... 도저히 못잡겠습니다... 원본 소스를 올립니다... 오라클 버젼은... Oracle9i Release 9.2.0.1.0 - 64bit Production 입니다... 원래 오라클 버그가 있나요??? 아니면...Dynamic SQL 을 쓸때...메모리가 증가 되는게 정상인가요??? 고수님들 답변 부탁드립니다... =================================================================================== ..
[ORACLE] pro*c makefile 만들기 pc 파일을 c로 바꿀 때 어떤 파일이 요구된다면, include $(....)으로 선언해 준다. ------------------------------------------------------------------------- # Server Pro*C makefile include $(ORACLE_HOME)/precomp/lib/env_precomp.mk ORALIBDIR = $(LIBHOME) ORALIB = $(PROLDLIBS) TARGET= proc_sample APOBJS= $(TARGET).o OBJS = $(APOBJS) CFLAGS = -O -g -D_DBG # .SUFFIXES : .c .c.o: $(CC) $(CFLAGS) -c $
Make file for Pro*c TARGET = ptest DEST = . INCL = . #Oracle ORA_HOME = /home/oracle/product/8.1.7 ORA_LIB = -L$(ORACLE_HOME)/lib -lclntsh ORA_OPT = SQLCHECK=SEMANTIC PARSE=PARTIAL RELEASE_CURSOR=YES USERID=scott/tiger@ORCL ORA_GARBAGE = *.dcl *.cod *.cud *.lis #Suffix .SUFFIXES: .pc .c .pc.c: proc $* $(ORA_OPT) .c: gcc -o $* $*.c $(ORA_LIB) #----------------------- all: $(TARGET) rm $(ORA_GARBAGE) -f ptest: ptest...
[pro*c] 오라클DB 에 이미지 넣기 예제 Pro*C에서 DB에 Image 저장하는 방법 -------------------------------------------------------------------------------- SAMPLE : DB에 IMAGE FILE을 저장 Bulletin no : 10111 -------------------------------------------------------------------------------- 다음은 image file 을 insert 하는 예제입니다. 참고 하십시오. * 이미지 화일의 Type에는 여러가지 형태가 있다. 예를 들면 BMP, PCX, TIF, ... 이 중에서도 압축 효율이 높은 File의 형태를 선택하는 것이 좋다. 가령 BMP Type보다는 PCX Format..
Pro*c 예제, 내장함수 예제 Pro*c 예시. 번호: 84 / 작성자: jinyedge / 등록일: 2004-10-23 17:08:06 / 조회: 170 #include EXEC SQL INCLUDE SQLCA; /*Define*/ #define IS_EMPTY(value) (value == NULL || ! value[0]) /*----------------*/ void ora_conn(){ EXEC SQL BEGIN DECLARE SECTION; char uid[100] = "scott/tiger@oragizmo"; EXEC SQL END DECLARE SECTION; /*For cgi*/ putenv("ORACLE_HOME=/home/oracle/ora9204"); putenv("ORACLE_SID=oragizmo"); put..
makefile 만들기 컴파일 작성한 코드에 구문검사를 해서 구문에 이상이 있다면 오류를 내주어 작성한 유저에게 알려주고 만약 검사에 이상이 없다면 프로그램이 시작되기 전에 메모리에 올라간다. 이처럼 컴파일의 역할은 유저가 작성한 코드에 이상이 없는지 검사하고 코드에 작성된 변수나 함수들을 메모리에 올려주는 역할을 한다. 링크 프로그램을 만드는 마지막 작업이 바로 링크(Link)라는 과정이다. 필요한 조각들을 모두 모으거나 어떤 부분이 빠져 있는지 알아보기 위한 과정이다. 정적 라이브러리(Static Library)를 사용할 때, 링커는 프로그램이 필요로 하는 부분을 라이브러리에서 찾아서 그냥 실행파일에다 카피해버린다. 공유 라이브러리(또는 동적 라이브러리)의 경우에는 이렇게 하는 것이 아니라 실행파일에다가 단지 "실행될 때 ..
Chapter 18. 메모리 할당과 해제 Chapter 18.메모리 할당과 해제 시스템으로부터 메미로를 할당 받는다는 것은 시스템에서 사용하고 있지 않은 메모리 영역을 배정받고 이에 대한 주소를 얻는 것이다. 동적 메모리는 "절대" 변수를 통해서 접근할수없다. 포인터 변수에 의해서만접근이 가능하다. 포인터 변수에 의해서 접근할 수 있는 영역은malloc()에 의해서 생성될 수 있다. C 프로그램에서의 메모리 구조는 다음과 같다. 1. 텍스트 영역(TextSegment) CPU에 의해서수행되는 기계어 명령어들이 모여 있는 곳을 지칭한다. 2.초기화된 데이터 영역(Initialized Data Segment) 프로그램에서 초기화된 데이터 들이 모여 있는 장소이다. int imsi = 100; 3.비 초기화된 데이터 영역(Uninitialized D..
Chapter 19. 라이브러리 Chapter 19.라이브러리 #include main() { if((fp= fopen("imsi", "r")) == NULL) { puts("그런 파일이 존재 하지 않습니다."); exit(0); } ... } 위의 프로그램에서 에러 처리하는 부분은 원시적인방법이다. 이를 좀더 세련되게 변형시켜보자. #include main() { void Fatal(char*); FILE *fp; if((fp= fopen("imsi", "r")) == NULL) Fatal("fopen"); ... } voidFatal(char *error_func) { perror(error_func); exit(0); } 에러가 발생하면 시스템적으로 에러 번호가 생성되는데, 이를 받아서 처리하는 함수가 perror()이다. fop..