커서 뭐 될래?!
띵스 / 2017.09.11 14:51 / CRazY ABouT/programming

델파이에서 클래스를 만들어서 사용할 때 데이터베이스의 테이블 컬럼들을 그대로 델파이의 클래스형태로 변환해 주는 쿼리.

This is sort of translator to use Oracle database table columns for Delphi class object.


--Oracle DB Column to Delphi Class

/***********************************************************************

* [ DB → Delphi Class 자동 생성 ]

*

* ex) ED_GB :arrow_lower_right:

* FEdGb : string; { 출입국구분 }

* procedure SetEdGb(const Value: string); { return delYn; }

* property edGb : string read FEdGb write SetEdGb;

* procedure THistObj.SetEdGb(const Value: string); begin FEdGb := Value; end;

***********************************************************************/

DECLARE 

P_OWNER     VARCHAR2(100); /* 사용자계정 */

P_TABLE     VARCHAR2(100); /* 테이블명 */

P_OBJECT    VARCHAR2(100); /* 객체명 */


R_VAR       VARCHAR2(32000); /* 변수 */

R_VAR_SET   VARCHAR2(32000); /* Setter 선언 */

R_VAR_PROP  VARCHAR2(32000); /* property 선언 */

R_SET       VARCHAR2(32000); /* set 메소드 */

BEGIN 

P_OWNER := 'ABCUSER';

P_TABLE := 'H100';

P_OBJECT := 'THistObj';


R_VAR := '';

R_VAR_SET := '';

R_VAR_PROP := '';

R_SET := '';


