안녕하세요

프로그램 과정에서 막혔던 문제들에 대한 해결책 정리


페이지 목록

2013년 6월 26일 수요일

[MFC] MySQL 함수 정리

CString query;
query.Format(" blur blur");

쿼리 실행
ado.ExecuteSQL(query, 0)

검색결과 개수

int count = ado.GetRecordCount();

컬럼 값 구하기
CString temp;
ado.GetFieldValue( column number, temp, _T(""));

다음 값 가져오기
ado.m_ptrRecordset->Moveext();

쿼리값 마지막 찾기
while(!ado.m_ptrRecordset->adoEOF)
{

다음 값 가져오기
ado.m_ptrRecordset->Moveext();
}

[DB] Query 정리

Select

 Select Column From Table where Col1 = xx and Col2 = yy or Col3 = zz

Insert

 Insert Into Table (Col1, Col2, Col3) VALUES (Co1, Col2, Col3)

String의 경우 ' ' 혹은 " " 로 감싸준다. "이순신" '이순신'

Update

Update tabe set col1 = val1 , co2 = val2 where some_col = som_val;

Add a Column

Alter Table contacts Add email VARCHAR(60);

Column 가져오기

Show columns from Table;

2013년 6월 25일 화요일

[C++] Vector Erase

// erasing from vector#include <iostream>#include <vector>int main ()
{
  std::vector<int> myvector;

  // set some values (from 1 to 10)
  for (int i=1; i<=10; i++) myvector.push_back(i);

  // erase the 6th element
  myvector.erase (myvector.begin()+5);

  // erase the first 3 elements:
  myvector.erase (myvector.begin(),myvector.begin()+3);

  std::cout << "myvector contains:";
  for (unsigned i=0; i<myvector.size(); ++i)
    std::cout << ' ' << myvector[i];
  std::cout << '\n';

  return 0;
}


출처: http://www.cplusplus.com/reference/vector/vector/erase/

2013년 6월 22일 토요일

[MFC] 소멸자에 대해

소멸자를  클래스 헤더와 cpp구현파일에 만드시면 됩니다

*.h파일에서
class Test
{
public:
virtual ~Test(); // 가급적 virtual로 선언 하시길..
};

*.cpp파일에서...
Test::~Test()
{
// delete 리소스
}


출처: http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=67426403&qb=bWZjIOyGjOupuOyekA==&enc=utf8&section=kin&rank=2&search_sort=0&spq=0&pid=RNSRM35Y7vZsst0T%2BnZsssssstZ-126518&sid=UcVUNnJvLCkAAHZHGv8

[MFC] unresolved external symbol "public: __thiscall

 이 에러.. 정말 어렵다. ㅠㅠ

아아아아

해결방법이 더 쉬워서 멘붕......

 프로젝트 빌드를 하다보면 특히

svn을 사용해서 하다 보면,

있던 파일이 빠져 버리기도 한다.

새로 추가 된 파일을 Add 하지 않은 상태로

새로 Commit을 할 경우 빠져 버리는 것이다.

이런 경우에

Add files to Projet를 이용해서

해당 Files 를 추가하면 에러가 사라진다....

참조 : http://messier2000.blog.me/90007238675

감사합니다.

[MySQL] substr

db의 claim_data_tbl 테이블의 regdate 컬럼엔

20110111 이란 데이터들이 들어 있다고 하면

select substr(a.regdate,1,6) from claim_data_tbl a

라고 했을 때 201101 까지만 짤려서 나온다.

1번째 글자서부터 6개의 글자를 가져오라는 뜻이다.
출처 : http://blog.daum.net/haha25/5389296

[MySQL] Distinct

 중복된 값을 제거하고 결과를 나타내 준다고 한다.

Select Distinct item from item_list

동일한 이름의 아이템은 제거되고 나옴

DB에 a,a,a,b,b,b,c 들어 있다면

a,b,c 만 출력된다.

[MySql] where not exists

조회시 값이 있으면 insert 하지 않고

값이 없으면 insert하는 문구이다.

