가격: 36,000원 |
2007년 7월 31일 화요일
2007년 7월 24일 화요일
2007년 7월 6일 금요일
[visual basic] Excel 객체를 사용한 ExportToExcel Module
Public Function ExportToExcel(rs As Recordset, Optional FileName As String = "resultset.xls") As Boolean
Dim ExcelSheet As Object
Dim X As Excel.Worksheet
'Dim cl As rdoColumn
Dim col As Integer, row As Integer: col = 1: row = 1
Dim I As Integer
On Error GoTo Export_Err
Screen.MousePointer = vbHourglass
Set ExcelSheet = CreateObject("Excel.Sheet")
Set X = ExcelSheet.Application.ActiveSheet
X.cells(1, 1).Value = "just test 한글문제 해결되나?" ' cell의 내용 설정
X.Name = "배송확인" ' sheet의 이름 설정
X.SaveAs App.Path & "\" & FileName
X.Application.Quit
Set ExcelSheet = Nothing
Set X = Nothing
Screen.MousePointer = vbDefault
ExportToExcel = True
Exit Function
Export_Err:
' code to display error or handle it
Screen.MousePointer = vbDefault
ExportToExcel = False
Exit Function
End Function
[apache] virtual directory설정 샘플
<Directory "/Users/lgrillo/Desktop/examplesite_folder/examplesite">
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
무지 쉽구만...역시 아파치다..
2007년 7월 4일 수요일
jdbc 설정
- JDBC 드라이버 다운로드
JDBC 드라이버는 자바에서 데이터베이스를 연동하기 위한 드라이버입니다.
MySQL 연동을 위해 MySQL에서 제공하는 JDBC 드라이버를 다운로드해야 합니다.
MySQL JDBC 드라이버는 Connector/J라는 이름으로 제공됩니다.
처음부터 MySQL에서 JDBC 드라이버를 제공한 것은 아닙니다. 예전에는 몇몇 공개된 JDBC 드라이버가 있었는데, 그 중 가장 유명했던 것이 Mark Matthews가 만든 MM.MySQL JDBC 드라이버였습니다. 현재의 Connector/J는 이 MM.MySQL 드라이버를 MySQL AB사에서 공식적으로 받아들여 보완한 것입니다. 따라서 Mark Matthews의 MM.MySQL은 더이상 업그레이드되지 않고 MySQL AB사에서 Connector/J라는 이름으로 업그레이드하고 있습니다.
이 글을 쓰고 있는 현재 기준으로 Connector/J는 3.1이 개발중입니다. 3.0이 안정 버전이고, 2.0이 구버전으로 되어 있습니다.
- 아래 MySQL Connector/J 다운로드 페이지에 접속합니다.
MySQL Connector/J 다운로드 페이지 바로 가기
- Downloads, Licensing, and Support라는 제목 아래에 보면 Connector/J의 몇 가지 버전이 표시되어 있습니다.
이 중에서 MySQL Connector/J 3.0 를 클릭합니다.
- Source and Binaries (zip)의 Download를 클릭하여 파일을 다운로드합니다.
- 아래 MySQL Connector/J 다운로드 페이지에 접속합니다.
- JDBC 드라이버 설정
- 압축 파일을 적당한 위치에 풉니다.(예를 들어 c:\jdbc)
- 중요
jdbc의 하위 폴더인 mysql-connector-java-3.0.6-stable에서 mysql-connector-java-3.0.6-stable-bin.jar 파일을,
자바가 설치된 디렉토리(예를 들어, c:\j2sdk1.4.1_02)의 jre\lib\ext 디렉토리에 복사합니다.
원래는, 이렇게 직접 복사하지 않고 시스템 환경 변수로 CLASSPATH를 만들어 mysql-connector-java-3.0.6-stable-bin.jar파일의 위치를 지정해 주어야 하는데, 번거롭기도 하고 Windows에서 잘 작동하지 않는 것 같아 직접 복사하는 방법을 사용한 것입니다.
그렇다고 이것이 편법은 아닙니다. Connector/J 설치 매뉴얼에 보면,
Put mysql-connector-java-3.0.6-stable-bin.jar in your classpath, either by adding the FULL path to it to your CLASSPATH enviornment variable, or putting it in $JAVA_HOME/jre/lib/ext.
이렇게 직접 복사해 넣어도 된다고 명시되어 있습니다.
※ 자료실에 mysql-connector-java-3.0.6-stable-bin.jar 파일을 등록해두었습니다. 이 파일 하나만 있어도 됩니다~
- 압축 파일을 적당한 위치에 풉니다.(예를 들어 c:\jdbc)
- 톰캣 재 실행
- 톰캣을 재 실행합니다.
톰캣이 실행되면서 위에서 복사한 Connector/J 파일을 포함하여 실행하게 됩니다.
- 아파치와 MySQL을 실행하지 않았다면, 이것도 실행해야 합니다.
앞으로의 실습은, 아파치-MySQL-톰캣을 모두 실행해 놓고 실습해야 합니다.
APM_Setup을 실행하고 톰캣을 실행하면 되겠죠.
이렇게 하면 JSP 뿐만 아니라 PHP도 모두 구동할 수 있는 환경이 됩니다.
- 톰캣을 재 실행합니다.
[unix] VI 메뉴얼 - 내가 만들었음 내가 주로쓰느것들만 모음
esc: 명령어 입력
vi로 게시물 열기 및 저장
vi file : vi를 시작하여 지정한 파일 편집
vi -R file : 읽기 전용 편집기로서 vi를 시작하여 지정한 파일 편집
view file : 읽기 전용 편집기로서 vi를 시작하여 지정한 파일 편집
wq : 데이터를 저장하고 종료
:q! : 데이터를 저장하지 않고 종료
입력키의 종류
a : 커서 위치의 다음 칸부터 입력하기
A : 커서가 있는 줄의 끝부터 입력하기
i : 커서 위치부터 입력하기 (Insert도 같은 역할)
I : 커서가 있는 줄의 맨 앞에서부터 입력하기
o : 커서 바로 아래에 줄을 만들고 입력하기
O : 커서 바로 위에 줄을 만들고 입력하기
s : 커서가 있는 단어를 지우고 입력하기
S : 커서가 있는 행을 지우고 입력하기
삭제
x : 문자 삭제
#x : #개의 문자 삭제
dd : 한 줄 삭제
#d : #줄 삭제
취소키의 종류
u : 작업 취소하기
U : 그 줄에 행해진 작업 모두 취소하기
. : 조금 전에 했던 명령을 반복하기
줄이동
h<Left> : 커서를 한 칸 왼쪽으로 이동
j<Down> : 커서를 한 줄 아래로 이동
k<Up> : 커서를 한 줄 위로 이동
l<Right> :커서를 한 칸 오른쪽으로 이동
<Backspace> :커서를 한 칸 왼쪽으로 이동
0 : 커서를 현재 줄의 맨 앞으로 이동
$ : 커서를 현재 줄의 맨 끝으로 이동
^ : 커서를 현재 줄의 첫글자(공백이나 탭이 아닌)로 이동
마지막으로 지운거 복사
p : 마지막으로 지워진 것을 커서의 뒤/아래에 삽입
P : 마지막으로 지워진 것을 커서의 앞/위에 삽입
패턴검색
/ : 이전의 패턴에 대해 앞으로 검색을 반복
n : 명령에 대해 같은 방향으로 반복
N : 명령에 대해 반대 방향으로 반복
줄 길이의 조절
: J : 줄의 결합
Visual 모드
v ㅋㅋ
[sample] select box에 option추가 및 선택
<script language=javascript>
var m_index = 0;
function add()
{
m_index++;
var oNewNode=document.createElement("option");
oNewNode.setAttribute("value", m_index);
oNewNode.innerText= m_index;
oNewNode.selected = true;
obj_select.appendChild ( oNewNode );
}
</script>
<input type=button onClick=javascript:add() value="add">
<select name=obj_select>
</select>
select, table등의 동적 객체 생성
<SCRIPT>
function appChild(){
if (oList.all.length<6){
var oNewNode=document.createElement("option");
oNewNode.setAttribute("id", "item"+(ulObj.all.length+1)); //ID부여
oNewNode.innerText="id=item"+(oList.all.length+1);
oList.appendChild(oNewNode);
}
}
</SCRIPT>
<select id=oList size=10>
<option name=item1 value="">항목 번호 1</option>
</select>
<INPUT type="button" value="자식 개체 추가" onclick="appChild()">
<BR><BR>-------------------------<BR><BR>
<SCRIPT>
function insertElement(){
var nod=document.createElement('option');
nod.setAttribute("id","oLi"+(ulObj.all.length+1)); //ID부여
nod.innerText="id=oLi"+(ulObj.all.length+1);
ulObj.insertBefore(nod,eval("oLi"+(ulObj.all.length)));
}
</SCRIPT>
<select id=ulObj size=10>
<option id="oLi1" name=item value="">항목 번호 1</option>
<option id="oLi2" name=item value="">항목 번호 2</option>
<option id="oLi3" name=item value="">항목 번호 3</option>
</select>
<INPUT type="button" value="개체 삽입" onclick="insertElement()">
<BR><BR>-------------------------<BR><BR>
<TABLE id=tableObj border=1 width=600>
<TR id=row1>
<TD id=cell11>예제 칸1-1</TD>
<TD id=cell12>예제 칸1-2</TD>
</TR>
<TR id=row2>
<TD id=cell21>예제 칸2-1</TD>
<TD id=cell22>예제 칸2-2</TD>
</TR>
<TR id=row3>
<TD id=cell31>예제 칸3-1</TD>
<TD id=cell32>예제 칸3-2</TD>
</TR>
</TABLE>
<SCRIPT>
function makeRow(){
newTr=tableObj.insertRow(document.createElement('<TR>'));
newTd=newTr.insertCell(document.createElement('<TD>'));
newTd.innerText='생성, 삽입된 줄-칸1';
newTd=newTr.insertCell(document.createElement('<TD>'));
newTd.innerText='생성, 삽입된 줄-칸2';
}
function delRow(){
tableObj.deleteRow(0);
}
</SCRIPT>
<BUTTON onclick="delRow();">테이블 줄 제거 클릭</BUTTON>
<BUTTON onclick="makeRow();">테이블 줄 생성 클릭</BUTTON>
TR에 insertCell(TD)이라는 함수가 잇음 이거 사용하면 TD를 제어할수있음
table를 마음대로 컨트롤 합니다.
<table id=sendTable border>
<tr>
<td>1</td><td>2</td><td>3</td>
</tr>
</table>
table id=sendTable<br>
otr = sendTable.insertRow(0) : 위한줄을 추가합니다<br>
otr = sendTable.insertRow()=sendTable.insertRow(1) : 다음 한줄을 추가합니다<br>
<BR>
otd = otr.insertCell()=otr.insertCell(-1)=otr.insertCell(0) : 셀을 추가합니다<br>
otd.innerHTML = "sell1" : 로 그셀에 들어갈 내용을 정의합니다
<BR><BR>
(숫자) 가 들어가기 위해서는 row 나 cell 이 들어갈 숫자가 정의되야 합니다.
<script>
otr = sendTable.insertRow();
otd = otr.insertCell();
otd.innerHTML = "*sell1";
otd = otr.insertCell();
otd.innerHTML = "*sell2";
otd = otr.insertCell();
otd.innerHTML = "*sell3";
otr = sendTable.insertRow();
otd = otr.insertCell(0);
otd.innerHTML = "sell_a1";
otd = otr.insertCell(1);
otd.innerHTML = "sell_b2";
otd = otr.insertCell(2);
otd.innerHTML = "sell_c3";
otr = sendTable.insertRow();
otd = otr.insertCell();
otd.innerHTML = "sell21";
otd = otr.insertCell();
otd.innerHTML = "sell22";
otd = otr.insertCell(0);
otd.innerHTML = "1번 sell에 덮어쓰기 insertCell(0)";
otr = sendTable.insertRow(3);
otd = otr.insertCell();
otd.innerHTML = "&3번줄에 끼어넣기 sell1";
otd = otr.insertCell();
otd.innerHTML = "3번줄에 끼어넣기 sell2";
otd = otr.insertCell();
otd.innerHTML = "3번줄에 끼어넣기 sell3";
otd = otr.insertCell();
otd.innerHTML = "*3번줄에 끼어넣기 sell4";
</script>
=======================
동적 select 예제입니다
=======================
if (document.all.COMP) document.all.COMP.options[0] = new Option("라인명","");
if (document.all.PART) {
if (document.all.PART[1].length==undefined) {
document.all.PART.options[0] = new Option("설비명2","");
} else {
for (var i=0;i<document.all.PART.length;i++) {
document.all.PART[i].options[0] = new Option("설비명2","");
}
}
}
if (document.etcSelect.PART) document.all.etcSelect.options[0] = new Option("설비명","");
DBMS 교육 커리큘럼
Devpia에서 멜로 온건데.. 맘에 들어서 나도 공부해 보려 함..
DBMS 구조 |
DBMS 내부 구조 병렬 처리와 LOCK 메커니즘 |
4시간 |
인덱스란? | 인덱스 내부 구조 인덱스 스캔 방식 B-Tree & Bitmap & Function Based 인덱스 인덱스 사용 및 설정 시의 유의사항 전체 범위 처리와 부분 범위 처리 |
6시간 |
조인 & 클러스터링 | Nested Loop 조인 Sort-Merge 조인 Hash 조인 Cartesian 조인 Cluster Subquery & 순환 관계 처리 SQL Plan & Tkprof |
7시간 |
옵티마이저 | 옵티마이저의 이해 | 3시간 |
SQL PATTERN | SQL PATTERN 학습 | 5시간 |
실무 활용 기법 및 예제 | Analytic Function의 기법 & Rollup & Cube 실무 활용법 I 실무 활용법 II 실무 활용법 III 튜닝의 기법 |
10시간 |
2007년 7월 3일 화요일
javascript 정규식 예제.
string+='<H1>다른 제목1</H1><H2>다른 제목2</H2>'; // string='<H3>과제 11. 정규식 예제 중 한정기호</H3><H1>다른 제목1</H1><H2>다른 제목2</H2>'; reg=/<.3*?.*\/.3>/g; document.write(string.match(reg));