커서 뭐 될래?!
띵스 / 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

 

저작자 표시 비영리 변경 금지
신고
띵스 / 2013.12.18 14:44 / CRazY ABouT/media

한번쯤은 그 때로 돌아가고 싶다..

 

 

어릴적 영화의 주인공과 같이 무슨일에 대해서 후회를 했을때 시간을 되돌리고 싶었던 적이 있었다. 내 생각을 그대로 표현해준 영화라 시작부터 끝까지 집중하고 본 영화..

 

어느 순간부터인가 여자관계라면 트라우마가 생긴 것 같다. 항상 내겐 생기지 않을 것만 같은 운명의 여자를 시간을 되돌리는 능력으로 옛날로 돌아가 묻고 싶다. 어쩌면 뜨거운 사랑이라는 걸 해보고 싶다. 용기라는 것이 없어 마음속으로만 좋아하고 지나갔던 모든 시간에 대해 그립기만 한 시간들로 남겼다는 것이 안타깝기만 했다.

 

처음 등장한 BGM은 내가 정말 좋아하는 곡이라 더더욱 내 감성을 자극했는지 모른다.

 

아직 늦진 않았을거라 생각한다. 운명의 사람이란 언제라도 찾아올 수 있는 것이 아닐지.. 그래서 그때가 되면 후회하지 않기위해 시간을 되돌리지 않아도 되도록 용기라는 것을 낼 준비를 해야겠다는 생각을 한다.

 

 

[사진출처] 다음영화  http://movie.daum.net/moviedetail/moviedetailMain.do?movieId=70829&t__nil_upper_mini=title

 

 

 

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

 

 

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

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

 

 

AP2DEV-Setup.exe

 

UserManual_DataLoad_V1.0.doc

 

AP2DEV_주제발표자료.pptx

 

AP2DEV.z01

 

AP2DEV.zip

 

저작자 표시 비영리 변경 금지
신고
띵스 / 2011.11.22 08:52 / CRazY ABouT/media


처음 이책을 사게 된 것은 요즘 들어 책을 중간정도 읽다 마는 버릇(?) 같은게 생긴 것 같아 무엇인가 끝까지 읽을 만한 책을 찾으면서였다. 김난도 교수의 '아프니까 청춘이다' 라는 책이후로 끝까지 읽은 책이 없는 느낌이랄까..

제목이 참 와닿았다.
난 지금 외롭다. 이 느낌을 뭐라고 표현했을지 참 궁금했다. 뭐가 잘되고 있다는 것인지.. 책은 이렇게 말하고 있다. "위대한 영혼은 외로움이 주는 최고의 선물이다."


외로움을 두가지로 보고있다. 혼자있는 '고통'을 론니리스, 혼자있는 '즐거움'을 솔리튜드라는 말로 표현했는데 책을 읽으며 내가 느끼는 외로움에 대해 한번 돌아보게 되고 난 론니리스쪽인가 솔리튜드쪽인 사람인가에 대해 고민할 수 있었던 시간이었다. 주변에서나 내가 흔히 느낄 수 있을법한 에피소드들로 여러가지의 외로움을 이야기 해나가는 것을 보다보니 어느덧 책의 마지막에 도착해있었다.

책에 외국에서 진행했던 외로움에대한 실험이 나온다. 열악한 환경에서 자란 210명의 아이들을 관찰한 결과 대부분의 아이들이 어긋난 인생을 살아가지만 72명은 훌륭한 인재로 자라났다는 것.. 그리고 그 공통점으로는 주변에 자신을 알아주는 이가 한명쯤은 있었다는 것. 그래서 내주변에서 나의 외로움을 알아주는 사람이 누가 있을까란 생각을 해보기도 했다.

솔리튜드란 용기가 필요한 듯 하다. 요즘 혼자 밥먹는 것도 공연을 보는 것도 못하는 사람이 많지 않은가.. 혼자일때 가질 수 있는 나만의 시간은 용기가 필요한것이 아닌가 싶다.

저작자 표시 비영리 변경 금지
신고
띵스 / 2011.04.11 09:14 / CRazY ABouT/media
10년 만인가..

그렇
게 큰 공연장에서 공연을 봤던 기억이 흐릿하다.

시작부터 큰 관심을 모은 뮤지컬인 것 같았다.
윤도현과 송창의 더블 캐스팅.. 윤도현씨의 공연도 보고 싶었지만 송창의씨의 무대를 보았는데 그의 목소리가 너무 좋았다.^^

