'PROGRAMING'에 해당되는 글 47건

  1. 2011.07.07 이벤트
  2. 2011.07.06 배열 리터럴
  3. 2011.07.06 문자열 조작
  4. 2010.07.27 델파이 소스명
  5. 2009.12.09 PosInsert Activity(Web/NonUI 공통)_Property
  6. 2009.12.09 PosDelete Activity(WEB)_Property
  7. 2009.12.09 PosModify Activity_Property
  8. 2009.12.09 PosSearch Activity_PROPERTY 설정
  9. 2009.11.10 답변형 게시판의 원리
  10. 2009.11.10 JDBC 연결
2011.07.07 13:30

이벤트 핸들러 이벤트가 발생하는 경우
 onAbort 사용자가 이미지 로딩을 강제로 중단할 때
 onBlur 윈도우,폼 구성 요소, 프레임이 포커스를 잃을 때
 onChange Select, Text, Textarea 객체의 필드 값을 변경한 후 포커스를 잃을 때
 onClick 폼 구성 요소가 클릭될 때
 onDblClick 폼 구성요소나 링크를 더블클릭할 때
 ondragDrop 사용자가 한 객체(혹은 파일)를 브라우저 윈도우 상으로 드롭할 때
 onError 문서나 이미지의 로딩시 오류가 발생할 때
 onFocus 윈도우, 프레임, 프레임셋, 폼 요소가 포커스를 받을 때
 onKeyDown 사용자가 키를 누를는 순간
 onKeyPress 사용자가 키를 누른 채 유지하는 동안
 onKeyUp 사용자가 누른 키를 놓는 순간
 onLoad 브라우저 윈도우에 HTML 문서의 로딩직 후 혹은 프레임셋 문서의 모든 프레임의 로딩이 마칠 때
 onMouseDown 사용자가 마우스를 누르는 순간
 onMouseMove 사용자가 마우스를 움직일 때마다
 onMouseOver 사용자가 마우스 커서를 이미지맵이나 링크 위에 올려 놓을 때
 onMouseUp 사용자가 마우스 커서를 이미지맵이나 링크 위세서 내려 놓을 때
 onMove 사용자가 자바스크립트 코드에 의해 윈도우나 프레임의 위치가 이동될 때
 onReset 사용자가 reset 버튼을 누를 때
 onResize 사용자가 자바스크립트 코드에 의해 윈도우나 프레임의 크기가 조절되는 순간
 onSelect 사용자가 Text나 Textarea 객체의 필드 내의 텍스트 일부를 선택할 때
 onSubmit 사용자가 submit 버튼을 누를 때
 onUnload 사용자가 현재 HTML문서보기를 종료하고 다른 웹 사이트로 이동할 때
Posted by 박쥐소년
2011.07.06 23:28
자바스크립트는 배열을 생성하고 초기화 하는 리터럴 문법을 제공한다. 배열 리터럴(혹은 배열 초기자)은 대괄호로 둘러싸인 쉼표로 구분된 값들의 목록이다. 대괄호 내 값들은 0부터 시작하는 배열 인덱스에 차례대로 할당 된다. 예를 들어 , 앞절에서 본 배열 생성과 초기화 코드는 다음과 같이 작성한다.

var a = [1.2,"javascript",true,{x:1,y:3} ];
Posted by 박쥐소년
2011.07.06 22:56
문자열 s의 마지막 문자를 가져오려면
last_char = s.charAt(s.length - 1)

문자열 s에서 두번째,세번째,네번째 문자를 추출하려면,
sub = s.substring(1,4);

문자열 s내에서 첫번째 'a' 문자의 위치를 찾아 내려면
i = s.indexOf('a');




Posted by 박쥐소년
2010.07.27 09:37

1. pas

이게 델파이의 실제 소스가 들어가는 부분입니다.

 

2. dfm

이건 델파이의 폼 부분파일입니다. 즉.. GUI상으로 디자인 하신 폼들의

정보가 들어가게 됩니다.

 

