# MySQL 접속
C:\> mysql -h호스트 -u계정 -p비밀번호 데이터베이스명

예) mysql -hlocalhost -uroot -pdbpass mysql
* -h는 생략하셔두 됩니다.

# 데이터베이스 생성
mysql> create database 데이터베이스명;

# 데이터베이스 보기
mysql> show databases;

# 데이터베이스 변경 및 접근
mysql> use 데이터베이스명;

# 데이터베이스 삭제
mysql> drop database 데이터베이스명;

* mysql을 접속 안한 상태
C:\> mysqladmin -u계정 -p비밀번호 drop 데이터베이스명

# 테이블 생성
mysql> create table 테이블명 (필드명 필드속성(필드길이) 기타옵션);

예)
create table test (
num int(11) NOT NULL auto_increment,
member varchar(50),
system int(2) DEFAULT '0',
tdate datetime,
PRIMARY KEY (num) );

# 테이블 보기
mysql> show tables;

# 테이블 구조 보기
mysql> desc 테이블명;

# 테이블 구조 추가
mysql> alter table 테이블명 add 필드명 필드속성(필드크기) 옵션;

예) alter table test add subject varchar(50) NOT NULL DEFAULT 'No';

# 테이블 구조 수정
mysql> alter table 테이블명 change 필드명 변경할필드명 필드속성(필드크기) 옵션;

예) alter table test change subject content text;

# 테이블 구조 삭제
mysql> alter table 테이블명 drop 필드명;

# 테이블 복사
mysql> create table 사본테이블명 as select * from 원본테이블명;

# 테이블 삭제
mysql> drop table 테이블명;

# 데이터베이스 백업
C:\> mysqldump -u 유저아이디 -p DB명 > 저장할파일명

[테이블 백업]
C:\> mysqldump -u 유저아이디 -p DB명 테이블명 > 저장할파일명

# 데이터베이스 복원
C:\> mysql -u 유저아이디 -p DB명 < 백업파일명

'개발지식창고 > DataBase' 카테고리의 다른 글

MySQL : Data Type (1 of 2)  (0) 2010.08.31
MFC MYSQL 연동  (0) 2010.08.31
[MySQL] 데이타베이스명령어  (0) 2010.08.31
[MySQL]MySQL 테이블수정  (0) 2010.08.31
[MySQL] MySQL 기본 명령어 정리  (0) 2010.08.31
Posted by 모과이IT
,
############## mysql 데이타 베이스 명령어 ##############
작성자: w0rm9 (허접해도 이해해주기~)

1. mysql에 초기 접속하기
먼저, root 로 /usr/local/mysql/bin/mysql 에 접속한다.

# mysql -u root mysql
// 초기엔 mysql관리자 root(서버의 root가 아님!)의 패스워드가 등록되어 있지 않기 때문에 패스워드 없이 접속 할 수 있다.



2. mysql관리자 root 패스워드 설정
mysql을 설치하고 나면 mysql이라는 데이터베이스가 기본적으로 생성되어 있다. (show databases; 로 확인 ;-)
즉, mysql 관리용 데이타베이스라고 생각하면 된다. 즉, mysql관리자인 root도 이 데이터베이스의 user라는 테이블내에
등록되어 있다. root 패스워드 변경은 user라는 테이블에서 변경해주면 된다.

mysql> update user set password = password('w0rm9') where user = 'root';
// root의 패스워드를 w0rm9 으로 설정했다.

그런 다음 exit; 명령어로 빠져나와서 데이터베이스를 재시작해준다.
# mysqladmin -u root reload

다음 접속시 부터는 패스워드를 입력해야 한다.
# mysql -u root -p
Enter password: 패스워드 입력



3. mysql 새로운 사용자 계정 설정법
# mysql -u root -p
Enter password:
....어쩌구 저쩌구.......

mysql> use mysql;
....어쩌구 저쩌구.......
Database changed

// w0rm9이란 데이터베이스를 만들었다.
mysql> create database w0rm9db;

