님이 쓰신 글 :
: mdb로 테이블 생성하고 삭제하고
: 어트리뷰티 추가하고 삭제하고
: 레코드 추가하고 정렬하는 예제 소스 없나요.
: 자료 검색해도 원하는 답이 잘 안찾아 지내요
제가 실전에 사용하는 로직입니다.
도움이 되었으면 합니다.
더불어
http://www.zionis.co.kr 자료실에 실전 예제 프로그램들도 있으니
참고 바랍니다.
#include <vcl.h>
#pragma hdrstop
#include "Bank.h"
#include "Sdm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormBank *FormBank;
//---------------------------------------------------------------------------
__fastcall TFormBank::TFormBank(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormBank::FormCreate(TObject *Sender)
{
Position = poScreenCenter;
}
//---------------------------------------------------------------------------
void __fastcall TFormBank::sbClearClick(TObject *Sender)
{
e_no->Clear();
e_name->Clear();
e_bank->Clear();
e_approval->Clear();
e_tel->Clear();
e_support->State = cbUnchecked;
}
//---------------------------------------------------------------------------
void __fastcall TFormBank::bbInsertClick(TObject *Sender)
{
TLocateOptions Opts;
Opts.Clear();
Opts << loPartialKey;
dm->Bank->Connection = dm->ADOConnection;
dm->Bank->Close();
dm->Bank->SQL->Clear();
dm->Bank->SQL->Add("INSERT INTO 계좌 ");
dm->Bank->SQL->Add(" (계좌번호, 예금주, 승인번호, 은행, 전화번호, 보조계좌)");
dm->Bank->SQL->Add(" VALUES(:cno, :cname, :capproval, :cbank, :ctel, :csupport)");
dm->Bank->Parameters->ParamByName("cno")->Value = e_no->Text;
dm->Bank->Parameters->ParamByName("cname")->Value = e_name->Text;
dm->Bank->Parameters->ParamByName("capproval")->Value = e_approval->Text;
dm->Bank->Parameters->ParamByName("cbank")->Value = e_bank->Text;
dm->Bank->Parameters->ParamByName("ctel")->Value = e_tel->Text;
if (e_support->State == cbChecked)
dm->Bank->Parameters->ParamByName("csupport")->Value = 1;
else
dm->Bank->Parameters->ParamByName("csupport")->Value = 0;
dm->Bank->ExecSQL();
dataBankg();
dm->Bank->Locate("계좌번호", e_no->Text, Opts);
}
//---------------------------------------------------------------------------
void __fastcall TFormBank::dataBankg()
{
dm->Bank->Connection = dm->ADOConnection;
dm->Bank->Close();
dm->Bank->SQL->Clear();
dm->Bank->SQL->Add("select * from 계좌 ");
dm->Bank->SQL->Add(" order by 계좌번호");
dm->Bank->Open();
int Count = dm->Items->RecordCount;
StatusBar1->Panels->Items[0]->Text = " [ Message : ] ";
StatusBar1->Panels->Items[1]->Text = "구좌 수 : " + IntToStr(Count);
dm->Bank->First();
}
//---------------------------------------------------------------------------
void __fastcall TFormBank::bbEditClick(TObject *Sender)
{
TLocateOptions Opts;
Opts.Clear();
Opts << loPartialKey;
dm->Bank->Connection = dm->ADOConnection;
dm->Bank->Close();
dm->Bank->SQL->Clear();
dm->Bank->SQL->Add("UPDATE 계좌 ");
dm->Bank->SQL->Add(" set 은행=:cbank, 예금주=:cname, 승인번호=:capproval,");
dm->Bank->SQL->Add(" 전화번호=:ctel, 보조계좌=:csupport");
dm->Bank->SQL->Add("where (계좌번호 = :cno)");
dm->Bank->Parameters->ParamByName("cno")->Value = e_no->Text;
dm->Bank->Parameters->ParamByName("cname")->Value = e_name->Text;
dm->Bank->Parameters->ParamByName("capproval")->Value = e_approval->Text;
dm->Bank->Parameters->ParamByName("cbank")->Value = e_bank->Text;
dm->Bank->Parameters->ParamByName("ctel")->Value = e_tel->Text;
if (e_support->State == cbChecked)
dm->Bank->Parameters->ParamByName("csupport")->Value = 1;
else
dm->Bank->Parameters->ParamByName("csupport")->Value = 0;
dm->Bank->ExecSQL();
dataBankg();
dm->Bank->Locate("계좌번호", e_no->Text, Opts);
}
//---------------------------------------------------------------------------
void __fastcall TFormBank::bbDeleteClick(TObject *Sender)
{
TLocateOptions Opts;
Opts.Clear();
Opts << loPartialKey;
AnsiString temp = dm->Bank->FieldByName("계좌번호")->AsString
+ " " + dm->Bank->FieldByName("은행")->AsString
+ " " + dm->Bank->FieldByName("예금주")->AsString;
temp = temp + "를 삭제하시겠습니까?";
if (MessageBox(Handle, temp.c_str(), "삭제 확인", MB_ICONQUESTION | MB_YESNO) == IDYES)
{
dm->Bank->Connection = dm->ADOConnection;
dm->Bank->Close();
dm->Bank->SQL->Clear();
dm->Bank->SQL->Add("delete from 계좌");
dm->Bank->SQL->Add(" where (계좌번호 = :cno)");
dm->Bank->Parameters->ParamByName("cno")->Value = e_no->Text;
dm->Bank->ExecSQL();
dataBankg();
dm->Bank->Locate("계좌번호", e_no->Text, Opts);
}
}
//---------------------------------------------------------------------------
void __fastcall TFormBank::bbCloseClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TFormBank::dgBankCellClick(TColumn *Column)
{
e_no->Text = dm->Bank->FieldByName("계좌번호")->AsString;
e_name->Text = dm->Bank->FieldByName("예금주")->AsString;
e_approval->Text = dm->Bank->FieldByName("승인번호")->AsString;
e_bank->Text = dm->Bank->FieldByName("은행")->AsString;
e_tel->Text = dm->Bank->FieldByName("전화번호")->AsString;
if (1 != dm->Bank->FieldByName("보조계좌")->AsInteger)
e_support->State = cbUnchecked;
else
e_support->State = cbChecked;
}
//---------------------------------------------------------------------------
void __fastcall TFormBank::dgBankDblClick(TObject *Sender)
{
dgBank->Options = (TDBGridOptions(dgBank->Options) >> dgRowSelect) << dgEditing << dgAlwaysShowEditor;
dgBank->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TFormBank::FormShow(TObject *Sender)
{
dataBankg();
}
//---------------------------------------------------------------------------
void __fastcall TFormBank::e_noKeyPress(TObject *Sender, char &Key)
{
if (Key == VK_RETURN)
{
keybd_event(VK_TAB,0,KEYEVENTF_EXTENDEDKEY,0);
}
}
.