3. dpr

이건 프로젝트 파일입니다. 델파이 프로그램이 하나의 폼이나 소스로

제작되진 않겠으니.. 그런 파일들을 관리해주는 메인 파일이라고 생각하시면 됩니다.

 

즉- 델파이 소스는.. 하나의 dpr, 다수의 pas/dfm 으로 구성됩니다.

 

이렇게 제작된 소스를 컴파일 (F9) 하시면.. 자동으로 exe 파일이 생성됩니다.

Posted by 박쥐소년
2009.12.09 15:32

PosInsert Class는 "Insert into emp(empno,ename,sal,deptno) values(?,?,?,?)"와 같이 Insert SQL을 수행하는 Activity이다.
Web 화면과 NonUI 공통으로 사용되고  Binding Parameter Type은 Web인 경우 String[]의 {0}번째로 Binding하고 Web이 아닌경우는 해당 Object를  Binding한다.



sqlkey:query.xml의 query id
dao:applicationContext.xml의 DAO id
param-count:Binding 할 개 수(select  * from emp where deptno=?)의 "?" 수
param#(param0,param1...):Binding Value("?"와 순서 일치 하여야 함)
resultkey:Query 결과를 ctx에 저장할 Key
chkname:화면의 CheckBox ID
list-key:Update에 Binding 할 Data Context Key(List(Map)구조

Posted by 박쥐소년
2009.12.09 15:29

PosDelete Class는 "delete from emp where empno=?"와 같이 Delete SQL을 수행하는 Activity이다.
Web 화면과 NonUI 공통으로 사용되고  Binding Parameter Type은 Web인 경우 String[]의 {0}번째로 Binding하고 Web이 아닌경우는 해당 Object를  Binding한다.

여기서 chkname이 있는 경우 Web의 CheckBox에 Check 된 수만큼 반복하고 없는 경우는 Context에서 바로 String[]로 get하여 Binding한다.

NonUI의 경우 Data Type String[]가 아닌 경우 바로 해당 Object로 Binding한다.
결과값은 Update한 Count를 결과로 저장할 수 있다.

sqlkey:query.xml의 query id
dao:applicationContext.xml의 DAO id
param-count:Binding 할 개 수(select  * from emp where deptno=?)의 "?" 수
param#(param0,param1...):Binding Value("?"와 순서 일치 하여야 함)
resultkey:Query 결과를 ctx에 저장할 Key
chkname:화면의 CheckBox ID
list-key:Update에 Binding 할 Data Context Key(List(Map)구조
Posted by 박쥐소년
2009.12.09 15:22
PosModify Class는 "update emp set sal=?,ename=? where empno=?"와 같이 Update SQL을 수행하는 Activity이다.
Web 화면과 NonUI 공통으로 사용되고  Binding Parameter Type은 Web인 경우 String[]의 {0}번째로 Binding하고 Web이 아닌경우는 해당 Object를  Binding한다.

여기서 chkname이 있는 경우 Web의 CheckBox에 Check 된 수만큼 반복하고 없는 경우는 Context에서 바로 String[]로 get하여 Binding한다.

NonUI의 경우 Data Type String[]가 아닌 경우 바로 해당 Object로 Binding한다.
결과값은 Update한 Count를 결과로 저장할 수 있다.

sqlkey:query.xml의 query id
dao:applicationContext.xml의 DAO id
param-count:Binding 할 개 수(select  * from emp where deptno=?)의 "?" 수
param#(param0,param1...):Binding Value("?"와 순서 일치 하여야 함)
resultkey:Query 결과를 ctx에 저장할 Key
chkname:화면의 CheckBox ID
list-key:Update에 Binding 할 Data Context Key(List(Map)구조
Posted by 박쥐소년
2009.12.09 15:02
PosSearch Class는 특정 Select Query를 실행하고 그 결과값을 저장하게 된다.
Web화면과 NonUi 공통으로 사용되고 Biding Parametor Type은 Web인 경우 String[]의 {0}번째로 Binding하고 Web이 아닌경우는 해당 Object를 Binding 한다.
이 Class는 Page Size 단위로 Query 결과를 수행하지 않기 때문에 JSP Tag의 showPageSet과 같이  사용할수 있다.

sqlkey:query.xml의 query id
dao:applicationContext.xml의 DAO id
param-count:Binding 할 개 수(select  * from emp where deptno=?)의 "?" 수
param#(param0,param1...):Binding Value("?"와 순서 일치 하여야 함)
resultkey:Query 결과를 ctx에 저장할 Key
Posted by 박쥐소년
2009.11.10 16:03
편의상 그룹 번호를 ref, 그룹 내부의 순서를 step, 그리고, 답변의 깊이를 lev라고 하겠다.
새로가 글이 등록 될때마다 ref가 증가를 하게 되고, 그리고 그 글에 답변이 달릴경우 그룹 번호는 같고
글의 순서(step)를 하나 증가 시키고,답변의 깊이(lev)는 이 전글 깊이에 하나 더 더한 값을 갖게 된다.

이 상테에서 원글에 또 하나의 답변이 달리면 이전에 다린글과 똑같이 되지만 이전에 있는 글을 밀어내고 자기가 그 사이로 끼어 들어간다. 그 경우 같은 그룹내에서 이전글의 step보다 큰값을 갖고 있는 게시물들은 모두 하나씩 증가 시킨다.  예를 들어서 A라는 글이 처음으로 써지고  이글에 B라는 답글을 달고, 또 B글에 C라는 답글을 달고 나서 , A글에 D라는 답글이 또 달리게 되면
 글제목  SEQ  REF  STEP LEV 
 A  1  1  0  0
 D  4  1  1  1
 B  2  1  2(1->2)  1
 C  3  1  3(2->3)  2


이럴 경우 DB에서 불러오는 순서는 order by ref desc,step asc가 된다. 원칙은 같은 레벨에서 최근글은 위에 올리도록 한것이다. 이 원리를 설명하면서 sql로 표시해 보자

그룹의 처음글은 seq와 ref의 최고값을 가져온 후에 하나씩 더한 값을 갖게 된다. 그리고 step과 lev는 0이 된다.
INSERT INTO BOARD(SEQ,REF,STEP,LEV)VALUES(SEQ_BOARD_SEQ.NEXTVAL,SEQ_BOARD_REF.NEXTVAL,0,0)

답글을 달때 SEQ는 게시판에서 최대값에 하나 더한 값을 갖고,REF는 이전글의 것을 가져와 그대로 쓴다. 값을 저장하기 전에 자기가 들어갈 자리를 마련해야 되는데  같은 REF를 쓰는 게시물 중에서 이전글의 STEP보다 큰 경우 모두 1씩 더해준다.
UPDATE BOARD SET STEP = STEP +1 WHERE REF=원글 REF  AND STEP > 원글 STEP
LEV와 STEP에는 이전글의 값에 하나씩 더해 준 값이 입력된다.

INSERT INTO BOARD(SEQ,REF,STEP,LEV)VALUES(SEQ_BOARD_SEQ.MEXTAVL,원글 REF,원글STEP+1,원글 LEV+1);
Posted by 박쥐소년
2009.11.10 15:31
먼저 JDBC 드라이버를 로드한 다음 JDBC_URL,USER_ID,USER_PASSWORD 정보를 사용하여 커넥션(Connection)을 하나 얻어온다. 이 커넥션에 sql 문장을 보내고(Statement), 그 결과(Result)를 받아 온다. 결과셋을 닫고 뒤이어 스테이트먼트를 닫아준다. 그리고, 커넥션을 닫아주면 DB에 접속해서 결과를 가져오는 과정을 마무리 할 수 있다.

1. 드라이버를 로드한다.
2. Connection을 가져온다.
3. Statement를 준비
4. ResultSet 가져와서 처리
5. ResultSet 종료
6. Statement 종료
7. Connection 종료
Posted by 박쥐소년