// mysql 데이터베이스의 user 테이블에 새로운 사용자를 생성한다.
mysql> insert into user (host, user, password) values('localhost','w0rm9',password('1234')); 또는
mysql> insert into user values('localhost','w0rm9',password('1234'),'Y','Y','Y',Y''Y','N','N','N','N','N','N','N','N','N');

// user라는 테이블에 생성된 mysql사용자(w0rm9)가 입력되었는지 확인힌다.
mysql> select * from user where user = 'w0rm9';

// db 테이블에 w0rm9사용자가 사용할 데이터베이스 연동시킨다.
mysql> insert into db values('localhost','w0rm9db','w0rm9','y','y','y','y','y','y','y','y','y','y');

// db 테이블에 w0rm9db라는 db가 연동되었는지 확인한다.
mysql> select * from db where db = 'w0rm9db';

// 생성된 데이터베이스를 확인한다.
mysql> show databases;

// 빠져나온다.
mysql> exit

// 새로운 사용자나 데이터베이스 생성 후에는 반드시 reload를 해줘야 적용된다.
# mysqladmin -u root -p reload
Enter password:

-보안을 위한 일반사용자의 권한 설정-
user에서 localhost, user, password만 빼고 나머지는 다 N
db에서 localhost, Db, user 만 빼고 나머지는 다 Y



4. mysql 기존 데이터베이스 삭제
// 데이터베이스를 확인한 후 삭제한다.
mysql> show databases;
mysql> drop database w0rm9db;

// 사용자를 삭제한다.
mysql> delete from user where user='w0rm9';
mysql> delete from db where user='w0rm9';



5. table 관련 명령어
// table 생성하기
mysql> create table table_w0rm9 (
         -> name varchar(12),
         -> contents text
         -> );

mysql> show tables;
     +--------------------+
     | Tables_in_babyhack |
     +--------------------+
     | table_w0rm9        |
     +--------------------+

mysql> desc table_w0rm9;
     +---------+-----------------------+------+-----+---------+----------------+
     |  Field  | Type                  | Null | Key | Default | Extra          |
     +---------+-----------------------+------+-----+---------+----------------+
     name   | varchar(12)           |      |     |         |                |
     |contents | text                  |      |     |         |                |
     +---------+-----------------------+------+-----+---------+----------------+

//table 삭제하기
mysql> drop table table_w0rm9;

//table 이름 바꾸기
mysql> alter table old_w0rm9 rename new_w0rm9;

// 필드 추가하기, varchar(40)이라는 타입의 homepage라는 필드가 추가된다.
mysql> alter table table_w0rm9 add column homepage varchar(40);

// 필드명 변경하기, 생성했던 homepage 필드를 age로 변경한다. 속성까지 변경 가능
mysql> alter table table_w0rm9 change column homepage age varchar(3);

// 필드 삭제하기, 생성했던 homepage 필드가 삭제된다.
mysql> alter table table_w0rm9 drop column homepage;

// 데이터 추가하기, 내용 추가 후 확인
mysql> insert into table_w0rm9(name, contents, homepage) values('w0rm9','hacked by w0rm9', 'http://w0rm9.madnom.com');
mysql> select * from table_w0rm9;

// 데이터 검색하기
mysql> select contents from table_w0rm9;  // contents의 내용만 확인한다.
mysql> select contents, name from table_w0rm9;  // contents, name의 내용만 확인한다.
mysql> select homepage from talbe_w0rm9 where name = 'w0rm9';  // name이 w0rm9의 homepage내용만 출력한다.
mysql> select name from talbe_w0rm9 where name LIKE '%rm%';   // name에 rm이 포함된 name의 내용만 출력한다.

// 데이터 수정하기
mysql> update talbe_w0rm9 set name = 'cracker' where homepage = 'http://w0rm9.madnom.com';
// 홈페이지가 http://w0rm9.madnom.com 인 레코드의 name을 cracker로 입력했다.

// 데이터 삭제하기
mysql> delete from testtable where name = 'w0rm9';
// name가 w0rm9인 레코드를 삭제했다.



6. 그 밖의 명령어들
// 현재 데이터베이스 확인
mysql> show databases;

// mysql이라는 데이터베이스를 작업대상 Db로 정함
mysql> use mysql;

// 현재 액세스한 테이터베이스의 테이블 확인
mysql> show tables;

// 테이블에 존재하는 모든 데이터 검색
mysql> select * from user;
mysql> select * from db;

// 특정 테이블의 필드구조 확인
mysql> show columns from user;
mysql> desc user;



7. mysqladmin 사용법
// 데이터베이스 종료
# mysqladmin -u root -p shutdown

// 데이터베이스 재시작
# mysqladmin -u root -p reload

// 새로운 데이터베이스 생성
# mysqladmin -u root -p create w0rm9

// 기본의 데이터베이스 삭제
# mysqladmin -u root -p drop w0rm9

// root 패스워드 변경
# mysqladmin -u root -p password 1234



8, 백업과 복구
// w0rm9db라는 데이터베이스 백업하기
# mysqldump -u root -p w0rm9db > w0rm9db.bak.sql
Enter password:

// w0rm9db.bak.sql 백업베이터 복구하기
# mysql -u root -p w0rm9db < w0rm9db.bak.sql
Enter password"

위와 같이 데이터베이스를 백업할때는 mysql이라는 데이터베이스도 함께 백업해 둔다.
어떤 데이터베이스가 있었나는 알 수 있기 때문이다.

_eof_

'개발지식창고 > DataBase' 카테고리의 다른 글

MySQL : Data Type (1 of 2)  (0) 2010.08.31
MFC MYSQL 연동  (0) 2010.08.31
[MySQL] 기본명령어  (0) 2010.08.31
[MySQL]MySQL 테이블수정  (0) 2010.08.31
[MySQL] MySQL 기본 명령어 정리  (0) 2010.08.31
Posted by 모과이IT
,
이름 바꾸기
mysql> ALTER TABLE tablename RENAME bbs;


컬럼 속성 수정
mysql> ALTER TABLE tablename MODIFY colname INT NOT NULL AUTO_INCREMENT PRIMARY KEY;

ALTER TABLE tablename MODIFY 컬럼이름 컬럼속성

컬럼 이름 바꾸기
sysql> ALTER TABLE tablename CHANGE colname newcolname INT NOT NULL AUTO_INCREMENT;

CHANGE는 컬럼 속성뿐아니라 이름도 바꿔준다.

컬럼 추가
mysql> ALTER TABLE bbs ADD name varchar(10);

ALTER TABLE tablename ADD 컬럼이름 컬럼속성

컬럼 삭제
mysql> ALTER TABLE bbs DROP colname;


특정 컬럼 뒤에 새로운 컬럼 추가
mysql> ALTER TABLE bbs ADD newcol varchar(10) AFTER num;

num 컬럼 뒤에 newcol 컬럼 추가.

기존 컬럼을 지우고 맨 앞에 컬럼 추가
mysql> ALTER TABLE bbs DROP newcol, ADD newcol VARCHAR(10) FIRST;

맨 앞에 추가하려면 FIRST를 사용한다.

PRIMARY KEY 속성 삭제
mysql> ALTER TABLE test DROP PRIMARY KEY;


이미 PRIMARY KEY인 컬럼의 속성을 바꿀 때
PRIMARY KEY 속성은 지정하지 말고, NOT NULL 속성을 함께 지정해 주면 기존 PRIMARY KEY 속성은 그대로 남은 상태로 컬럼의 속성을 변경할 수 있다.
mysql> ALTER TABLE test MODIFY a CHAR(1) NOT NULL;


테이블의 내용 전체 삭제
mysql> TRUNCATE TABLE tablename;

트랜잭션에 의해 복구될 수 없다.

'개발지식창고 > DataBase' 카테고리의 다른 글

MySQL : Data Type (1 of 2)  (0) 2010.08.31
MFC MYSQL 연동  (0) 2010.08.31
[MySQL] 기본명령어  (0) 2010.08.31
[MySQL] 데이타베이스명령어  (0) 2010.08.31
[MySQL] MySQL 기본 명령어 정리  (0) 2010.08.31
Posted by 모과이IT
,

MySQL의 기본 명령어와 SQL문 정리. 내가 RDBMS에 완전 문외한이기 때문에 기본 SQL쿼리까지...
Redhat Linux 7.3, MySQL 3.23.58 에서 테스트함.
설치는 Redhat 기본 제공 RPM으로 했다.

데이터베이스 접속
$ mysql -u 사용자명 -p dbname

설치 직후에는 root 사용자에 비밀번호가 없으므로 다음과 같이 접속하여 MySQL을 관리할 수 있다.

$ mysql -u root mysql


비밀번호 변경
MySQL을 설치한 직후에는 root 계정에 암호가 지정되어 있지 않다.
다음 세가지 방법으로 비밀번호를 변경 할 수 있다.

  • mysqladmin이용
    $ mysqladmin -u root password 새비밀번호

  • update문 이용
    $ mysql -u root mysql

    mysql> UPDATE user SET password=password('새비밀번호') WHERE user='root';
    mysql> FLUSH PRIVILEGES;


  • Set Password 이용
    SET PASSWORD FOR root=password('새비밀번호');


일단 root 비밀번호가 설정된 상태에서는 mysql이나 mysqladmin 명령을 실행할 때 -p 옵션을 붙여주고 기존 비밀번호를 입력해야만 한다.

사용자 추가/삭제
mysql> GRANT ALL PRIVILEGES ON dbname.* TO username@localhost IDENTIFIED BY 'password';

username 이라는 사용자를 password라는 비밀번호를 갖도록 하여 추가한다. username은 dbname이라는
데이타베이스에 대해 모든 권한을 가지고 있다.
username 사용자는 로칼 호스트에서만 접속할 수 있다. 다른 호스트에서 접속하려면
GRANT ALL PRIVILEGES ON dbname.* TO username@'%' IDENTIFIED BY 'password';

위를 또한 번 실행한다. '%'에서 홑따옴표를 주의한다.
추가 : '%'를 호스트네임으로 지정해도 모든 호스트에서 접속할 수 없었다. 각 호스트별로 다 지정해야 했다.
아래 댓글에서 rukikuki님이 알려주셨습니다.
GRANT ALL PRIVILEGES ON testdb.* TO 'username'@'%' IDENTIFIED BY 'password' ;
처럼 'username' 이런식으로 홑따옴표를 username 에도 붙여야 하더군요..


불필요한 사용자 삭제는
mysql> DLETE FROM user WHERE user='username';
mysql> FLUSH PRIVILEGES;


데이터베이스 생성/보기

  • 데이터베이스를 생성하고,
    mysql> CREATE DATABASE dbname;

  • 현재 존재하는 데이터베이스 목록을 보여준다.
    mysql> SHOW DATABASES;

  • 특정 데이타베이스를 사용하겠다고 선언한다.
    mysql> USE dbname;

  • 쓸모 없으면 과감히 삭제한다.
    mysql> DROP DATABASE [IF EXISTS] dbname;

    IF EXISTS 옵션은 비록 데이타베이스가 없더라도 오류를 발생시키지 말라는 의미이다.


테이블 생성/보기

  • 테이블을 생성하고,
    mysql> CREATE TABLE tablename (
    column_name1 INT,
    column_name2 VARCHAR(15),
    column_name3 INT );

  • 현재 데이타베이스의 테이블 목록을 보고
    mysql> SHOW TABLES;

  • 테이블 구조를 살펴본다.
    mysql> EXPLAIN tablesname;
    혹은
    mysql> DESCRIBE tablename;

  • 이름을 잘못 지정했으면 이름을 변경할 수도 있다.
    mysql> RENAME TABLE tablename1 TO tablename2[, tablename3 TO tablename4];

  • 필요 없으면 삭제한다.
    mysql> DROP TABLE [IF EXISTS] tablename;



현재 상태 보기

mysql> status

--------------
mysql Ver 11.18 Distrib 3.23.58, for pc-linux (i686)

Connection id: 26
Current database: study
Current user: study@localhost
Current pager: stdout
Using outfile: ''
Server version: 3.23.58
Protocol version: 10
Connection: Localhost via UNIX socket
Client characterset: latin1
Server characterset: euc_kr
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 2 hours 9 min 59 sec

Threads: 1 Questions: 160 Slow queries: 0 Opens: 28 Flush tables: 1
Open tables: 1 Queries per second avg: 0.021
--------------



INSERT
mysql> INSERT INTO tablename VALUES(값1, 값2, ...);

혹은

mysql> INSERT INTO tablename (col1, col2, ...) VALUES(값1, 값2, ...);


SELECT
mysql> SELECT col1, col2, ... FROM tablename;

컬럼명을 *로 하면 모든 컬럼 의미.

mysql> SELECT col1 AS '성명', col2 AS '국어점수' FROM grade;

컬럼의 이름을 바꿔서 출력.

mysql> SELECT * FROM tablename ORDER BY col1 DESC;
mysql> SELECT col1, korean + math english AS '총점' FROM tablename ORDER BY '총점' ASC;

DESC는 내림차순 ASC는 오름차순.

mysql> SELECT * FROM grade WHERE korean < 90;

조건줘서 SELECT.

mysql> SELECT * FROM grade LIMIT 10;

결과중 처음부터 10개만 가져오기

mysql> SELECT * FROM grade LIMIT 100, 10;

결과중 100번째부터 10개만 가져오기. 첫번째 레코드는 0번 부터 시작한다.

UPDATE
mysql> UPDATE tablename SET col1=새값 WEHER 조건


DELETE
mysql> DELETE FROM tablename WEHRE 조건


mysql에서 쿼리 결과 세로로 보기
-E 옵션을 줘서 실행한다.
$ mysql -E -u root -p mysql


mysql에서 발생한 오류나 경고 다시 보기
mysql> show errors;
mysql> show warnings;

'개발지식창고 > DataBase' 카테고리의 다른 글

MySQL : Data Type (1 of 2)  (0) 2010.08.31
MFC MYSQL 연동  (0) 2010.08.31
[MySQL] 기본명령어  (0) 2010.08.31
[MySQL] 데이타베이스명령어  (0) 2010.08.31
[MySQL]MySQL 테이블수정  (0) 2010.08.31
Posted by 모과이IT
,




마이크로 소프트사 행사때마다 나누어 준다던 포스터 (비주얼스튜디오 2008 단축키)
Posted by 모과이IT
,
명령이름 바로가기 키 설명
디버그.코드변경내용 적용 Alt + F10 편집하며 계속하기를 시작하여 디버그 중인 코드에 변경 내용을 적용합니다.
디버그.자동 Ctrl + Alt + V, A 현재 프로시저에서 현재 실행되는 줄의 범위에 현재 포함된 변수의 값을 볼 수 있는 자동 창을 표시합니다.
디버그.모두 중단 Ctrl + Alt + Break 디버깅 세션의 모든 프로세스 실행을 일시 중지 합니다. 실행 모드에서만 사용할 수 있습니다.
디버그.함수에서 중단 Ctrl + B 새 중단점 대화상자가 표시됩니다.
디버그.중단점 Ctrl + Alt + B 중단점을 추가하고 수정할 수 있는 중단점 대화상자를 표시합니다.
디버그.호출 스택 Ctrl + Alt + C 활성화된 모든 프로시저 목록이나 현재 실행 쓰레드에 대한 스택 프레임을 표시하는 호출 스택 창을 표시합니다. 실행 모드에서만 사용 할 수 있습니다.
디버그.모든 중단점 삭제 Ctrl + Shift + F9 프로젝트의 모든 중단점을 지웁니다.
디버그.디스어셈블리 Ctrl + Alt + D 디스어셈블리 창을 표시합니다.
디버그.중단점 설정 Ctrl + F9 중단점을 비활성 상태에서 활성 상태로 전환 합니다.
디버그.예외 Ctrl + Alt + E 예외 대화상자를 표시합니다.
디버그.직접실행 Ctrl + Alt + I 식을 계산하고 개별 명령을 실행할 수 있는 직접 실행 창을 표시합니다.
디버그.지역 Ctrl + Alt + V, L 현재 스택 프레임의 각 프로시저에 대한 변수 및 각 변수의 값을 볼 수 잇는 지역 창을 표시합니다.
디버그.메모리1 Ctrl + Alt + M, 1 조사식 또는 변수 창에서는 잘 표시되지 않는 큰 버퍼, 문자열 및 기타 데이터를 볼수 잇는 메모리 1 창을 표시합니다.
디버그.메모리2 Ctrl + Alt + M, 2 조사식 또는 변수 창에서는 잘 표시되지 않는 큰 버퍼, 문자열 및 기타 데이터를 볼수 잇는 메모리 2 창을 표시합니다.
디버그.메모리3 Ctrl + Alt + M, 3 조사식 또는 변수 창에서는 잘 표시되지 않는 큰 버퍼, 문자열 및 기타 데이터를 볼수 잇는 메모리 3 창을 표시합니다.
디버그.메모리4 Ctrl + Alt + M, 4 조사식 또는 변수 창에서는 잘 표시되지 않는 큰 버퍼, 문자열 및 기타 데이터를 볼수 잇는 메모리 4 창을 표시합니다.
디버그.모듈 Ctrl + Alt + U 프로그램에서 사용하는 .dll 또는 .exe 파일을 볼 수 있는 모듈 창을 표시합니다. 다중 프로세스 디버깅에서 마우스 오른쪽 단추로 클릭하여 모든 프로그램에 대해 모듈 표시를 선택할 수 있습니다.
디버그.프로세스 Ctrl + Alt + Z 프로세스 창을 표시합니다. 실행 모드에서 사용할 수 있습니다.
디버그.간략한 조사식 Ctrl + Alt + Q

또는

Shift + F9
선택한 식의 현재 값이 포함된 간략한 조사식 대화상자를 표시합니다. 중단 모드에서만 사용할 수 있습니다.
조사식을 아직 정의하지 않은 변수, 속성 또는 기타 식의 현재 값을 확인 하려면 이 명령을 사용 합니다.
디버그.다시 시작 Ctrl + Shift + F5 디버깅 세션을 종료하고 다시 빌드한 다음 처음부터 다시 응용 프로그램 실행을 시작합니다. 중단 및 실행 모드에서 사용할 수 있습니다.
디버그.커서까지 실행 Ctrl + F10 중단 모드에서는 현재 문부터 선택한 문까지 코드 실행을 다시 시작 합니다. 현재 실행 중인 줄의 여백 표시기가 여백 표시줄에 나타납니다. 디자인 모드에서는 디버거를 시작하고 커서 위치까지 코드를 실행 합니다.
디버그.스크립트 탐색기 Ctrl + Alt + N 현재 디버깅 프로세스에 있는 문서들을 표시하는 스크립트 탐색기 창을 표시합니다. 실행 모드에서 사용할 수 있습니다.
디버그.다음문 설정 Ctrl + Shift + F10 선택한 코드 줄을 실행 지점으로 설정합니다.
디버그.다음문 표시 Alt + Num 다음에 실행할 문을 강조 표시합니다.
디버그.시작 F5 자동으로 디버거에 연결하고 속성 대화상자에 지정된 시작 폼에서 응용 프로그램을 실행합니다. 중단 모드에서는 계속으로 바뀝니다.
디버그.디버깅하지 않고 시작 Shift + Alt + F5 디버거를 호출하지 않고 코드를 실행 합니다.
디버그.한단계씩 코드 실행 F11 한 번에 하나씩 코드를 실행한 다음 함수 호출을 실행합니다.
디버그.현재 프로세스
한단계씩 코드 실행
Ctrl + Alt + F11 프로세스 창에서 사용할 수 있습니다.
디버그.프로시저 나가기
디버그.현재 프로세스
Shift + F11 현재 실행 지점에서 함수의 나머지 줄을 실행 합니다.
프로시저 나가기 Ctrl + Shift + Alt + F11 프로세스 창에서 사용할 수 있습니다.
디버그.프로시저 단위 실행 F10 다음 코드 줄을 실행하지만 함수 호출을 통한 실행은 제외 됩니다.
디버그.현재 프로세스
프로시저 단위 실행
Ctrl + Alt + F10 프로세스 창에서 사용할 수 있습니다.
디버그.디버깅 중지 Shift + F5 프로그램에서 현재 응용 프로그램의 실행을 중단합니다. 중단 및 실행 모드에서 사용할 수 있습니다.
디버그.쓰레드 Ctrl + Alt + H 현재 프로세스의 모든 쓰레드와 해당 쓰레드에 대한 정보를 볼 수 있는 쓰레드 창을 표시합니다.
디버그.중단점 설정 해제 F9 현재 줄에 중단점을 설정하거나 제거합니다.
디버그.디스어셈블리 설정 해제 Ctrl + F11 현재 소스 파일에 대한 디스어셈블리 정보를 표시합니다.
중단 모드에서만 사용 할 수 있습니다.
디버그.조사식1 Ctrl + Alt + W, 1 선택한 변수 또는 조사식의 값을 볼 수 있는 조사식 1 창을 표시합니다.
디버그.조사식2 Ctrl + Alt + W, 2 선택한 변수 또는 조사식의 값을 볼 수 있는 조사식 2 창을 표시합니다.
디버그.조사식3 Ctrl + Alt + W, 3 선택한 변수 또는 조사식의 값을 볼 수 있는 조사식 3 창을 표시합니다.
디버그.조사식4 Ctrl + Alt + W, 4 선택한 변수 또는 조사식의 값을 볼 수 있는 조사식 4 창을 표시합니다.
디버거 상황에 맞는 메뉴.
중단점창.삭제
Alt + F9, D 선택한 중단점을 제거합니다.
중단점 창 내에서만 사용할 수 있습니다.
디버거 상황에 맞는 메뉴.
중단점창.디스어셈블리로 이동
Alt + F9, A 디스어셈블리창을 표시합니다.
중단점 창 내에서만 사용할 수 있습니다.
디버거 상황에 맞는 메뉴.
중단점창.소스코드로 이동
Alt + F9, S 코드 파일에서 선택한 중단점 위치로 이동합니다.
중단점 창 내에서만 사용할 수 있습니다.
도구.프로세스에 연결 Ctrl + Alt + P 한 솔루션에서 여러 프로그램을 동시에 디버깅 할 수 있는 프로세스에 연결 대화살자를 표시합니다.


Posted by 모과이IT
,

Part 1 / 3. 공유폴더 지정하기

1.1. VMware 내 자신이 만든 가상 OS (Windows XP) 탭에서 마우스 오른쪽 클릭을 합니다.

1.2. Settings... 를 클릭합니다.

1.3. Virtual Machine Settings 창이 뜨면 Options 탭을 클릭합니다.

1.4. Shared Folders 를 크릭합니다. (처음에는 Disabled 라고 되어있습니다.)

1.5. Folder Sharing 을 'Always enabled' 로 설정해줍니다.

1.6. Folders 에서 공유할 폴더를 지정하기 위하여 'Add' 버튼을 클릭합니다.

1.7. Add Shared Folder Wizard 창이 뜨면 'Next' 버튼을 클릭합니다.

1.8. Host path 를 입력하라는 곳에서 'Browse' 버튼을 클릭합니다.

1.9. Host path 라는 말에서 아시다시피, 가상 OS 가 아닌 컴퓨터 본체 OS 내의 경로입니다.

1.10. Windows7 내에서 공유할 폴더를 생성하고 선택한 후 '확인' 버튼을 클릭합니다.

1.11. 폴더를 선택한 후 폴더의 닉네임을 지어주고 'Next' 버튼을 클릭합니다.

1.12. Additional attributes 에 'Enable this share' 에 체크합니다.

1.13. 'Finish' 버튼을 누르면 일.단. 공유할 폴더를 지정하는것 까지는 끝납니다. -_-;;

1.14. 공유 폴더가 지정된 모습


Part 2 / 3. (option) 네트워크 프로토콜 추가하기 
                         ( IPX/SPX/NetBIOS )
- 파일 공유에 필요한 네트워크 프로토콜이 추가되어있지 않으면 공유 폴더를 지정해도 공유가 안됩니다.

2.1. VMware 가상 OS (Windows XP) 내에서 '내 네트워크 환경'에서 마우스 오른쪽 클릭으로 메뉴를 call 하고 '속성'을 클릭합니다.

2.2. 인터넷이 연결된 '로컬 영역 연결'의 '속성'을 클릭합니다.

2.3. 네트워크 항목에 'NWLink~' 관련 항목이 있는지 확인합니다.
- 항목이 있다면 Part 3. 으로 바로 넘어가시고 없다면 2.4 로 진행하시면 됩니다.

2.4. 'NWLink~' 관련 항목이 없다면 '설치' 버튼을 클릭합니다.

2.5. '네트워크 구성 요소 선택' 에서 '프로토콜'을 선택하고 '추가' 버튼을 클릭합니다.

2.6. '네트워크 프로토콜 선택' 에서 'NWLink IPX~' 를 선택하고 '확인' 버튼을 클릭합니다.


2.7. 네트워크 항목에 'NWLink~' 가 추가가 된 것을 확인할 수 있습니다.


Part 3 / 3. 네트워크 공유 드라이브 걸어주기

3.1. VMware 의 가상 OS (Windows XP) 에서 네트워크 환경의 메뉴 중 '네트워크 드라이브 연결'을 클릭합니다.

3.2. '네트워크 드라이브' 창에서 드라이브 명을 지정하고 '찾아보기' 버튼을 클릭합니다.

3.3. VMware Shared Folders 를 클릭하면 초.큼. 시간이 지난 다음 공유 폴더로 지정한 폴더가 보일겁니다.

3.4. 공유 폴더를 네트워크 드라이브로 선택하고 '마침' 버튼을 눌러줍니다.

3.5. '내 컴퓨터'를 열어보면 '네트워크 드라이브'에 공유 폴더가 뜬 것을 확인할 수 있습니다.

이제부터는 Window7 과 VMware 의 가상 OS (Windows XP) 와 공유 폴더로 서로 파일을 주고받을 수 있습니다.
Posted by 모과이IT
,
// VMWare Ver : Workstation ACE Edition 6.0.2
// VMWare OS : Fedora Linux 6.0
// real OS : Windows XP



일단 VMWare를 통해 설치한 가상PC의 기능을 보강하기 위해, VMWare Tools를 깔자.

1. 우선, VMWare 리눅스가 설치되어 있다는 것을 전제로 하며, root로 로그인 한다.
2. 리눅스에 마운트 되어 있는 CD드라이브의 이미지파일 혹은 CD-ROM을 제거한다.
3. 설치한 VMWare을 볼 수 있는 Sidebar에서,
   공유폴더를 생성할 OS를 우클릭하여 팝업을 띄운다.
4. Install VMWare Tools... 를 실행시킨다.
5. CD드라이브에 VMWare Tools가 로딩된 것을 확인.
6. VMWareTools-6.0.2-59824.tar.gz 파일을 적당한 곳에 복사한다. (/tmp 라거나, 등등)
7. 터미널을 실행시키고, 해당 폴더로 이동하여 압축을 푼다.
   (tar zxvf VMWareTools-6.0.2-59824.tar.gz)
8. ls 로 vmware-tools-distrib 폴더가 생성되었는지 확인.
9. cd vmware-tools-distrib -> ./vmware-install.pl
10. 완료메시지를 확인하자. 만약 슈퍼 유저 뭐라면서 에러뜨면 root로 로그인 하지 않은것.

다음은 이제 공유폴더 마운트. 썩 간단하다.

11. 설치한 VMWare을 볼 수 있는 Sidebar에서,
     공유폴더를 생성할 OS를 우클릭하여 팝업을 띄운다.
12. Settings... 클릭.
13. Virtual Machine Settings 창이 열리게 되고... 그 두번째 탭인 Options로 넘어간다.
14. Shared Folders 가 Disabled로 되어있는것이 보인다.
     클릭하고 우측에서 Always enabled로 전환.
15. Add... 버튼을 눌러 윈도우측에서 공유할 폴더를 선택해준다.
16. OK 누르고 리눅스로 가보면, /mnt/hgfs 폴더 안에 공유폴더의 이름이 보인다.
17. 연결 끝, 그러나 주의사항.
     X-Windows상에서는 공유폴더 내의 파일에 간섭할 수 없는듯 하다.
     터미널을 띄워 명령어로 파일을 옮겨쓰자.

Posted by 모과이IT
,

ActiveX 자동 업데이트 하는 방법

1. 프로젝트 리소스의 VERSIONINFO 리소스의 버전 정보를 수정한다.
 
  이때 FILEVERSION 과 PRODUCTVERSION 은 일치하는 것이 좋으며 버전정보는 , 로 구분되는 숫자 4개로 이루어져야함.
  예). 1,2,3,4
 
