Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[3845] [질문] invalid BLOB handle in .... ERROR
kkpkc [ ] 1612 읽음    1998-08-04 12:54
unit SMF;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls, DBCtrls, Mask, DBTables, DB, Grids, DBGrids,
  Menus, FileCtrl, ComCtrls, OleCtnrs, DBCGrids;

type
  TFMSMF = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    DSSMF: TDataSource;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Database1: TDatabase;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    DBGrid1: TDBGrid;
    btninsert: TBitBtn;
    btnprior: TBitBtn;
    btnnext: TBitBtn;
    btndelete: TBitBtn;
    btnedit: TBitBtn;
    btnpost: TBitBtn;
    N2: TMenuItem;
    About1: TMenuItem;
    About2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    L9: TLabel;
    BtnSearch: TBitBtn;
    OpenDialog1: TOpenDialog;
    N5: TMenuItem;
    SpeedButton1: TSpeedButton;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    DBLC_DOC: TDBLookupComboBox;
    DBLC_CODE: TDBLookupComboBox;
    Label3: TLabel;
    Qry_Insert: TQuery;
    Qry_Delete: TQuery;
    Qry_Update: TQuery;
    Qry_Post: TQuery;
    Qry_Open: TQuery;
    DBEdit1: TEdit;
    DBEdit4: TEdit;
    DBEdit2: TEdit;
    DBEdit3: TEdit;
    DBEdit5: TEdit;
    Qry_Num: TQuery;
    btncancel: TBitBtn;
    DBEdit9: TEdit;
    Label2: TLabel;
    DBMemo1: TDBMemo;
    Qry_Opennum: TFloatField;
    Qry_Opendatea: TStringField;
    Qry_Openlawyer: TStringField;
    Qry_Opensubject: TStringField;
    Qry_Opencontent: TMemoField;
    Qry_Opendocform: TStringField;
    Qry_Openclas_no: TStringField;
    Qry_Opendoc_place: TStringField;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure btninsertClick(Sender: TObject);
    procedure btnpriorClick(Sender: TObject);
    procedure btnnextClick(Sender: TObject);
    procedure btndeleteClick(Sender: TObject);
    procedure btneditClick(Sender: TObject);
    procedure BtncancelClick(Sender: TObject);
    procedure btnpostClick(Sender: TObject);
    procedure About2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BtnSearchClick(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure DBLC_DOCClick(Sender: TObject);
    procedure DBLC_CODEClick(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormActivate(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);

private
    { Private declarations }

public
    { Public declarations }
  end;

var
  FMSMF: TFMSMF;

implementation

uses SMFSearch, about, doc_form, code_form;

{$R *.DFM}


procedure TFMSMF.BitBtn1Click(Sender: TObject);
begin
   fmsearch.show;
   btnprior.enabled := true;
   btnnext.enabled := true;
   btndelete.enabled := true;
end;

procedure TFMSMF.FormPaint(Sender: TObject);
begin
    if tag <> 10 then
    begin
         tag := 10;
         l9.caption := '처리중이오니 잠시만 기다려주십시요.';
         l9.repaint;
         database1.open;
         fm_doc.tb_doc.open;
         fm_code.tb_code.open;
         l9.visible := false;
     end;
end;

procedure TFMSMF.btninsertClick(Sender: TObject);
begin
   with Qry_num do
     begin
       close;
       sql.clear;
       sql.add('select Max(num) from smf_db');
       open;
     end;
   dbedit1.text := DateToStr(Date);
   dbedit4.text := '';
   dbmemo1.text := '';
   dbedit2.text := '';
   dbedit3.text := '';
   dbedit5.text := '';
   dbedit9.text := '';

   btnpost.enabled := true;
   btninsert.enabled := false;
   btnedit.enabled := false;
   btnprior.enabled := false;
   btnnext.enabled := false;
   btndelete.enabled := false;
   btnsearch.enabled := true;

   dbedit4.setfocus;
   fmsearch.label3.visible := false;
   fmsearch.InputEdit1.visible := false;
end;

procedure TFMSMF.btnpriorClick(Sender: TObject);
begin
   qry_open.prior;
    dbedit1.text := qry_open.fieldbyname('datea').asstring;
    dbedit4.text := qry_open.fieldbyname('subject').asstring;
    dbmemo1.text := qry_open.fieldbyname('content').asstring;
    dbedit2.text := qry_open.fieldbyname('docform').asstring;
    dbedit3.text := qry_open.fieldbyname('clas_no').asstring;
    dbedit5.text := qry_open.fieldbyname('doc_place').asstring;
    dbedit9.text := qry_open.fieldbyname('num').asstring;
   dbedit1.setfocus;
end;

procedure TFMSMF.btnnextClick(Sender: TObject);
begin
   qry_open.next;
    dbedit1.text := qry_open.fieldbyname('datea').asstring;
    dbedit4.text := qry_open.fieldbyname('subject').asstring;
    dbmemo1.text := qry_open.fieldbyname('content').asstring;
    dbedit2.text := qry_open.fieldbyname('docform').asstring;
    dbedit3.text := qry_open.fieldbyname('clas_no').asstring;
    dbedit5.text := qry_open.fieldbyname('doc_place').asstring;
    dbedit9.text := qry_open.fieldbyname('num').asstring;
   dbedit1.setfocus;
end;

procedure TFMSMF.btndeleteClick(Sender: TObject);
var
    num : integer;
begin
  if messageDlg('삭제할까요??', mtInformation, [mbYes, mbNo], 0) = mrYes then
    begin
    num := Qry_Open['num'];
    Qry_Delete.params.parambyname('param1').asinteger := num;
    Qry_Delete.EXECSQL;
    end;
  with Qry_Open do
  begin
    close;
    sql.clear;
    sql.add('select * from smf_db order by datea desc');
    open;
  end;

end;

procedure TFMSMF.btneditClick(Sender: TObject);
var
  S: string;
begin
  s := dbedit9.text;
  fmsmf.DBEdit1.text := DateToStr(Date);

  with Qry_Update do
  begin
   close;
   sql.clear;
   sql.add('update smf_db set ');
   sql.add(' datea = :V11, subject = :V12, content = :V13, docform = :V14, ');
   sql.add(' clas_no = :V15, doc_place = :V16, num = :V17');
   sql.add(' where (num = :V17)');
   ParamByName('V11').AsString := Dbedit1.Text;
   ParamByName('V12').AsString := Dbedit4.Text;
   ParamByName('V13').AsString := dbmemo1.Text;
   ParamByName('V14').AsString := Dbedit2.Text;
   ParamByName('V15').AsString := dbedit3.Text;
   ParamByName('V16').AsString := Dbedit5.Text;
   ParamByName('V17').AsInteger := StrToInt(s);
   ExecSQL;
  end;
  with Qry_Open do
    begin
     close;
     sql.clear;
     sql.add('select * from smf_db order by datea desc');
     open;
    end;
   dbedit4.setfocus;
   btnsearch.enabled := true;

   if Not fm_doc.tb_doc.Active then
      fm_doc.tb_doc.Active := True;

   if Not fm_Code.tb_Code.Active then
      fm_Code.tb_Code.Active := True;

end;

procedure TFMSMF.BtncancelClick(Sender: TObject);
begin
   dbedit1.text := qry_open.fieldbyname('datea').asstring;
   dbedit4.text := qry_open.fieldbyname('subject').asstring;
   dbmemo1.text := qry_open.fieldbyname('content').asstring;
   dbedit2.text := qry_open.fieldbyname('docform').asstring;
   dbedit3.text := qry_open.fieldbyname('clas_no').asstring;
   dbedit5.text := qry_open.fieldbyname('doc_place').asstring;

   dbedit1.setfocus;
   btnpost.enabled := false;
   btninsert.enabled := true;
   btnsearch.enabled := false;
   btnedit.enabled := true;
   btnprior.enabled := true;
   btnnext.enabled := true;
   btndelete.enabled := true;

end;

procedure TFMSMF.btnpostClick(Sender: TObject);
begin
if (dbedit1.text = '')then
   begin
     showmessage('입력일자를 입력하시오!');
     exit
   end;

  with Qry_Post do
  begin
    close;
    sql.clear;
    sql.add('insert into smf_db ');
    sql.add(' (datea, subject, content, docform, clas_no, doc_place, num)');
    sql.add(' values (:V1, :V2, :V3, :V4, :V5, :V6 , :V7)');
    ParamByName('V1').AsString := Dbedit1.Text;
    ParamByName('V2').AsString := Dbedit4.Text;
    ParamByName('V3').AsString := dbmemo1.Text;
    ParamByName('V4').AsString := Dbedit2.Text;
    ParamByName('V5').AsString := Dbedit3.Text;
    ParamByName('V6').AsString := Dbedit5.Text;
    ParamByName('V7').AsInteger := Qry_num.fields[0].asinteger + 1;
    ExecSQL;
  end;

  with Qry_Open do
     begin
      close;
      sql.clear;
      sql.add('select * from smf_db order by datea desc');
      open;
     end;

   btnpost.enabled := false;
   btninsert.enabled := true;
   btnsearch.enabled := false;
   btnedit.enabled := true;
   btnprior.enabled := true;
   btnnext.enabled := true;
   btndelete.enabled := true;
end;

procedure TFMSMF.About2Click(Sender: TObject);
begin
    Aboutbox.show;
end;

procedure TFMSMF.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TFMSMF.BtnSearchClick(Sender: TObject);
begin
   dbedit1.setfocus;
   btnpost.enabled := true;
   btninsert.enabled := false;
   btnsearch.enabled := true;
   btnedit.enabled := false;
   DBLC_DOC.visible := true;
   DBLC_CODE.visible := true;
   dbedit1.setfocus;

   if  OpenDialog1.Execute then
     dbedit5.text := OpenDialog1.FileName
   else
     showmessage('화일을 선택하지 않았습니다.');
end;

procedure TFMSMF.N5Click(Sender: TObject);
begin
   close;
end;

procedure TFMSMF.SpeedButton1Click(Sender: TObject);
var
  strExtend : String;
begin
   strExtend := Copy(ExtractFileExt(fmsmf.DBEdit5.Text), 2, 3);

   if strExtend = 'doc' then
   begin
    winexec(Pchar('C:\Program Files\Microsoft Office\Office\winword.exe ' +
      fmsmf.DBEdit5.Text), SW_SHOW);
   end
   else if strExtend = 'ppt' then
   begin
    winexec(Pchar('C:\Program Files\Microsoft Office\Office\powerpnt.exe ' +
      fmsmf.DBEdit5.Text), SW_SHOW);
   end
   else if strExtend = 'xls' then
   begin
    winexec(Pchar('C:\Program Files\Microsoft Office\Office\excel.exe ' +
      fmsmf.DBEdit5.Text), SW_SHOW);
   end
   else if strExtend = 'txt' then
   begin
       winexec(Pchar('C:\Windows\notepad.exe ' +
         fmsmf.DBEdit5.Text), SW_SHOW);
   end
   else if StrExtend = '' then
   begin
        showmessage('선택된 화일이 없습니다.');
   end;

end;

procedure TFMSMF.N2Click(Sender: TObject);
begin
  if Fm_Doc.TB_DOC.Active then
     fm_doc.tb_doc.Active := False;
  fm_doc.show;
end;

procedure TFMSMF.N3Click(Sender: TObject);
begin

  if Fm_Code.TB_Code.Active then
     fm_Code.tb_Code.Active := False;
  fm_code.show;
end;

procedure TFMSMF.DBLC_DOCClick(Sender: TObject);
begin
   dbedit2.text := fm_doc.tb_doc['DOC_NAME'];
end;

procedure TFMSMF.DBLC_CODEClick(Sender: TObject);
begin
   dbedit3.text := fm_code.tb_code['CODE'];
end;

procedure TFMSMF.BitBtn2Click(Sender: TObject);
begin
   close;
end;

procedure TFMSMF.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
  begin
     SelectNext(ActiveControl as tWinControl, True, True);
     Key := #0;
  end;
end;

procedure TFMSMF.FormActivate(Sender: TObject);
begin
    if Not fm_doc.tb_doc.Active then
      fm_doc.tb_doc.Active := True;

   if Not fm_Code.tb_Code.Active then
      fm_Code.tb_Code.Active := True;

  with Qry_Open do
  begin
    close;
    sql.clear;
    sql.add('select * from smf_db order by datea desc');
    open;
   end;
    dbedit1.text := qry_open.fieldbyname('datea').asstring;
    dbedit4.text := qry_open.fieldbyname('subject').asstring;
    dbmemo1.text := qry_open.fieldbyname('content').asstring;
    dbedit2.text := qry_open.fieldbyname('docform').asstring;
    dbedit3.text := qry_open.fieldbyname('clas_no').asstring;
    dbedit5.text := qry_open.fieldbyname('doc_place').asstring;
    dbedit9.text := qry_open.fieldbyname('num').asstring;
end;



procedure TFMSMF.DBGrid1CellClick(Column: TColumn);
begin
    dbedit1.text := qry_open.fieldbyname('datea').asstring;
    dbedit4.text := qry_open.fieldbyname('subject').asstring;
    dbmemo1.text := qry_open.fieldbyname('content').asstring;
    dbedit2.text := qry_open.fieldbyname('docform').asstring;
    dbedit3.text := qry_open.fieldbyname('clas_no').asstring;
    dbedit5.text := qry_open.fieldbyname('doc_place').asstring;
    dbedit9.text := qry_open.fieldbyname('num').asstring;

end;

end.


+ -

관련 글 리스트
3845 [질문] invalid BLOB handle in .... ERROR kkpkc 1612 1998/08/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.