9일 저녁 7시 공연에 사람이 꽤 많았다. 인터넷으로 예약을 했지만 조금 늦게 하다보니 2층 S석.. 그나마 좀 가운데 쯤이었지만 배우들의 표정이 선명히 보이진 않아서 조금 아쉬웠지만 이영훈씨의 아름다운 곡들로 인해 보는 내내 흐뭇했다. 

1부와 2부로 구성되었는데 1부의 마지막에 리사가 부른 '그녀의 웃음소리뿐'이라는 곡은 소름이 돋을 정도였다. 제목까지 아는 노래는 반정도 였지만 멜로디는 한번쯤 흥얼거려 보았을 그런 곡들이었다.

집으로 돌아오자마자 광화문연가에 나왔던 노래들을 쭉 찾아 들어보았다. 그래도 공연에서 듣고 보았던 흥분이 가시질 않았고, 나중에 이런 좋은 공연을 자주 보고 싶다는 생각이 들었다. 
저작자 표시 비영리 변경 금지
신고
띵스 / 2011.02.15 10:17 / CRazY ABouT/media

  설연휴 마지막날인 6일에 어떻게 우연히 보게 된 연극 art.

  그렇게 아무 생각없이 연극을 보게 된다.

  재미보다는 생각을 많이 하게 된 연극.



사건의 발단은 수현이라는 친구가 흰 바탕에 흰색선이 보이는 한점의 그림을 사게 되면서이다. 그것도 2억 8천만원이라는 거액의 아무것도 없는 하얀 그림.. 혹자는 흰색선이 보인다는 그런 그림..

사실 내가 보기에도 그 그림을 2억8천에 산다는 것은 상상하기도 싫은 일이다. 하지만 난 덕수라는 친구와 비슷한 성격이라 좋은게 좋은거고 뭐 그림에 관심이 있다면 그럴 수 있다고 생각하는 편이다. 그래도 2억8천은 좀..

규태라는 친구는 그런 수현에 대해 극단적으로 자신의 생각을 표현하고 이해하려하지 않는다. 수현의 자기과시에 대해 질투라도 하는 것처럼..

세사람 각각의 생각에 대해 저런 성격의 사람이라면 저럴 수 있다는 생각을 가졌지만 그것이 그렇게 우정에 금갈일인지는 잘 와닿지가 않았다. 수현이란 친구가 내 절친이라면 상황은 달라지겠지만..

그렇게 세사람의 우정을 두고 벌어지는 갈등과 그 해결과정은 비단 친구뿐만 아니라 사회에서 만나는 모든 사람들 간의 관계로도 생각해 볼만 했다.

저작자 표시 비영리 변경 금지
신고
띵스 / 2011.02.15 09:58 / CRazY ABouT/media

 주변 후배들에게 꼭 권하고 싶은 책.

전부터 내가 생각해봤던 내용도 있고, 아 인생을 이런식으로 해석하고 설계할 수도 있구나라는 생각을 들게 해준 "아프니까 청춘이다"

인생을 24시간으로 계산했을때, 난 현재 9시다.

아직 아침이라는 생각에 앞으로 내가 무엇을 어떻게 해야할지에 대한 고민이 많이 들기도 했고, 무엇인가 다시금 도전하고 싶은 생각이 들었다.

난 무엇을 할 수 있을까? 

 

저작자 표시 비영리 변경 금지
신고
띵스 / 2011.01.30 09:24 / CRazY ABouT/media

어느 차장님의 추천으로 읽게 된 추리소설..

사용자 삽입 이미지


리 차일드라는 작가를 처음 접한 책인데 첫 장부터 시선을 사로 잡아 끝까지 흥미롭게 읽은 추리소설.

잭 리처의 9번째 이야기란다. 추리소설 중에서는 꽤나 유명한 작가와 주인공 인듯 했고,

가장 인상적인 것은 글을 읽고 있지만 한편의 그림을 머릿속에서 그리게 만드는 그의 글솜씨였다.

책 한권을 다 읽고 났을 땐, 책을 읽었다기보단 영화를 본 것 처럼 세밀한 묘사가 돋보였다.

잭 리처라는 전직 군인의 냉철하면서도 정확한 판단은 보는 내내 다음 내용을 기대하게 만들었다.

신고
© 2015 띵스 in 커서 뭐 될래?!
Designed by DH / Powered by Tistory
32 / 11 / 57,414