반응형
UPDATE TAB1 SET 
EMPLOYEES = '20090801'
FROM TAB1 A
LEFT JOIN (
SELECT 
     TASK_MAIN_CODE
   , REG_DATE
   , TASK_SUB_CODE 
FROM TAB2
WHERE TASK_MAIN_CODE = '조건1' 
AND REG_DATE = '조건2'
AND ISNULL(DELETE_FLAG,'0') = '0'
GROUP BY TASK_MAIN_CODE, REG_DATE, TASK_SUB_CODE

) B
ON A.CODE = B.TASK_MAIN_CODE
AND A.REG_DATE = B.REG_DATE
AND A.SUB_CODE = B.TASK_SUB_CODE
 
WHERE A.CODE = '조건1'
AND A.REG_DATE = '조건2'
AND ISNULL(A.DELETE_FLAG,'0') = '0'
AND  ISNULL(B.TASK_MAIN_CODE,'-1') = -1

tab2가 tba1을 외부참조한상태에서  tab1은 tab2에 연결(외부참조한) 데이터가 없는 값만 update하려는 쿼리이다.
tab1와 tab2가 1:n의 관계이기 때문에 서브쿼리로 group by한상태에서 left join하였고 tab2의 TASK_MAIN_CODE 값이 없는
(isnull로 -1처리된) 결과값들만 update하도록 작성된 쿼리이다.
반응형
보통 자바스크립트를 통해서 팝업창을 띄울때 이렇게 작성한다.
window.open(_link, _name, _style);
단점이 하나있는데 팝업을 띄운후 창을 닫지 않은 상태에서 동일한 창을 다시 팝업으로 띄울경우
활성화가 되지 않는다는 것 이다.
이를 해결하기 위해서  다음과 같이 처리해주면 된다.

var obj = window.open(_link, _name, _style);
obj.focus();


반응형
1. http://www.uploadify.com/ 에서 jQuery플러그인을 받는다.(asp.net)

 [Uploadify.htm]


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title>파일업로드 : jQuery + Uploadify + ASP.NET</title>

    <link href="uploadify.css" rel="stylesheet" type="text/css" />

    <script src="../../js/jquery-1.3.2-vsdoc2.js" type="text/javascript"></script>

    <script src="jquery.uploadify.v2.1.0.js" type="text/javascript"></script>

    <script src="swfobject.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(document).ready(function () {

        // Uploadify 파일 업로드 컨트롤 : Flash가 설치가 되어있어야 함

            $('#fileInput').uploadify({

                'uploader' : 'uploadify.swf'// Uploadify 컨트롤 지정

                'script' : 'Uploadify.ashx'// 서버측 스크립트, ASP.NET, ASP, PHP, JSP

                'cancelImg''cancel.png'// 취소 이미지

                'auto' : false// true면 파일선택시 바로 자동으로 업로드됨

                'folder''/Uploads'// 업로드할 폴더 : 가상디렉터리 + 업로드폴더

                // 업로드 완료시 처리 :

                //      주요 속성은 http://www.uploadify.com/documentation/ 참고

                'onComplete'function (event, queueID, fileObj, response, data) {

                    $('#lblFile').append('<a href=/WebJQuery' + fileObj.filePath + '>'

                    + fileObj.name + '</a><br>');

                }

            });

            // 버튼 클릭시 업로드

            $('#btn').click(function () { $('#fileInput').uploadifyUpload(); });

        });

    </script>

</head>

<body>

    <input id="fileInput" name="fileInput" type="file" />

    <input type="button" id="btn" value="업로드" />

    <div id="lblFile"></div>

</body>

</html>

 




-------------------------------------------------------------------------------------


 

[Uploadify.ashx]


<%@ WebHandler Language="C#" Class="Uploadify" %>

 

using System;

using System.Web;

 

public class Uploadify : IHttpHandler {

   

    public void ProcessRequest (HttpContext context) {

        // Filedata로 넘겨온 파일 값 받기

        HttpPostedFile file = context.Request.Files["Filedata"];

        // 저장할 폴더

        string targetDirectory = System.IO.Path.Combine(

        context.Request.PhysicalApplicationPath,

        context.Request["folder"].Replace("/"""));

        // 저장할 폴더 + 파일명

        string targetFilePath = System.IO.Path.Combine(

            targetDirectory, file.FileName);

        // 파일 저장(업로드)

        file.SaveAs(targetFilePath);

 

        context.Response.Write("RedPlus");

    }

 

    public bool IsReusable {

        get {

            return false;

        }

    }

 

}
[출처] : http://holland14.tistory.com/538
 

2. 파일을 업로드할경우 변수를 넘겨야하는 경우가 있다.
1)의 소스대로 하면 변수는 $(document).ready()상에 지정해야하는데 데이터를 미리 받아오기전에는
변수를 넘기기 힘들다. 
그래서 

            // 버튼 클릭시 업로드

            $('#btn').click(function () { $('#fileInput').uploadifyUpload(); });



이부분에 변수를 넘길 수 있는 처리를 추가해야한다.
var _obj = $('#fileInput');

_obj.uploadifySettings('scriptData', { 'code1': 'data01', 'code2': 'data02' });

_obj.uploadifyUpload();

이부분을 처리해주면 업로드 할때 변수(code1,code2)의 값을 전달할 수 있다.

반응형
일전에 스팀에서 문명5를 싸게 팔길래 낼름질러서 잘하고있는편이다.
문명5만 하기 지루해서 뭐할만한게 없나 싶어 찾아봤더니
페이트3를 주말특가 12.99$에 팔더라.

그래서 질렀다.

그리고 초반 30분정도 진행해봤다.





후회했다. ㅠㅠ 

나름 게임인생 20여년이지만
난 아직도 3D게임엔 쥐약이다.
철권같은 게임류는 괜찮은 편인데 
유독 DOOM류의 1인칭게임들은 적응이 안된다.(멀미때문에)

페이트3는 1인칭은 아니지만 나에겐 페이트3정도만 되어도 무린가보다.
최하옵션으로 돌리긴했다만 30분하는 동안 멀미때문에 고생했다.ㅡ,.ㅡ;;;

아이거 괜히 질렀나봐... 무를수도 없고 ㅠㅠ 

그래서 내가 요즘 유행하는 3D TV도 좋아하지 않는달까.

(그런데 또 레이싱게임이나 1인칭 전투기 슈팅게임류들은 그럭저럭 할만하다. )
반응형
                WebClient request = new WebClient();
                request.Credentials = new NetworkCredential(ftp_uid, ftp_upw);
                byte[] newFileData = request.DownloadData(ftp_url  + "/" + filecode);

                Response.ClearHeaders();
                Response.AddHeader("Content-Type", "application/vnd.ms-excel");
                Response.AddHeader("Content-Disposition", string.Format("attachment; filename=\"{0}\"", filename));
                Response.ContentType = "multipart/form-data";
                Response.BinaryWrite(newFileData);
                Response.End();

 원격FTP에 있는 데이터를 byte[]로 읽어서 저장하는 방법이다.

+ Recent posts