본문 바로가기
반응형

IT211

Pro*C . 한줄 단건만 조회하는 select 예제 테이블을 조회가 데이타는 2가지 경우입니다. 한줄의 레코드로 한건만 조회하는 경우와 여러줄의 레코드로 여러건을 조회하는 경우죠. Pro*C에서 한건만 조회하는 경우는 단순히 SELECT문으로만 처리하면 되고 여러건을 조회하는 경우에는 SELECT을 CURSOR와 FETCH를 조합해서 처리해야 됩니다. 이번에는 단건 처리만 간단하게 볼게요. int main() { EXEC SQL BEGIN DECLARE SECTION; char v_name[10+1]; char v_code[5+1]; EXEC SQL END DECLARE SECTION; EXEC SQL AT :con_name SELECT dat_name,dat_code INTO :v_name,:v_code FROM T_DATA where rownum = .. 2022. 9. 29.
Pro*C 컴파일 과정과 Makefile 만들기 Pro*C 프로그램 파일 확장자는 pc 입니다. pc 파일을 컴파일 하는 과정은 오라클에서 제공하는 PreCompiler를 통해 c 파일로 만듭니다. c 파일을 다시 c 컴파일러인 gcc를 통해 오브젝트 파일 (.o)를 만들고 링크를 통해 실행파일로 되는거에요. sample.pc → sample.c → sample.o → sample PreCompiler를 사용하기 위해 우선 ORALCE이 설치된 경로를 설정해 줘야 됩니다. 오라클 설치 경로가 /usr/oracleClient/app/oracle 라고 가정할게요. vi .bash_profile export ORACLE_BASE=/usr/oracleClient/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/12... 2022. 9. 28.
Virtulbox 윈도우10 설치하기 . microsoft 제공 무료 가상머신 파일 VirtualBox에 개발용으로 윈도우10을 설치하려고 찾던 중에 마이크로소프트에서 가상머신 파일 제공한다고 것을 알게 되었네요. 대박입니다.^^ 윈도우10 ISO 파일을 다운로드해서 처음부터 윈도우10을 설치하면 한두 시간은 그냥 가는데 가상 머신 파일이라면 이 시간을 아낄 수 있겠죠. 단 90일만 사용할 수 있네요.^^;; 90일.. 3개월이면 배우기는 충분한 시간인 거 같네요. 그치만 처음 설치하고 스냅샷을 찍어 놓으시면 언제라도 처음으로 돌아갈 수 있을 거예요.ㅋ 그래도 90일 제한 때문에 좀 망설이다가 일단 설치해보고 나중에 계속 쓸지 생각해 보려고요.ㅋ ● Virtual Machines 사이트 접속 https://developer.microsoft.com/en-us/microsoft-edge/.. 2022. 9. 27.
Pro*C 에러 처리 . SQLCA ■ SQLCA 에러 처리 오라클에는 SQL 수행시 에러가 발생하면 SQLCA라는 구조체 필드에 매번 오류 상태를 갱신해 줍니다. 항상 마지막 SQL 처리에 대한 상태를 기억하고 있고 SQLCA 구조체를 사용하기 위해 Pro*C 프로그램에 sqlca 해더를 포함시켜야 됩니다. #include 또는 EXEC SQL INCLUDE SQLCA ★ sqlca 구조체 struct sqlca { char sqlcaid[8]; /* "SQLCA" 문자 스트링 , SQL 통신 영역 식별자*/ long sqlabc; /* slqca구조체의 바이트 길이 */ long sqlcode; /* 에러코드 */ struct { unsigned short sqlerrml; /* 에러 메시지 길이 , \n 포함된 길이 */ char s.. 2022. 9. 27.
Pro*C 에러 처리 . WHENEVER Pro*C에서 에러 처리하는 방법은 3가지입니다. ① WHENEVER문을 이용하는 방법 (묵시적 에러처리) ② sqlca를 이용하는 방법 (명시적 에러처리) ③ oraca를 이용하는 방법 (자세한 에러정보) 보통 WHENEVER와 sqlca 2가지를 사용하는데 프로그램 만드는 개발자의 취향에 따라 sqlca 사용하는 경우도 있고 WHENEVER 사용하는 경우도 있는 거 같아요. oraca는 에러 발생시에 더 상세한 에러 내용을 알고 싶을 때 사용하며 추가적인 작업이 필요하고 WHENEVER와 sqlca 두가지로도 에러처리에 충분하고 DB 쿼리문 에러가 몇 가지로 뻔해서 그런지 거의 사용하지 않는거 같아요. ㅋ 사용하면 더 좋겠죠. 묵시적 에러 처리(WHENEVER)는 SQL 오류에 대해 각각 개별적으로 .. 2022. 9. 26.
오라클 Pro*C 데이타베이스 DB 접속과 해제하기 SQL 쿼리문을 날리기 전에 당연히 DB에 접속을 해야겠죠.ㅋ Pro*C에서의 Oracle 접속과 해제에 대해서 간단히 알아볼게요. 접속을 위해선 오라클 계정과 계정의 비밀번호를 알고 있어야 될 거예요. 또 오라클이 설치된 서버가 아닌 다른 서버 장비에 설치된 오라클에 접속하기 위해 TNS을 이용한 원격 접속을 위해 TNSNAME도 알아야 됩니다. TNS정보는 오라클의 설치된 ORACLE_HOME 경로의 $ORACLE_HOME/network/admin 디렉터리 안에 TNSNAMES.ORA 파일 안에 기록되어 있습니다. 오라클을 관리하는 DBA가 잘 설정해 둔 거를 가져와서 사용만 하면 됩니다. ★ TNSNAMES.ORA 샘플 REMOTE_DB1 = ( DESCRIPTION = ( ADDRESS = ( P.. 2022. 9. 26.
Pro*C . 오라클 DB 데이터를 C / C++ 프로그램으로 제어 오라클은 C/C++ 프로그램 안에서 쿼리문을 직접 실행해서 테이블 데이터를 조작할 수 있게 PreCompiler를 제공하고 있습니다. C 소스 프로그램 안에 SQL 쿼리문을 삽입했다고 embedded SQL programming 이라고도 합니다. 보통 Pro*C라고 얘기하는데요. Pro*C의 소스 파일 확장자는 pc입니다. source.pc를 오라클에서 제공하는 PreCompiler를 이용합니다. ● C 프로그램 실행 과장을 보면 C 소스 코딩 source.c ▶ gcc 컴파일 ▶ 오브젝트 파일 생성 source.o ▶ 링크 ▶ 실행파일 생성 source ▶ 실행 ● PC 프로그램 실행 과정 PC 소스 코딩 source.pc ▶ PreCompiler ▶ source.c 생성 ▶ gcc 컴파일 ▶ 오브젝트.. 2022. 9. 25.
이더리움 solidity 스마트 계약 truffle 이용해서 테스트 하기 . console test solidity로 이더리움 스마트 계약을 만들었다면 생각대로 처리가 잘 되는지 검증을 위해 테스트를 해야 겠죠. 상태변수에는 값이 제대로 들어가는지 함수 결과가 맞는지 지갑 주소는 무엇인지 parameter 인자값을 임의로 변경해서 테스트하기 등... truffle에 내장된 test 기능을 이용해서 쉽게 테스트 해볼수 있습니다. ● truffle console 접속 truffle console --network [네트워크 이름] 사설 테스트넷에 접속해서 이더리움 블록체인에서 테스트를 진행합니다. C:\pjdapp>truffle console --network localnw truffle(localnw)> ▶ truffle(네트워크 이름)이 나오면 정상 접속된거에요. ♣ truffle-config.js 파.. 2022. 9. 25.
이더리움 DApp 개발 . Ganache + MetaMask 연동 가나슈와 메타마스크 지갑 연동을 위해서 네트워크 설정을 맞춥니다. 로컬 이더리움 네트워크인 가나슈를 기준으로 메타마스크를 지정하겠습니다. ■ Ganache와 Metamask 연동 ● Metamask 로컬 네트워크 추가 metamask 로그인하시면 상단에 이더리움 메인넷이 있는 둥근 박스가 보입니다. 클릭하시면 네크워크 목록이 표시되는데요. Ganache 로컬 이더리움과 연결하기 위해 아래 네트워크 추가 클릭하세요. ● Metamask 홈페이지가 오픈되네요. ▩ 네트워크 이름 : dapp_local . 다른 이더리움 네트워크와 구분되는 이름으로 지정해주세요. ▩ 새 RPC URL : HTTP://127.0.0.1:7545 . Ganache RPC SERVER 정보 그대로 넣어주세요. ▩ 체인 ID : 13.. 2022. 9. 24.
이더리움 DApp 개발 . Truffle + Ganache 연동 . smart contract 배포 이전까지 DApp 개발을 위한 필요한 프로그램 설치였다면 이제 이 프로그램들을 연계해서 이더리움 블록체인을 체험해 보겠습니다. Truffle - solidity 개발 환경 Ganache - 이더리움 블록체인 로컬 네트워크 환경 MetaMask - 이더리움 지갑(계정) Truffle로 스마트 계약을 만들어 Ganache 블록체인에 배포해서 Metamask 지갑에 ether가 송금되는지 확인합니다. 하나씩 해보겠습니다. ■ Truffle과 Ganache 연동 트러플과 가나슈 연동을 위해 네트워크 설정을 맞춥니다. ganache를 실행하면 아래처럼 Network ID와 RPC Server 정보가 설정되어 있어요. 가나슈를 기준으로 트러플을 설정하겠습니다. ● 우선 이더리움 사설 네트워크의 기본 NETWORK .. 2022. 9. 24.
이더리움 DApp 개발을 위한 Truffle(트러플) 설치하기 . solidity 컴파일 Truffle는 이더리움 스마트 계약(Smart Contract)을 만드는 개발 언어인 solidity를 컴파일하고 스마트 계약을 테스트를 할 수 있으며 배포까지 할수 있는 개발 환경입니다. http://trufflesuite.com/ TRUFFLE에 대해 아래와 같이 설명되어 있네요. 개발자로서의 삶을 더 쉽게 만드는 것을 목표로 하는 이더리움 가상 머신(EVM)을 사용하는 블록체인을 위한 세계적 수준의 개발 환경, 테스트 프레임워크 및 자산 파이프라인. 트러플은 node.js 플랫폼에서 npm 명령어로 설치할 수 있습니다. 트러플 홈페이지에 설치 명령어가 있네요. ngm install truffle -g npm은 node.js를 설치하면 자동으로 설치되는 패키지 관리 툴입니다. ♣ truffle 폴더.. 2022. 9. 23.
이더리움 DApp 개발을 위한 Node.js 설치하기 Node.js®는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다. 자바스크립트(js)로 Non-blocking I/O와 싱글 스레드 개발이 가능한 서버 사이드 언어입니다. 자바스크립트(js)는 html과 함께 사용되는 웹 클라이언트 프론트 사이드 언어로만 알고 있었네요.^^;; 그동안 웹브라우저에만 있던 자바스크립트 엔진을 node.js에서 서버 개발에 활용하게 가져온 거 같아요. 그리고 런타임이란 프로그램 실행 환경을 말합니다. 여기서 node.js에서 강조하는 논블로킹과 싱글 스레드에 대해 아주 간단히 알아볼게요. 블로킹(blocking)은 간단하게 설명한다면 먼저 시작한 작업이 끝나야 다음 작업을 시작할 수 있는 거예요. 논블로킹(Non-blocking)은 먼.. 2022. 9. 23.
반응형