목록Category (169)
C#,Delphi,Oracle,MSSQL 개발자블로그
call by value 와 call by reference의 차이점은 swap 함수의 구현으로써 설명 할 수 있다!! 'Call by value'닫기 1. Call by value : 우리말로하면 바로 "값에 의한 호출"이란 뜻으로, 어떤 함수를 호출할때에 전달인자로 그 데이터 값 자체를 전달하는 호출 방법이다. 2. swap함수의 구현 위와 같은 소스를 실행시켜보았을때, swap함수대로 a와 b의 값이 제대로 바뀌지 않은채로 출력하는걸 볼수 있다. 함수 호출시 ===> swap(a,b); (소스의 빨간 숫자들은 순서를 표현하기 위해 임의로 붙여놓은것, 소스코드와는 상관없다) 3. 스택(Stack)으로 나타내기 붙인 번호순서대로 메모리 상황을 스택으로 그려보면 다음과 같다 ① 변수 a와 b가 선언되고,..
재고추가폼에서 맛과 수량을 정해서 '추가'버튼을 누르면 DB에서의 재고량이 증가하고 폼을 닫았을때 원래의 폼에 있떤 리스트가 새로고침 되도록 하려고 한다!!!! 리스트가 있는 폼은 Form1 재고추가 폼은 Form2 즉 Form2의 소스에서 Form1에 있는 리스트를 제어하려고 하는 것이다!!!! 그러기 위해선 먼저 Form1에서 Form2를 열때 요러케 Form2 frm = new Form2(this); this를 넣어 넘겨준다 현재의 폼 , 즉 이Form1을 넘겨준다는것!! 그러고선 Form2의 소스에서의 생성자를 수정한다!! 빨간 네모 부분은 원래 있던 디폴트 생성자이다. (전달인자 없음) 이건 그대로 둔채 생성자 하나를 더 추가시킨다!!! ( 녹색 네모부분) Form1형식의 폼을 전달인자로 받는 ..
private void openFileDialog1_FileOk(object sender, CancelEventArgs e) { OpenFileDialog dlg = openFileDialog1; string fullPathName = dlg.FileName; string fileName = dlg.SafeFileName; string pathName = fullName.Substring(0, (fullPathName.Length - fileName.Length)); textBox1.Text = fullPathName; // 전체경로와파일명과확장자 textBox2.Text = fileName; // 파일명과확장자 textBox3.Text = pathName; // 전체경로 } 출처 : http://aes..
varchar와 varchar2는 모두 가변형 길이를 말한다. 예를들어 ' varchar(100) ' 만큼 선언을 해 주어도, 이 데이터타입에 입력된 데이터가 10byte밖에 안되면, varchar(100) 으로 선언했어도 varchar는 10byte만큼의 길이밖에 가지지 않게 된다. 그밖의 차이점은 다음과 같다. - varchar : mysql, mssql 에서 사용하는 형식. 문자길이 255까지 가능. - varchar2 : Oracle에서 사용하는 형식. 4000바이트(한글2000자, 영문 4000자)까지 저장 가능. number(x,y)의 의미. x : 정밀도 y : 배율 정밀도 : 소수점의 오른쪽과 왼쪽에 저장될 수 있는 전체 자릿수의 최대값 배율 : 소수점의 오른쪽에 저장될 수 있는 최대 자릿..
오라클 EXISTS함수, NOT EXISTS, MINUS 함수 1. 오라클 NOT IN, NOT EXISTS, MINUS의 효과적인 튜닝방법 - 데이터 제한 조건은 인덱스를 사용 - 데이터 불러오는 양을 적게한다. - 사용자 ORACLE FUNCTION은 자제 - 무조건 FULLTABLESCAN(이하 FTS)이 나쁜것은 아님 - NOT IN보다는 IN사용 권장 - NOT EXISTS 보다는 EXISTS사용 권장 - UNION보다는 UNION ALL사용 권장 2. EXISTS 실행조건 2.1 EXISTS 조건은 subquery 에 해당하는 row가 적어도 한 개 이상 존재할 경우가 충족되는 경우 SELECT가 실행된다. 2.2 EXISTS 조건은 유효한 SQL 문장인 select, inset, update..
1. 원하는 길이로 좌측/우측 정렬시킨후 나머지 공간을 다른 문자로 채우기 (기본은 공백) String.PadLeft(길이, [문자]); String.PadRight(길이, [문자]); 예) string str1 = "asdf"; string str2 = str1.PadLeft(10); --> str2 = " asdf" string str3 = str1.PadRight(6, '-'); --> str3 = "asdf--" str2 웹에서 보면 빈칸이 안나오기에 그냥 asdf로 나오지만 Length 해보면 10값 나옴 출처 : http://ramses8.tistory.com/218
이번 강좌에서는 스레드를 다루어 볼 것입니다. 스레드는 네트워크 프로그램만 아니라 비동기 처리나 동시 다발적인 프로그래밍을 하기 위해서는 반드시 알아야 할 개념입니다. 스레드의 깊이는 굉장히 깊습니다. 이 책에서는 깊은 스레드의 내용 중에서도 반드시 알아야 내용들만 다루게 볼 것입니다. 중요한 부분이기 때문에 그냥 지나치지 말고 학습하고 넘어 가기 바랍니다. 1. 스레드 개념 이해하기 스레드는 CPU의 가장 작은 실행 단위입니다. 우리가 만들게 될 게임 같은 프로그램은 프로세스에 해당 됩니다. 스레드는 그 프로세스에 안에서 실행되는 작은 실행 단위의 개념입니다. 그렇기 때문에 하나의 프로세스에는 여러 개의 스레드가 존재 하게 됩니다. 아래 그림을 보고 좀더 구체적으로 이해해 봅시다. 우리는 현재 32bi..
C#에서 저장 프로시저를 호출하는 방법을 공부해본다. 드라이버는 Oledb를 사용했다. 순서를 보면, 1. Command 를 선언하고, OleDbCommand cmd = new OleDbCommand(); 2. Command 에 커넥션을 연결하고, cmd.Connection = conn(커넥션); 3. Command 타입을 설정하고, cmd.CommandType = CommandType.StoredProcedure; 4. Command 에 프로시저명을 설정하고, cmd.CommandText = "프로시저명"; 5. Command 에 인 파라미터를 설정하고 실행한다. OleDbParameter pin1 = new OleDbParameter("id", OleDbType.VarChar); pin1.Value ..
패키지(package)는 오라클 데이터베이스에 저장되어 있는 서로 관련있는 PL/SQL 프로지져와 함수들의 집합 이다. 패키지는 선언부와 본문 두 부분으로 나누어 진다. 패키지 선언절 문법 - 선언절은 패키지에 포함될 PL/SQL 프로시저나, 함수, 커서, 변수, 예외절을 선언 한다. - 패키지 선언부에서 선언한 모든 요소들은 패키지 전체에 적용 된다. - 즉 선언부에서 선언한 변수는 PUBLIC 변수로 사용 된다. 패키지 본문 문법 - 패키지 본문은 패키지에서 선언된 부분의 실행을 정의 한다. - 즉 실재 프로시져나 함수의 내용에 해당하는 부분이 온다. 아래는 네 개의 프로시저를 하나의 패키지로 생성하는 아주 간단한 예제이다. 프로시저명 프로시저 기능 all_emp_info 모든 사원의 사원 정보 (사..
정부 정책상 비밀번호는 복호화가 안되어야 한다고 한다. 다행히도 오라클에서 단방향 암호화 패키지가 존재한다. DBMS_CRYPTO.HASH : 10g부터 지원한다고 함. 사용법은 굉장히 간단하다. view source print? 1.SELECT RAWTOHEX(DBMS_CRYPTO.HASH(TO_CLOB(TO_CHAR('암호화할 내용')), 파라미터) 2.FROM DUAL; 파라미터에 들어가는 내용은 암호화 하는 알고리즘을 정하는것이다. MD4 : 1 MD5 : 2 SH1 : 3 단, DBMS_CRYPTO 패키지 사용권한이 필요하다. SYSDBA계정으로 들어가 사용하고자 하는 계정으로 GRANT를 먼저 날려줘야 한다. 출처 : http://elecfactory.tistory.com/63