select문으로 isert를 하는 부분이 독특하다.

자세한 내용은 아래 블로그로


참조: http://do0park.blog.me/40134359319

좀 더 찾아보니 위의 의미 라기 보단
select column from Table1 where not exists (select * from Table wher T1 = T2)
등과 같이 쓰이는데

 () 안의 쿼리 문이 참이 아닐경우( 해당 하는 데이터가 없을 경우)

앞의 select 를 실행하라는 의미이다.

2013년 6월 12일 수요일

[C언어] printf의 특수문자

printf 내에서 %(퍼센트) 를 출력하려면

두번 적어 줘야 된다.



printf("%%");

출력 결과
%

그 외 특수문자들

\a = 경고 음 소리
\b = 빽스페이스
\f =  폼 피드
\n = 엔터
\r = 케리지 리턴
\t = 수평 탭
\v = 수직 탭
\\ = 백슬러시
\' = 작은 따옴표
\" = 큰 따옴표

2013년 6월 10일 월요일

[MFC] ComboBox

CCombobox m_combo_box;

dropdown의 edit 창의 메세지 얻기
m_combo_box.GetWindowText();

combobox의 item 모두 지우기
m_combo_box.ResetContent();

선택한 라인의 String 가져오기
CString current;
m_combo_box.GetLBText( m_combo_box.GetCurSel(), current);


2013년 6월 5일 수요일

[MFC] UpdateData

UpdateData(TRUE); => UI to Data
UpdateData(FALSE); => Data to UI

2013년 6월 3일 월요일

[MFC] dropdown ombobox의 edit 영역 가져 오기

[MFC]메모 - 리스트 박스 콤보 박스

HINE.egloos.com/1178336
리스트 박스에서 코드로 내용 입력 하기
 - CListBox 객체를 만들고, 객체의 멤버 함수 InsertString, AddStrign 등으로 추가한다.
에디트 컨트롤의 내용을 리스트 박스로 입력하기
 - 에디트 컨트롤에 입력된 문자열을 CListBox 객체의 멤버함수의 인자로 보낸다.
 - 콤보 박스에 입력할때도 같은 방식으로 할 수 있다.
사용예제)
void CListComboView::OnButtonEditToListAdd()
{
 // TODO: Add your control notification handler code here

 UpdateData(TRUE);
 m_clList.InsertString( m_clList.GetCount(), m_csListAddStr);
}
선택된 리스트 박스의 내용을 다른 곳으로 저장하기
 - GetCurSel 함수로 선택된 인덱스를 검색하고, GetText 함수로 원하는 문자열 변수로 저장시켜 준다.
사용예제)
void CListComboView::OnSelchangeList()
{
 // TODO: Add your control notification handler code here
 int index = m_clList.GetCurSel();
 m_clList.GetText(index, m_clkSelected);
 UpdateData(FALSE);
}
리스트 박스의 원하는 문자열을 검색
 -FindString() 함수를 이용한다.


콤보 박스의  Drop List 타입은 콤보 박스 내의 입력이 불가능하게 만들고
Drop Down은 에디트 컨트롤 처럼 입력이 가능하도록 해준다.

DropDown 형식의 콤보박스에서 쓰여진 텍스트를 콤보박스내에 입력하려면
DropDown형식의 콤보박스의 스트링 객체를 추가한 후에 리스트 박스에
문자열을 추가하듯이 하면 된다.
스트링 객체를 추가 하지 않고, GetWindowText 함수를 이용하면 좀더 쉽게 문자열 추가가 가능해진다


리스트박스, 콤보 박스의 삽입 추가는 해당 객체의 멤버 함수를 잘 이용하여야 한다.

출처 : http://valley.egloos.com/viewer/?url=http://hine.egloos.com/1178336

[MFC] DWORD -> CString

CString cstrTemp;
cstrTemp.Format(L"%lu", (ULONG)dword);

안되면

DWORD dwnumber = 1234;
CString csNumber;
csNumber.Format("%lu", dwNumber);