2. CAB 파일을 만들기 위한 INF를 작성한다.
 
  이때도 INF 에 버전정보를 적는데 VERSIONINFO 에 적은 버전정보와 같은 형식으로 , 로 구분하여 적는다.

  예).
 
  [TEST.ocx]
  file-win32-x86=thiscab
  ; *** add your controls CLSID here ***
  clsid={4132944C-862D-463F-BB47-ABF99043AB1C}
  ; Add your ocx's file version here.
  FileVersion=1,0,1,3
  RegisterServer=yes
 
3. CAB 파일을 생성 후 서버에 업로드 후 ActiveX 를 참조 하는 OBJECT 태그의 버전정보를 수정한다.

  이때 역시 버전정보는 , 로 구분되는 숫자 4개여야 함.

  예)
  <OBJECT id=Service classid="CLSID:3201944C-862D-463F-BB47-ABF99043AB1C" codebase="/Include/AutoUPOCX.CAB#version=1,0,1,3" width="0" height="0" type="application/x-oleobject">
  </OBJECT>
 
  따라서, 편한 버전 업데이트를 위해서는 ActiveX 를 참조하는 OBJECT 태그를 별도의 스크립트 파일로 분리하여 Include 하는 것이 관리하는데 도움을 줄 수 있음
 
 
4. IE는 서버에 새번이 있더라도 페이지에서 구버전을 요청하면 업데이트를 시행하지 않으므로 OBJECT 태그의 버전정보를 반드시 새버전으로 변경해야한다.

  또한, 구버전이 이미 로딩된 상태로 다음 페이지에서 새버전을 요구하면 업데이트 할 때 재부팅을 요구할 수 있으므로 반드시 ActiveX 가 처음 사용되는 페이지의 버전정보를 변경한다.

Posted by 모과이IT
,
CString STR_COMMA(long  i)
{
    BOOL bMinus = FALSE;
    if (i < 0)
    {
        i = i * (-1);
        bMinus = TRUE;
    }
    
    CString str;
    str.Format(_T("%d"),i);

    int nLength=str.GetLength();
    int j=0,k=0;
    for(j=nLength;j>3;j-=3)
        str.Insert(j-3,_T(","));

    if(bMinus)
        str.Insert(0,_T("-"));
    
    return str;
}
Posted by 모과이IT
,