2014년 2월 18일 화요일

asp에서 엑셀 데이터 뽑을때 한글이 짤릴경우

현상 : mysql에서 데이터를 불러와 엑셀로 뽑아오는데 한글이 2자에서 짤림

해결책 :

SELECT CAST(my_table.DataColumn AS CHAR(10)) as TextColumn FROM my_table

이런식으로 char의 크기를 늘려주면 제대로 나옴

2014년 2월 13일 목요일

javascript type체크 함수

자바스크립트에서  toString을 사용하면 객체타입까지 자세히 나옴

null 의 경우 typeof null 이면 object

function typeChk(v){
  return (function(v){
     return Object.prototype.toString.call(v);
  }(v)).replace(/\[|\]/g,"").split(" ")[1].toLowerCase();
}

alert(typeChk('1'));

2014년 2월 10일 월요일

mysql table int pk값 0들어가는 현상

mysql db 에서 int 형 primary key 가 0이 들어갈경우
일단
1.null 값이 허용되면 null일경우 0으로 갱신

mysql sql_mode 설정 값 변경

>> select @@global.sql_mode;
>> select @@session.sql_mode;

현재 sql_mode 값 확인

>> set sql_mode = 'NO_AUTO_VALUE_ON_ZERO';

으로 설정해줄수 잇음

오늘 현상은 그것은 아니었고

insert into table(intpk, val1) values('0','t');
auto increment 가  intpk에 걸려있으면 당연히 0을 넣어도 1 그리고 그 이후값이 들어가짐 


그런데 유니크인덱스 또는 프라이머리키  intpk, email 두개 걸려잇음

insert into table(intpk, val1, email) values('0','t','ss@ss.s.s') duplicate key update
intpk = '0',
email = 'ss@ss.s.s';

이러면 intpk가 0으로 업데이트가됨


=================================================================

unique 키가 두개 물려 잇음(a,b)가 물렷다 가정하자
insert into table(a,b,c) values('1',2,3);

duplicate key update c = 1

이것은 곧


insert into table(a,b,c) values('1',2,3);

update table set c= 1  where a= 1 or b= 2 limit 1

이거랑 같은말임


duplicate key update c = 1, a=LAST_INSERT_ID(a) 이런것도 한 방법이 될수 있음


http://dev.mysql.com/doc/refman/5.6/en/insert-on-duplicate.html

2014년 1월 21일 화요일

자바스크립트 인자값 전달

 <script> o = { "h" : 3 }; function obj(v){ v.h = 4; } obj(o); //4 alert(o.h); //객체를 전달하면 참조값을 전달함 o1 = "3"; function str(v){ v = 4; } alert(o1); //3 //원시데이터(number, string, undefined) 등을 전달하면 원본을 복사함 </script>

2014년 1월 20일 월요일

국민, 롯데, 농협카드 개인정보 유출

국민, 롯데, 농협카드 개인정보 유출

이미 이전부터 유출 사실확인하고 수사 착수 후 검거까지 완료
 2013년 6월 경에 카드부정사용방지시스템 고도화 과정에서 코리아크레딧뷰 개발담당자가 유출함.

원본파일 압수조치
 비밀번호, CVC는 노출되지 않음

보이스피싱이나 스미싱, 불법문자에 활용될 소지가 높음

금번의 문제는 인적보안의 문제가 큼

2014년 1월 19일 일요일

parseInt와 Number의 차이

parseInt 는 기본적으로 ECMA 3에서 8진수로 표현 꼭 parseInt("09",10)으로 십진수 표현을 해야됨
ex> parseInt("09") //값없음
ex> parseInt("09",10) //9

Number은 그냥 해도 됨
ex> Number("09") // 9

Number이 더 빠름, parseInt는 말 그대로 파싱을 함 더 느릴수 밖에 없음.
하지만 parseInt는
parseInt("09 hi",10) //9
이렇게 문자열이 있어도 숫자를 얻을수 있다.
** 이 함수가 그리 뛰어난건 아니다. hi 09하면 NaN이 된다.

배열, for , while


//    유사배열
    var a = {
        "0" : "00",
        "1" : "11",
        "length" : 2
    };

alert(b = Array.prototype.join.call(a));


// 정순 루프가 아니면 --를 해서 0으로 끝내는게 비교해서 값을 빠져나가는것보다 성능상 이득이 있음
var arr = [1,2,3,4], b =0 ,a = arr.length;   

    for(a; a--;){
        b += arr[a];
    }

    alert(b);

    a = arr.length;   

    while(a--){
        b += arr[a];
    }
alert(b);