395PAGE에 잠깐만요
EXEC SQL BEGIN DECLARE SECTION
int SNO;
char SNAME[20];
char DEPT[6];
char SQLSTATE[6];
EXEC SQL END DECLARE SECTION
1)여기서 선언된 변수들은 내장 SQL 변수인가요? 아니면 호스트변수인가요?
책에는 호스트변수로 사용된거같은데
2)왜 구지 SECTION을 넣어서 표현한건가요?
SNO = 100; <----여기서는 호스트변수라고 설명이되어있는데
3) 호스트변수라는 의미가 C언어에서 사용하는 변수라는 의미인가요?
4) 호스트변수라면 데이터 타입을 따로 지정해주어야하는것 아닌가요?
어디서부터 개념을 잘못잡았는지 모르겠는데 헷갈리네요
상세한 답변부탁드릴께요
안녕하세요.
여기서 호스트 언어란 C를 말합니다.
호스트 언어 C에서 내장 SQL을 사용하는 예제에서
Begin ~ End Declare Section 부분은 변수 선언 부분 <- 이 부분에서 선언된 변수는 호스트 언어 내에서 와 포함된 내장 SQL 에서 모두 사용 가능합니다. 단 호스트 언어 내에서의 사용이 아닌 경우에는 구분하기 위해 변수명 앞에 :를 붙입니다.
SNO=100; 이 부분은 단순 처리문
EXEC SQL ~ 이후 부분은 내장 SQL 부분
내장 SQL 부분에서 호스트 언어 C에서 선언된 변수를 사용할 때 변수명 앞에 :를 붙인 것이며,
중간 SNO=100; 부분은 호스트 언어 C의 단순 처리문이므로 변수명 앞에 :를 붙이지 않은 것입니다.
오늘도 즐거운 하루 되세요.
"-
*2013-10-01 10:04:07
안녕하세요.
여기서 호스트 언어란 C를 말합니다.
호스트 언어 C에서 내장 SQL을 사용하는 예제에서
Begin ~ End Declare Section 부분은 변수 선언 부분 <- 이 부분에서 선언된 변수는 호스트 언어 내에서 와 포함된 내장 SQL 에서 모두 사용 가능합니다. 단 호스트 언어 내에서의 사용이 아닌 경우에는 구분하기 위해 변수명 앞에 :를 붙입니다.
SNO=100; 이 부분은 단순 처리문
EXEC SQL ~ 이후 부분은 내장 SQL 부분
내장 SQL 부분에서 호스트 언어 C에서 선언된 변수를 사용할 때 변수명 앞에 :를 붙인 것이며,
중간 SNO=100; 부분은 호스트 언어 C의 단순 처리문이므로 변수명 앞에 :를 붙이지 않은 것입니다.
오늘도 즐거운 하루 되세요.
"