본문 바로가기

분류 전체보기605

방법: Windows Forms DataGridView 컨트롤에서 선택한 셀, 행 및 열 가져오기 출처 - http://msdn.microsoft.com/ko-kr/library/x8x9zk5a(v=vs.110).aspx 방법: Windows Forms DataGridView 컨트롤에서 선택한 셀, 행 및 열 가져오기 .NET Framework 4.5 다른 버전 Visual Studio 2010 .NET Framework 3.0 .NET Framework 3.5 .NET Framework 2.0 이 항목은 아직 평가되지 않았습니다.- 이 항목 평가 SelectedCells , SelectedRows 및 SelectedColumns 중 해당하는 속성을 사용하여 DataGridView 컨트롤에서 선택한 셀, 행 또는 열을 가져올 수 있습니다. 다음 절차에서는 선택한 셀을 가져온 다음 이 셀의 행 및 열 .. 2014. 8. 22.
MSSQL 에서 CREATE OR UPDATE 프로시저 하는법 출처 - http://www.sqlservercentral.com/blogs/martin_catherall/2011/05/04/how-do-you-create-or-update-stored-procedures_2E00_/ 1.----------------------------------------------------------------------------------------------------- IF EXISTS ( SELECT * FROM sys.procedures AS P INNER JOIN sys.schemas AS S ON P.[schema_id] = S.[schema_id] WHERE P.[type] = 'P' AND P.[name] = '프로시저명' AND S.[name] = '데이터.. 2014. 8. 8.
[MSSQL] WITH (NOLOCK) 출처 - http://roadrunner.tistory.com/238 MSSQL에서 SELECT 시에 WITH (NOLOCK) 을 주면 공유잠금을 걸지 않고 바로 조회를 한다. MSSQL은 기본적으로 SELECT 시에 공유잠금이 걸린다. 즉, SELECT 문이 수행되는 테이블에 대해서 INSERT, UPDATE, DELETE 문이 수행되고 있다면 SELECT문은 선행 작업이 모두 끝날때까지 LOCK이 걸린다. 이때 SELECT 문에 WITH (NOLOCK)을 추가하면 선행작업의 결과와 관계없이 바로 SELECT문이 수행되어서 결과를 반환하게 된다. SELECT * FROM TABLE1 WITH (NOLOCK) SELECT 문장에서 여러 테이블을 조인해서 가져오는 경우 WITH (NOLOCK)을 사용하기 .. 2014. 8. 6.
c++ DLL을 C#에서 사용해보자 ( 클래스 마샬링 ) http://blog.danggun.net/799 클래스 마샬링을 할일이 없엇 신경을 안쓰다가 요번에 스카이프 api나 제가 직접 마샬링 해볼까 해서 클래스 마샬링을 정리해 보았습니다. 근데 왜이렇게 자료가 없지? 겨우 찾은것이 비주얼C++ 팀블로그인데....네...영어입니다 ㅡ.-; (참고 : Visual C++ Team Blog - Inheriting From a Native C++ Class in C#) 일단 변환방법이 마음에 들지가 않아서 위글에 있는 내용을 그대로 사용하여 만들고 자료를 더 찾는다면 파트2로 돌아오 겠습니다 ㅎㅎㅎㅎ 그전에 이 글은 크게 2부분으로 나누어 설명할 예정입니다. 어찌됬건 프로그래머라면 일단 샘플부터 만들고 생각해야 하지 않겠습니까? 1. C++ DLL 만들기C#에서 .. 2014. 7. 28.
[C#] c++ DLL을 C#에서 사용해보자 ( 함수 마샬링 ) http://blog.danggun.net/16 머......피치못할 사정으로 c++로 작성된 dll을 써야된다면.....명복을 크크크크크크크 하지만 어차피 c++ dll은 여러모로 쓸모가 많다보니 재판매(어이)를 어느정도 고려 할겸, 역어셈에도 닷넷보다는 안전해 보여서 dll은 c++로 만들어 씁니다. 근데 이렇게 딴 언어에서 만든 dll을 쓰기위해서 마샬링이 필요합니다. ㅡ,.ㅡ;;; 일종의 컨버전이라고 생각하면 됩니다. (쉽게 생각하라고 컨버전이라고 한거지 전혀 다른넘 입니다. ㅡ.-; 컨버전은 프로그램자체를 다른 언어에 맞게 변경시키는것을 의미하고. 마샬링은 다른언어에서도 읽을수 있게 해주는 작업입니다. dll자체는 변하지 않는다!) 마샬링하는 방법은 여러가지가 있고 dll불럳다 쓰는 방식도 여러.. 2014. 7. 28.
환경 변수 설정하기 출처 - http://snoopybox.co.kr/1299 방명록에 질문주신 분이 계셔서 관련 글 올려봅니다. 환경 변수라는 말 한번 쯤은 들어보셨을 텐데요, DOS 세대라면 SET PATH= 이 명령어 기억나실 것입니다. AUTOEXEC.BAT 파일에 MDIR 경로를 적어주곤 했죠. 그럼 어떤 위치에서든 MDIR을 실행시킬 수 있었으니까요. 추억의 MDIR 3.10 윈도우에서도 기본적으로 사용되는 시스템 변수가 있습니다. 이 값은 레지스트리 상에 저장되어 있는데 일반 유저들은 사용할 일이 잘 없겠지만 개발자 분들이나 CMD 창 자주 쓰는 분들께는 유용할 수 있습니다. 저도 배치파일 작성할 때 자주 사용하는 편입니다. 아래는 제가 현재 사용중인 윈도우 7 기준인데 몇가지 자주 쓰이는 예를 들어보겠습니다... 2014. 7. 28.
테이블에 걸려있는 트리거 확인 SELECT 'sp_helptext ' + T.name FROM sys.sysobjects AS T INNER JOIN sys.sysobjects AS O ON T.parent_obj = O.id WHERE T.xtype ='TR' AND O.name like '테이블명' 2014. 7. 23.
주식 재무재표 : 영업이익/당기순이익 차이 출처 - http://usefulinfo1000.tistory.com/175 > 매출액 = 기업이 일정기간 판매한 총 금액 매출총이익 = 매출액 - 매출원가 영업이익 = 매출총이익 - 판매관리비 경상이익 = 영업이익 + ( 영업외수익 - 영업외비용 ) 당기순이익 = 경상이익 + ( 특별이익 - 특별손실 ) - 법인세 > 동네짜장면집에서 이번달 매출 총액은 300만원이었습니다. 그중 요리를 하기위한 각종야채,밀가루등의 재료비가 100만원 이었습니다. 매출액 : 300만원 매출원가 : 100만원 매출총이익 : 300만원 - 100만원 = 200만원 그런데 매달 월세,아르바이트비,전기세등으로 100만원을 지불합니다. 영업이익 : 200만원 - 100만원 = 100만원 그리고 옆집 치킨집에 1000만원을 빌려주.. 2014. 7. 9.
Android , asp.net, mssql 연동 [2] 출처 - http://ondestroy.tistory.com/entry/Android-aspnet-mssql-연동-2 asp.net 과 안드로이드 앱 연동을 포스팅 해보려고 합니다.. (xml, soap통신 이용) 1. asp.net 웹사이트에 웹서비스 -> 웹메소드 구현 2. android에서 Soap통신 클래스 작성 3. searchData 결과값 xml 파싱 ---------------------------------------------------------------------------------------------------- 1. soap 통신 클래스 1) 입력 edittext , 버튼 ,출력 textview 를 레이아웃에 추가해줍니다.. 2) ksoap2-android-assembly-.. 2014. 6. 19.
Android , asp.net, mssql 연동 [1] 출처 - http://ondestroy.tistory.com/entry/Android-aspnet-mssql-%EC%97%B0%EB%8F%99 asp.net 과 안드로이드 앱 연동을 포스팅 해보려고 합니다.. (xml, soap통신 이용) 1. asp.net 웹사이트에 웹서비스 -> 웹메소드 구현 2. android에서 Soap통신 클래스 작성 3. searchData 결과값 xml 파싱 ----------------------------------------------------------------------------------------------------- 1. 웹서비스 구축 : 1) 비쥬얼 스튜디오를 사용하였습니다 2) 웹사이트와 db는 구축되어 있고 테이블이름은 Table_Name 칼럼은 .. 2014. 6. 19.
CString 의 구조 궁금해서 찾아보니 이런 문서가 있군요 2014. 6. 11.
c언어 콘솔프로그램 종료대기시키기 콘솔로 연습하다가 실행파일로 결과를 확인하려고 하니 마구닫혀버린다. 그래서 찾은게 아래 #include 추가후 메인함수가장 마지막줄에 아래 둘중아무거나 하나를 넣어주면 키를 누르면 종료되게 된다. system("pause"); //system("pause > nul"); 2014. 6. 4.
mssql 에서 char http://msdn.microsoft.com/ko-kr/library/ms187323(v=sql.100).aspx 2014. 5. 26.
임대와 임차 요즘 이것저것 공부중인데 오늘도 깜짝놀랄것을 하나 배웠다.. 이때까지 임대가 당연히 물건을 빌리는거인줄 알고 국어사전한번 찾아본적 없었다. 그런데 공부하다가 문득궁금해서 찾아보니 완전 잘못알고 있었다는걸 알았다. 이나이되서 저걸 처음으로 똑바로 알다니.. 왠지 엄청나게 충격이었다.. 2014. 5. 16.
vs(비주얼스튜디오) 에서 콘솔프로그램 실행시 창떠있게하기 일반 F5 를 누르면 실행이 종료되면 콘솔창이 닫힌다. ctrl + F5 를 누르면 실행이 완료 되도 결과값을 볼때까지 콘솔창을 띄워 놓을수 있다. 2014. 5. 12.
MSSQL 프로시저내의 동적쿼리 및 개행문자(줄바꿈) 출처 - http://moyaria.tistory.com/entry/MSSQL-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80%EB%82%B4%EC%9D%98-%EB%8F%99%EC%A0%81%EC%BF%BC%EB%A6%AC-%EB%B0%8F-%EA%B0%9C%ED%96%89%EB%AC%B8%EC%9E%90 MSSQL 의 프로시저 내에서 동적쿼리를 생성해서 실행시키는 구문이다. 참고로 print 시에 개행문자 char(13) 를 붙여 주면 줄바꿈이 된다. SET @SQL = '' SET @SQL = @SQL + ' SELECT * ' + char(13) SET @SQL = @SQL + ' FROM TABLENAME ' + char(13) SET @SQL = @SQL + ' WHERE f.. 2014. 4. 30.
MSSQL 0 붙이기 3자리수로 할경우 SELECT RIGHT('00000000'+ @P_VALUE,3) 6자리수로 할경우 SELECT RIGHT('00000000'+ @P_VALUE,6) 가만히 생각해보니 엄청나게 간단하면서 빠르게 처리가 가능한 방법이다. 앞에 0000 문자는 최소한 원하는 자리수 이상이어야 한다. 왜냐하면 문자가 1 인데 3자리로 하고 싶으면 001 은되야 RIGHT 로 오른쪽 부터 3자리로 자를수있다. 2014. 3. 14.
[MSSQL] 소수점 반올림, 버림 출처 - http://blog.naver.com/PostView.nhn?blogId=darksun71&logNo=130143935434 1. 반올림 SELECT ROUND(1.23523, 2) 결과 : 1.24000 1-1. 반올림 SELECT ROUND(1.23523, 2, 0) 결과 : 1.24000 2. 버림 SELECT ROUND(1.23523, 2, 1) 결과 : 1.23000 ---------------------------------------------- 세번째 Parameter의 비밀. FALSE면 반올림, TRUE면 버림 2014. 3. 10.
비주얼스튜디오(vs) 에서 c 프로젝트 만드는법 파일 > 새로만들기 > 프로젝트 c++ 안에있는 win32 에서 콘솔 응용프로그램을 선택해줍니다. 그럼 요런설정하는 창이뜹니다. 여기서 콘솔 응용프로그램에 빈프로젝트 선택하고 마침을 눌러줍니다. 그러면 이렇게 프로젝트가 딱! 생깁니다. 이제 소스파일에서 오른쪽 눌러 추가 새항목을 눌러주면 요런창이 뜨는데 여기서 c++ 파일 선택하고 중요한게 이름 정해줄때 .c 를 붙여야 합니다. 안붙이면 기본 cpp 파일로 생성 됩니다. 이렇게 해서 파일 만들어지면 void main() { } 을 적어주고 디버깅해보시면 됩니다. vs 버전과 환경에 따라 빌드가 안되는 경우도 있는데 메니페스트 바꿔주고 그런걸로 해결이 가능합니다. 에러상태를 그대로 복사해서 네이버에 붙여넣으면 답들이 나옵니다! 2014. 2. 28.
nvarchar(max) 출처 - http://blog.naver.com/gun0626?Redirect=Log&logNo=40026063891 출처 - http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10205&docId=131142270&qb=bnZhcmNoYXIobWF4&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=RYfb1spySEKssZ/zNQ0ssssssts-166879&sid=UvSG1ApyVmMAAE-zZXk sql server 2000에서 sp_executesql 을 사용할 때 제약조건이 있었는데, sql 문을 4000자 이상 처리할 수 없다는 것입니다. sql 문은 유니코드 문자열(nvarchar 나 nchar)이어야 하기 때.. 2014. 2. 7.
[MSSQL]OBJECT_ID 함수를 이용한 개체 존재 여부 확인 출처 - http://lovedb.tistory.com/58 출처 - http://kmj1107.tistory.com/136 OBJECT_ID 함수를 이용해서 개체의 존재 여부를 확인 후 개체를 삭제해 보자. 오라클의 경우 CREATE OR REPLACE 를 사용하면 CREATE 할 때 기존에 같은 이름의 개체가 있으면 REPLACE 하고 개체가 없으면 CREATE 하는 기능이 있지만 MS SQL Server 에는 없다. 테이블에 개체 ID가 있는지 확인해서 지정한 테이블이 있는지 확인한다. 테이블이 있는 경우 삭제되고, 테이블이 없는 경우 DROP TABLE 문이 실행되지 않는다. USE AdventureWorks2008R2; GO IF OBJECT_ID (N'dbo.AWBuildVersion', N'.. 2014. 1. 22.
RAISERROR 예제 및 .NET에서 사용하기 출처 - http://windtrap.tistory.com/42 출처 - http://hsouhy.egloos.com/viewer/403819 안녕하세요? [쓸만한게없네] 윤선식입니다. 간만에 글을 올리네요. RAISERROR 관련된 글은 여기저기 있지만 심플하게 되어 있는 샘플이 없는 것 같아서 하나 올립니다. 예제는 A값과 B값을 입력받아서 A / B를 한 결과를 돌려주는 것입니다. Procedure는 다음과 같이 구성합니다. CREATE PROC [dbo].UP_RaiseTest @VAL1 INT, @VAL2 INT, @VAL3 INT OUTPUT AS BEGIN DECLARE @ErrorNumber INT; DECLARE @ErrorSeverity INT; DECLARE @ErrorState IN.. 2014. 1. 21.
usb 2.0 / usb 3.0 나는 프로그래머인데.. 컴퓨터는 잘모르는거같다. 오늘 이것저것 검색하다가 우연히 usb2.0/3.0 차이점 머이런걸 봤는데 순간 내노트북도 궁금해졌다. 파란색usb 슬롯이 3.0 검은색은 2.0 이내용도 예전에 분명히 어디선가 봤던 기억이 있는데.. 노트북을 보다가 갑자기 왠지 부끄러워졌다. 나는 파란 usb 슬롯에 핸드폰 충전기를 꽂고 까만 usb 슬롯에 외장하드를 꽂아 사용하고있었다 -_-;; 바보인가................................ 그래서 외장하드를 2.0과 3.0 두군데 꽂아서 복사속도를 체크해보니........ 엄청난차이가................. 결론은 파란색 usb 슬롯이 3.0 이고 속도가 엄청빠르다는거다.. 그리고 덤으로 이런내용도 찾았다. http://bl.. 2014. 1. 14.
1-6. 나에게 윈도우메세지전송2 (문자열) 저번에 간단한 값을 윈도우 메세지 전송을 해봤으니 이번에는 나에게 문자열을 보내 봅시다! 프로그램간 데이터 전송할려다가 삼천포로 계속 빠지고 있지만 이렇게 해야됩니다! 공부하는거니깐요~ 일단 저번에 만들어 놨던 걸 열어 봅시다. 요렇게 기존에는 간단한 숫자만 전송 했습니다. 문자열을 전송해봅시다! 두둥! //SendMessage(WM_TEST_MESSAGE, 100, 200); CEdit *editbox =(CEdit *)GetDlgItem(IDC_EDIT1); CString str; editbox ->GetWindowText(str); char tempar[1024] = {0,}; strcpy_s(tempar,str); HWND hWnd = ::FindWindow(NULL, CString("TestTr.. 2013. 12. 18.
[감성사진] 학교에 처음 눈왔을때 검색해보시면 재밌는게 많이 나옵니다. 한국이랑 다르네요 ㅋ http://photo.naver.com/view/2013120723530944835?page=30&view=theme&sort=recent&param=travel&postType=photo 왠지 짠~ 하네요 2013. 12. 11.
1-5.쌩뚱맞게 프로그래머 계산기 사용법 이전포스팅에서 나온 WM_USER = 0x0400 ! 요고 일일이 계산하려면 귀찮아서 그냥 윈도우 계산기로 계산하는법을 올리겠습니다. 윈도우 기본 계산기입니다. 어디있는지는 아시죠? 위쪽 보기를 누르면 몇가지 용도가 있는데 이중 프로그래머용을 선택해 줍시다. 일단 왼쪽에 있는 진수를 Hex 를 선택해 줍시다.(처음에 Dec로 되있습니다.) 여기선 0x0400 이런식으로 입력할수는 없습니다. 0x 떼내면 0400 인데 앞에 0 은 있으나 없으나 상관이 없습니다. 그냥 자리수 맞출려고 붙여놓은거기때문에 무시하고 0x400 으로 생각하시면 됩니다. 그럼 앞에 0x 를 떼내면 400 이 됩니다. Hex 로 400 입력해 줍시다. 그리고 그상태로 그대로 왼쪽의 진수를 Dec 로만 바꿔주면 위와같이 값도 1024로.. 2013. 12. 9.
1-4.나에게 윈도우메세지전송 일단 다른프로그램에게 메세지를 전송하기전에 나스스로에게 메세지를 전송하는것부터 해봅시다. 일단 기존에 있던 메인화면에 버튼을 하나 추가해 봅시다. 왼쪽의 도구상자에서 버튼 드래그 해서 화면 위로 올리기만 하면 됩니다! 그럼 위와 같이 일단 버튼이 추가되었습니다. 이제 예쁘게 이름도 바꿔줘 봅시다. 오른쪽밑에 속성창에 캡션을 찾아봅시다. 그리고 캡션내용을 나에게 전송 이라고 바꿔줘 봅시다. 그럼 버튼위에 캡션도 그렇게 바뀝니다. 그리고 버튼이 추가 되었으니 이벤트도 연결 시켜 봅시다. 버튼에서 마우스 오른쪽으로 이벤트처리기 추가 창을 들어갑니다. 요런팝업창 이제 살짝 익숙해져 갑니다. 이왕 열린거 그냥 버튼을 누르지말고 무슨내용이 있는지도 한번 봅시다. 메세지 형식은 BN_CLICKED 인걸 봐서 버튼 클.. 2013. 12. 9.
1-3.다른프로그램간 데이터전송 준비 전송을 하기전에 두가지 정도 알아보고 가야할것 같습니다. 핸들,윈도우메세지. 제가 원래 c#을 약간했는데 c++ 로 뭔가 만들어볼려고 하니 가장 이해할수 없는 내용이 위 두가지 였습니다. 일단 핸들 같은 경우는 쉽게 생각해서 객체의 인스턴스라고 생각하시면 되겠습니다. 완전 간단하게 말하면 현재 떠 있는 창을 컨트롤 하고 싶을때 접근대상이 되는 이름 정도로 생각하시면 되겠습니다. 일단 시작에 보면 vs 폴더 내에 Tools 폴더내에 spy++ 이라는 프로그램을 실행 해 봅시다. 실행하면 아래와 같은 창이 뜹니다. 그러면 창1 이라고 되있는건 무슨내용인지 모르니 일단 x 눌러서 닫아버리고 위에서 빨간 네모가 되있는찾기를 눌러봅시다. 그럼 중앙에 창찾기라는 팝업이 뜹니다. 창찾기 가운데 있는 빨간네모안의 타겟.. 2013. 12. 2.
1-2.editbox 의 내용 띄우기 이제 데이터를 전송해 볼려고 하니 데이터를 전송하려고 해도 전송할 데이터가 없습니다! 이건큰일이군요. 그래서 에디트박스(타프로그램의 텍스트박스) 를 만들어서 거기입력된 내용을 일단 메세지 박스로 띄우는것부터 해보기로 했습니다. 리소스 파일에서 제일처음있던 폼을 열어봅시다. 그리고나서 우측의 도구상자를 클릭해주면 여러 기본 컨트롤 들이 기본으로 주루룩 나옵니다. 폼에 보면 "여기에 대화상자 컨트롤을 배치합니다" 라고 되있으니 그말대로 해봅시다. 그중에 Edit Control 이라는 컨트롤을 드래그 드랍으로 폼위에 올려줍시다. 그리고 위와같이 크기도 좀 키워줍시다. 이제 컨트롤에 입력한 데이터를 볼수있게 메세지 박스를 띄워줘야 하는데 어떻게 해야할지 모르겠습니다! 그래서 구글링을 하니 AfxMessageBo.. 2013. 11. 28.
1-1.윈도우폼 띄우기 일단 VS2010 으로 프로젝트 부터 만들어 봅시다. 프로그램을 실행하고 새로만들기 > 프로젝트를 눌러줍시다. 그러면 위와같은 창이 뜨는데 요기서 Visual C++ 탭의 MFC 에서 MFC 응용 프로그램을 선택하고 아래 이름에 프로젝트 명을 적어줍시다. 저는 TestTrans 로 정했습니다. 그리고 확인을 눌러주면 아래와 같이 팝업창이 뜹니다. 그럼 아래와 같이 설정해주고 다음을 누릅시다. 위와 같이 설정을 해주고 마침을 누르면 아래와 같이 이제 시작화면을 볼수 있습니다. 위설정중 유니코드 라이브러리사용 옵션같은 경우는 따로 내용을 공부를 해야합니다. 저도 어설프게 알아서 설명을 할수가 없네요. 일단은 사용하지않겠습니다! 유니코드와 멀티바이트에 대해서 알수있는경로들 입니다. http://animal.m.. 2013. 11. 27.