FOR X IN ( 

    SELECT 

        LOWER(SUBSTR(TC.COLUMN_NAME,0,1)) || SUBSTR( REPLACE(INITCAP(TC.COLUMN_NAME), '_'), 2, LENGTH(REPLACE(INITCAP(TC.COLUMN_NAME), '_'))-1) AS COLUMN_NAME

        , TC.DATA_TYPE

        , COMMENTS

        , decode(DATA_TYPE, 'VARCHAR2', 'string', 'CHAR', 'string', 'DATE', 'TDateTime', 'NUMBER', 'Integer', 'BLOB', 'string', 'string') AS DELPHI_TYPE

    FROM ALL_TAB_COLUMNS TC, ALL_COL_COMMENTS CC

    WHERE TC.OWNER = CC.OWNER

    AND TC.TABLE_NAME = CC.TABLE_NAME

    AND TC.COLUMN_NAME = CC.COLUMN_NAME

    AND TC.OWNER = P_OWNER 

    AND TC.TABLE_NAME = P_TABLE 

    ORDER BY TC.column_id

LOOP 

R_VAR := R_VAR || LPAD(' ', 4) || RPAD('F' || UPPER(SUBSTR(X.COLUMN_NAME, 1, 1))||SUBSTR(X.COLUMN_NAME, 2), 24, ' ') || ': ' || X.DELPHI_TYPE || '; { ' ||X.COMMENTS||' }' || CHR(13);

R_VAR_SET := R_VAR_SET || LPAD(' ', 4) || 'procedure Set' || UPPER(SUBSTR(X.COLUMN_NAME, 1, 1))||SUBSTR(X.COLUMN_NAME, 2) || '(const Value: ' || X.DELPHI_TYPE||');' || CHR(13);

R_VAR_PROP := R_VAR_PROP || LPAD(' ', 4) || RPAD('property ' || X.COLUMN_NAME, 30, ' ') || ': ' || RPAD(X.DELPHI_TYPE, 16, ' ') || ' read ' || RPAD('F' ||UPPER(SUBSTR(X.COLUMN_NAME, 1, 1))||SUBSTR(X.COLUMN_NAME, 2), 24, ' ') || ' write Set' ||UPPER(SUBSTR(X.COLUMN_NAME, 1, 1))||SUBSTR(X.COLUMN_NAME, 2)||';' || CHR(13);

R_SET := R_SET || 'procedure ' || P_OBJECT || '.Set' || UPPER(SUBSTR(X.COLUMN_NAME, 1, 1))||SUBSTR(X.COLUMN_NAME, 2) || '(const Value: ' || X.DELPHI_TYPE||'); begin F' ||UPPER(SUBSTR(X.COLUMN_NAME, 1, 1))||SUBSTR(X.COLUMN_NAME, 2)||' := Value; end;'|| CHR(13);

END LOOP;


DBMS_OUTPUT.ENABLE(1000000);

DBMS_OUTPUT.PUT_LINE('type');

DBMS_OUTPUT.PUT_LINE('  ' || P_OBJECT || ' = class(TObject)');

DBMS_OUTPUT.PUT_LINE('  private');

DBMS_OUTPUT.PUT_LINE(R_VAR);

DBMS_OUTPUT.PUT_LINE(R_VAR_SET);

DBMS_OUTPUT.PUT_LINE('  public');

DBMS_OUTPUT.PUT_LINE('  published');

DBMS_OUTPUT.PUT_LINE(R_VAR_PROP);

DBMS_OUTPUT.PUT_LINE('  end;'|| CHR(13));

DBMS_OUTPUT.PUT_LINE('implementation'|| CHR(13)|| CHR(13));

DBMS_OUTPUT.PUT_LINE('{ '|| P_OBJECT ||' }'|| CHR(13));

DBMS_OUTPUT.PUT_LINE(R_SET);


END;

저작자 표시 비영리 변경 금지
신고
띵스 / 2017.09.05 10:35 / CRazY ABouT/programming

델파이에서 Json 사용하기

Using Json in Delphi 


우선 델파이의 string에서 Json형태로 변경해주는 한줄 함수

At first, the function converting string to JsonString in 1 row.


uses 절에 REST.Json 추가

Add REST.Json @ uses 




TJson.JsonToObject

TJson.ObjectToJsonString 


클래스 함수로 선언된 것이라 반드시 TJson.을 붙여서 사용해야함

This has to write with TJson in front of the function because it is a class function as you can see.


간단한 클래스 생성

Create simple class



사용방법

Usage



요청 전문은 StringStream으로 TJson.ObjectToJsonString함수를 사용하여 객체를 곧바로 Json형태의 스트링으로 변환하여 담아준다. HTTPJson함수내용은 단순하게 주소로 StringStream을 Post방식으로 보내는 역할뿐이다.

The request as a StringStream is made by string of Json using the converting class TJson.ObjectToJsonString. 

HTTPJson function is simple that send StringStream as post method of HTTPPost().


HTTPPost에는 여러가지 overload된 함수가 존재하는데 string으로 요청을 보낼 시에는 이상하게 계속 폴더명이 붙어버린다.

There are lots of overloaded function of HTTPPost. so when trying to send as string, you can see it changes weird string seems like path of directory.

저작자 표시 비영리 변경 금지
신고
띵스 / 2014.01.22 13:22 / CRazY ABouT/programming

Avec PC Mini ERP System

 

Setup_AvecERP.exe

 

저작자 표시 비영리 변경 금지
신고
띵스 / 2012.06.21 09:03 / CRazY ABouT/programming

 

 

델파이로 만든 첫 프로그램..

운영데이터를 개발로 내리기 위해 만든 툴...

 

 

AP2DEV-Setup.exe

 

UserManual_DataLoad_V1.0.doc

 

AP2DEV_주제발표자료.pptx

 

AP2DEV.z01

 

AP2DEV.zip

 

저작자 표시 비영리 변경 금지
신고
띵스 / 2008.04.22 10:01 / CRazY ABouT/programming

Basecamp, Campfire, 43things, ODEO, Shopify, Wayfairing.. .. 나름대로 알려진 Web 2.0 사이트 들입니다. 이 사이트들은 한 가지 공통점을 가지고 있지요. 그 공통점이 무엇일까요?

바로 Ruby On Rails를 이용해 만들어졌다는 점입니다. 최근 들어 웹 개발에 관여된 사람이라면 한 번쯤은 들어 보았을 만한 용어이지요. 그저 또 하나의 새로운 언어 및 개발 프레임워크라고 하면 그다지 관심을 둘 필요는 없을 겁니다. 꼭 필요하게 되면 그 때 배워도 늦지 않을 테니까요.

그런데 위에 기술한 사이트들이 모두 채용하고 있다고 하면 이건 상황이 조금 다릅니다. 호기심이 동하지 않습니까? 도대체 Ruby는 뭐고 Rails는 무엇일까요? 간단히 알아 보도록 하지요.

Ruby, Script Language


Ruby는 Perl, Python, PHP와 같은 스크립트 기반의 프로그래밍 언어입니다. 간결하고도 강력한 객체지향 언어로, 유키히로 마츠모토라는 일본인에 의해 만들어졌습니다.

특징이라고 하면 다양한 언어의 특징을 골고루 물려 받았다는 점입니다. SmallTalk, Lisp, Perl 등의 언어로부터 여러 훌륭한 특성들을 가져 왔습니다. 마츠 (유키히로 마츠모토의 애칭)에 의하면 Ruby는 프로그래머의 행복을 위해 만들어진 언어라고 하는군요. 이 말에서 짐작할 수 있듯이 프로그래머가 Ruby의 기능을 사용하기 편리하게 되어 있다는 점이 가장 큰 장점입니다.


< 사진1 : 유키히로 마츠모토, Ruby의 창시자 >

만약 여러분이 개발자이시고, 호기심을 참지 못해 당장 Ruby를 배워 보고 싶으시다면 Programming Ruby 를 참고하세요. 책 한 권을 통째로 보실 수 있습니다.

그런데 루비가 처음 만들어진 년도를 알아 보면 약간 갸우뚱 해 집니다. 1993년에 처음 만들어졌거든요. 그럼 벌써 10년 이상 나이를 먹은 것이고, 자바보다도 나이가 많은데 왜 지금까지는 조용했을까요? 그리고 왜 이제 와서 각광을 받고 있는 것일까요? 그 답은 Rails가 가지고 있습니다.

Rails, Web application framework

Rails는 Ruby로 만들어진 웹 애플리케이션 개발 프레임워크입니다. 37Signals 사의 프로그래머인 David Heinemeier Hansson에 의해 개발되었죠.

                               <
< 사진 2 : Rails의 창시자인 David Heinemeier Hansson >

~ 이제 왜 Basecamp, Campfire와 같은 37Signals의 서비스들이 Rails로 개발되었는지 이해가 되는군요. 사실 레일스 자체가 Basecamp, Backpack, Ta-da List 서비스를 만들기 위해 개발된 프레임워크였습니다. 프레임워크를 성공적으로 개발한 후 David이 오픈 소스화 하여 공개한 것이죠.

이 프레임워크가 말 그대로 물건이어서, 개발자로 하여금 놀라운 생산성을 발휘하게 해 주었고 그 결과 매우 인기가 높아진 것이죠. 이러한 생산성을 증명하기 위한 몇 가지 인상적인 데모가 있습니다. “를 15 진 5 와 같은 데모가 대표적입니다.

물론 이러한 장점들 외에도, 앤드류 헌트와 데이비드 토머스가 그들의 저서인 실용주의 프로그래머를 통해 루비를 알린 것 역시 Ruby on Rails의 확산에 큰 기여를 했습니다.

이제는 Ruby on Rails에 관심을 가져야 할 때

아직까지 Ruby와 Rails에 대해 무심하게 지나쳐 버렸다면 이제는 생각을 좀 바꿔야 합니다. 해외의 유명 자바 개발자들이 Ruby on Rails로 옮겨 가고 있다는 점 (http://jroller.com/page/dgeary?%20entry=tipping_rails) 역시 Ruby On Rails의 가치를 반증한다고도 볼 수 있겠습니다. 물론 무수히 많은 웹 2.0 사이트들이 Ruby on Rails를 이용하여 개발되고 있다는 점도 간과해서는 안 될 겁니다.

개발자 여러분, 이제는 Ruby에 관심을 가지고 Rails의 세계에 빠져 보세요. 또 다른 세상이 열릴지도 모릅니다.

(발췌 : http://www.smartplace.kr/blog_post_70.aspx#P70)
신고
띵스 / 2008.04.07 14:55 / CRazY ABouT/programming
Ctrl + Shift + F -> 정렬
Ctrl + Shift + F -> 정렬
Ctrl + Shift + O -> 자동 import
Ctrl + Alt + 아래 화살표 -> 줄복사
Ctrl + Space -> 자동완성
Ctrl + F11 -> 마지막으로 실행했던 코드 실행
sys + Ctrl + Space -> sys로 실행하는 명령어 빠른 완성
syso + Ctrl + Space -> System.out.println(); 완성
Ctrl + Shift + /(키패드) -> 메소드 접기
Ctrl + Shift + *(키패드) -> 메소드 펴기
Ctrl + D -> 한줄 지우기
Alt + Shift + j -> 요술주석
Ctrl + / -> 주석처리
신고
띵스 / 2008.03.25 13:53 / CRazY ABouT/programming

Day12

Network Programming

RTP/RTCP/RTSP

신고
띵스 / 2008.03.25 12:26 / CRazY ABouT/programming
Day8~12(너무 정신없어서 올릴 겨를이 없었음.ㅠ)

Network Programming

교육자료




Reference



과제

책실행이었음

시험

신고
띵스 / 2008.03.18 14:47 / CRazY ABouT/programming

Day7

Linux

교육자료




Lab




신고
띵스 / 2008.03.18 10:55 / CRazY ABouT/programming

문제. /etc/inittab 의 디폴트 run level을 6으로 설정함.

1. 현상

- 런 레벨을 6으로 설정을 해서인지 계속 재부팅 됩니다.

2. 해결법

- 부트 메뉴에서 e키를 누르면

root (hd0,0)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img

이렇게 메뉴가 나오는데, 여기서 두번째 줄에서 e키를 누르면

grub edit> kernel /vmlinuz-2.4.20-8 ro root=LABEL=/

로 나오게 됩니다.

뒤에 single을 입력하면

grun edit> kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ single

커맨드 모드로 부팅을 하게 됩니다.

vi /etc/inittab를 입력하여

디폴트 runlevel을 5로 바꾸어 주고, 재부팅하면

정상적으로 GUI모드로 부팅 OK.

신고
© 2015 띵스 in 커서 뭐 될래?!
Designed by DH / Powered by Tistory
36 / 14 / 55,974