±ÍÇÏ´Â ¼Õ´Ô À̽ʴϴÙ
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ
  
  µ¨¸¶´ç °ø½Ä ÀºÇà°èÁÂ
  ÇϳªÀºÇà 227-910235-83607
  ¿¹±ÝÁÖ ÀÌ»ó±¹(¿î¿µÁø)
ÇÁ·ÎÁ§Æ® °Ô½ÃÆÇ
ÅõÇ¥°Ô½ÃÆÇ
µ¨¸¶´ç¼Ò°³
±âÃʺÎÅÍ È°¿ë±îÁö! µ¨ÆÄÀÌ ±³À° - µ¥ºê±â¾î
Áú¹®°ú ´äº¯ Áú¹®°ú ´äº¯ ÀÔ´Ï´Ù.
±Û³»¿ë - Áú¹®°ú ´äº¯
 [Áú¹®]¹®ÀåÀ» ¹ÙÀ̳ʸ®·Î º¯È¯Àº µÇ´Âµ¥ ÀúÀåÀÌ ¾ÊµË´Ï´Ù.
ÀüºÀ¼ö
(ÀüºÀ¼ö)
2017-06-16 ¿ÀÈÄ 8:02:33
878ȸ Á¶È¸


÷ºÎÆÄÀÏ ´Ù¿î·Îµå
¿¡·¯µ¥ÀÌÅ͸ðµâ.zip
¾Æ±â»ç¶û´Ô ´äº¯ °¨»çÇÕ´Ï´Ù.
´Ô²²¼­ ¸»¾¸ÇϽŠ¿¡·¯Á¤º¸¿Í DataModule.pas ÆÄÀÏÀ» ZIP·Î ¾ÐÃàÇÏ¿© Ã·ºÎÆÄÀϷΠ¿Ã¸²´Ï´Ù.
ºÎµð ÁÁÀº °á°ú Àֱ⸦ ºÎŹµå¸³´Ï´Ù.

¾Æ·¡´Â °øÁö»çÇ× Å×À̺í Á¤º¸ ÀÔ´Ï´Ù.
CREATE TABLE TF_MOTICE (
    MOTICE_CD  VARCHAR(20) NOT NULL,
    MOTICE_NM  BLOB SUB_TYPE 0 SEGMENT SIZE 32762,
    ONOFF      VARCHAR(10),
    SAT_TIME   VARCHAR(10),
    END_TIME   VARCHAR(10)
);


ALTER TABLE TF_MOTICE ADD PRIMARY KEY (MOTICE_CD);

 

>> 1. °³¹ß/½ÇÇà Ç÷§Æû 
>>   (1) OS : Windows 7
>>   (2) °³¹ßÅø :Delphi 7 
>>   (3) »ç¿ë Database : Firebird 2.1
>> 2. °³¹ß ÁßÀΠÇÁ·Î±×·¥ °øÁö»çÇ×
>> 
>> 3. Áú¹® ³»¿ë 
>> ¾È³çÇϼ¼¿ä?
>> °øÁö»çÇ× ÇÁ·Î±×·¥À» ¸¸µå´Â ÁßÀÔ´Ï´Ù.
>> ¸®Ä¡¿¡µðÅ͸¦ ÀÌ¿ëÇÏ¿© ±Û²Ã ÆùÆ®·Î º¯È¯ÇÏ¿© ½ºÆ®¸²À¸·Î DB¿¡ ¹ÙÀ̳ʸ®·Î º¯È¯Àº µÇ´Âµ¥ ÀúÀåÁß 
>> ÀúÀåÀÌ ¾ÊµÇ°í ¿¡·¯°¡ ³³´Ï´Ù. Ã·ºÎÆÄÀÏÀº ¹ÙÀ̳ʸ®·Î ÅؽºÆ®¿¡ ÀúÀåµÈ ÄÚµåÀÔ´Ï´Ù.
>> Á¾Àü¿¡´Â ºÎºÐÀûÀ¸·Î Äڵ带 ¿Ã·È´Âµ¥ ´ä±ÛÀÌ ¾ø¾î¼­ À̹ø¿¡´Â Ç® ÄÚµå·Î Áú¹®À» µå¸³´Ï´Ù.
>> 
>> 
>> ¾Æ·¡¿Í °°ÀÌ ÀúÀåÀü SQLÀ̳ª Text·Î ÀúÀåÇؼ­ º¸¸éÀº º¯È¯Àº µË´Ï´Ù.
>> //showmessage(sSQL);
>> //Memo1.Lines.Add(sSQL);
>> //RI_MOTICE_NM.Lines.SaveToFile('C:\12345.txt'); 
>> 
>> 
>> 
>> ¾Æ·¡´Â °øÁö»çÇ× Ç® ÄÚµåÀÔ´Ï´Ù.
>> 
>> unit Motice;
>> 
>> interface
>> 
>> uses
>>   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
>>   Dialogs, AdvToolBtn, ExtCtrls, StdCtrls, ComCtrls, DB, DBTables, Buttons,
>>   ADODB, Contnrs;
>> 
>> type
>>   TModeType = (mNone,mAppend,mUpdate,mDelete);
>>   TMotice_F = class(TForm)
>>     Panel1: TPanel;
>>     Panel2: TPanel;
>>     Panel3: TPanel;
>>     Btn_Save: TAdvToolButton;
>>     Btn_CLOSE: TAdvToolButton;
>>     spAPPEND: TAdvToolButton;
>>     spUPDATE: TAdvToolButton;
>>     spDELETE: TAdvToolButton;
>>     QR_MOTICE: TQuery;
>>     Sp_Motice_CD: TSpeedButton;
>>     ED_MOTICE_CD: TEdit;
>>     RI_Motice_NM: TRichEdit;
>>     Panel4: TPanel;
>>     Panel5: TPanel;
>>     FontDialog1: TFontDialog;
>>     Btn_Font1: TAdvToolButton;
>>     Memo1: TMemo;
>>     procedure Btn_CLOSEClick(Sender: TObject);
>>     procedure FormCreate(Sender: TObject);
>>     procedure FormShow(Sender: TObject);
>>     procedure ED_MOTICE_CDChange(Sender: TObject);
>>     procedure Sp_Motice_CDClick(Sender: TObject);
>>     procedure spAPPENDClick(Sender: TObject);
>>     procedure Btn_SaveClick(Sender: TObject);
>>     procedure Btn_Font1Click(Sender: TObject);
>>   private
>>     { Private declarations }
>>     MODETYPE: TMODETYPE;      // ÇöÀçÀÇ ¸ðµå»óÅÂ
>>     PROCEDURE COMPONENTCLEAR; // ÄÄÆ÷³ÍÆ® ÃʱâÈ­ ÇÔ¼ö
>>     PROCEDURE CHECKNUM(SENDER: TOBJECT);
>>     procedure GET_MOTICE(sMOTICECD: string);
>>   public
>>     { Public declarations }
>>   end;
>> 
>> var
>>   Motice_F: TMotice_F;
>> 
>> implementation
>> 
>> uses GOCOMU,ULSEQRUM, DataModule;
>> 
>> var
>>   startSQL : String;
>> 
>> {$R *.dfm}
>> 
>> // ÀÛ¾÷¸ðµå¸¦ ¼öÁ¤¸ðµå·Î ÀüȯÇÑ´Ù.(ÇÁ·Î±×·¥ ÃʱâÈ­)
>> procedure TMotice_F.FormCreate(Sender: TObject);
>> begin
>>   spUPDATE.Click;                         // ¼öÁ¤¹öÆ° È°¼ºÈ­
>> end;
>> 
>> // EDIT ÃʱâÈ­
>> PROCEDURE TMotice_F.COMPONENTCLEAR;
>> VAR
>>   wCC: WORD;
>> BEGIN
>>   //  Àüü COMPONENTÁß¿¡¼­ EDIT CHECKBOXÃʱâÈ­
>>   FOR wCC:=1 TO COMPONENTCOUNT - 1 DO
>>     IF COMPONENTS[wCC] IS TEDIT THEN
>>       TEDIT(COMPONENTS[wCC]).TEXT:=''
>>     ELSE
>>     IF COMPONENTS[wCC] IS TCHECKBOX THEN
>>       TCHECKBOX(COMPONENTS[wCC]).CHECKED:=FALSE
>>     ELSE
>>     IF COMPONENTS[wCC] IS TRichEdit THEN
>>       TRichEdit(COMPONENTS[wCC]).Lines.Text:='';
>> end;
>> 
>> // µî·ÏµÈ ÀÚ·á º¸¿©ÁÖ±â ÇÔ¼ö
>> PROCEDURE TMotice_F.CHECKNUM(SENDER: TOBJECT);
>> Var
>>   sSQL : String;
>> begin
>>   sSQL := ' Select * From TF_MOTICE';
>>   DM.SQL_OPEN(QR_MOTICE, sSQL);
>>   if QR_MOTICE.Eof then
>>     Exit;
>>     try
>>       QR_MOTICE.OPEN;
>>     except
>>       APPLICATION.MESSAGEBOX('°øÁö»çÇ× Á¤º¸ Å×ÀÌºí »ý¼ºµµÁß ¿¡·¯¹ß»ý!!!',
>>                              '¿À·ù', MB_OK + MB_ICONINFORMATION);
>>       QR_MOTICE.CLOSE;
>>     end;
>> end;
>> 
>> // ÀÛ¾÷Á¾·á
>> procedure TMotice_F.Btn_CLOSEClick(Sender: TObject);
>> begin
>>   Close;
>> end;
>> 
>> // µî·ÏµÈ ÀڷḦ º¸¿©ÁØ´Ù.
>> procedure TMotice_F.FormShow(Sender: TObject);
>> Var
>>   sSQL : String;
>> begin
>>   startSQL := ' Select * From TF_MOTICE';
>>   DM.SQL_OPEN(QR_MOTICE, startSQL);
>>   if QR_MOTICE.Eof then
>>     Exit;
>>     try
>>       QR_MOTICE.OPEN;
>>     except
>>       APPLICATION.MESSAGEBOX('°øÁö»çÇ× Á¤º¸ Å×ÀÌºí »ý¼ºµµÁß ¿¡·¯¹ß»ý!!!',
>>                              '¿À·ù', MB_OK + MB_ICONINFORMATION);
>>       QR_MOTICE.CLOSE;
>>     end;
>> end;
>> 
>> // °øÁöÄڵ尡 ¹Ù²î¸é µî·ÏµÈ ÀڷḦ Àç ÀÛ¼ºÇÑ´Ù.
>> procedure TMotice_F.ED_MOTICE_CDChange(Sender: TObject);
>> begin
>>   // °øÁöÄڵ带 Àç ÀÛ¼ºÇÑ´Ù.
>>   Sp_Motice_CD.Click;
>> 
>>   // µî·ÏµÈ Àڷΰ¡ ÀÖÀ¸¸é º¸¿©ÁÖ°í »èÁ¦¹öÆ° È°¼ºÈ­¿©ºÎ Á¡°Ë
>>   IF SENDER = ED_MOTICE_CD THEN
>>     BEGIN
>>       GET_MOTICE(TRIM(TEDIT(SENDER).TEXT));
>>       IF QR_MOTICE.ACTIVE THEN
>>         QR_MOTICE.Locate('MOTICE_CD',TRIM(TEDIT(SENDER).TEXT),[lopartialkey]);
>>     END;
>> 
>>   // ÀԷ¿¡¼­ °øÁö»çÇ× ÄÚµå±â ÀԷµǸ頰øÁö ³»¿ëÀ» Ã£¾ÆÁØ´Ù.
>>   if SENDER = ED_MOTICE_CD then
>>     BEGIN
>>       RI_MOTICE_NM .TEXT:=
>>       GET_CODE_DESC('TF_MOTICE',1,[1],['MOTICE_CD'],[TRIM(ED_MOTICE_CD.TEXT)],'MOTICE_NM');
>>     END;
>> end;
>> 
>> // µî·ÏµÈ ÀÚ·á º¸¿©ÁÖ±â ÇÔ¼ö
>> procedure TMotice_F.GET_MOTICE(sMOTICECD: string);
>> Var
>>   Q1 : TQUery;
>>   SS: TStringStream;
>>   sTemp: String;
>> begin
>>   if MODETYPE in [mNone] then
>>     EXIT;
>> 
>>     Q1:=TQUERY.CREATE(SELF);
>>     Q1.DATABASENAME:=ALIASNAME;
>>     Q1.SQL.CLEAR;
>>     Q1.SQL.ADD(' SELECT * FROM TF_MOTICE WHERE MOTICE_CD = '''+sMOTICECD+'''');
>>     Q1.OPEN;
>>     SS := TStringStream.Create('');
>>     sTemp := Q1.FieldByName('MOTICE_NM').AsString;
>>     RI_MOTICE_NM.Lines.SaveToStream(SS);
>>     SS.Free;
>>     Q1.CLOSE;
>>     Q1.FREE;
>>     ACTIVECONTROL:=RI_MOTICE_NM;
>> end;
>> 
>> // °øÁö»çÇ×Äڵ堽ÇÇà
>> procedure TMotice_F.Sp_Motice_CDClick(Sender: TObject);
>> begin
>>   ED_MOTICE_CD.Text := 'MOT001';
>> end;
>> 
>> //-----------------------------------------------------------------------------
>> // BUTTON EVENT
>> //-----------------------------------------------------------------------------
>> // »ðÀÔ¹öÆ°(¼±ÅùöÆ° ¸ðµå¼³Á¤
>> procedure TMotice_F.spAPPENDClick(Sender: TObject);
>> Var
>>   sSQL :String;
>> begin
>>   // ÇöÀç ÀÛ¾÷¸ðµå »óÅ ¼³Àü
>>   if SENDER = spAPPEND then MODETYPE := mAPPEND
>>   else
>>   if SENDER = spUPDATE then MODETYPE := mUPDATE
>>   else
>>   if SENDER = spDELETE then MODETYPE := mDELETE;
>> 
>>   // µî·ÏµÈ ÀüüÀÚ·á º¸¿©ÁÖ±â
>>   sSQL := 'SELECT * FROM TF_MOTICE';
>>   DM.SQL_Open(QR_Motice, sSQL);
>>   if not QR_Motice.Active then
>>     QR_Motice.OPEN;
>>     CHECKNUM(SENDER);
>>     ACTIVECONTROL := RI_Motice_NM; // Ä¿¼ÅÁ¦¾î
>> end;
>> 
>> // ÀúÀå¹öÆ°(¼³Á¤µÈ ¸ðµå¿¡µû¶ó SQL±¸¹®À» µ¿ÀûÀ¸·Î »ý¼ºÇÏ¿© ½ÇÇà
>> procedure TMotice_F.Btn_SaveClick(Sender: TObject);
>> var
>>   sSQL: string;
>>   sEPM_CD, sStreamVal : String;
>>   rtVal : Boolean;
>> //  SS: TMemoryStream;
>>   SS: TStringStream;
>> begin
>>     // °øÁö¸í Á¡°Ë
>>   IF (Trim(RI_Motice_NM.Text) = '') then
>>     begin
>>       Application.MessageBox('°øÁö¸íÀ» ÁöÁ¤ÈÄ ÀÛ¾÷ÇϽÿä...','°øÁö¸í Á¡°Ë',
>>                               mb_ok+mb_IconInformation);
>>       ActiveControl := RI_Motice_NM;
>>       Exit;
>>     end;
>> 
>>   IF APPLICATION.MESSAGEBOX('ÀԷµȠµ¥ÀÌŸ¸¦ ÀúÀå ÇϽðڽÀ´Ï±î?','ÀúÀåÈ®ÀÎ',
>>                                MB_YESNO+MB_ICONQUESTION) <> IDYES THEN
>>     EXIT;
>> 
>>   SS := TStringStream.Create(RI_Motice_NM.Text);
>>   try
>>     SS.Position := 0;
>>     RI_MOTICE_NM.Lines.SaveToStream(SS);
>> 
>>   sStreamVal := SS.DataString;
>> 
>>   // ¸ðµå¿¡µû¸¥ SQL ±¸¹®»ý¼º
>>   case MODETYPE of
>>     mAPPEND: // Ãß°¡ ¸ðµå½Ã
>>       begin
>>         sSQL := 'INSERT INTO TF_MOTICE(MOTICE_CD,MOTICE_NM) '+
>>                 'VALUES(' +
>>                  FORMAT('''%s''',  [TRIM(ED_MOTICE_CD.TEXT)])+  //°øÁöÄÚµå
>>                 FORMAT(',''%s''', [TRIM(sStreamVal)])+ //RI_MOTICE_NM.TEXT)])+  //°øÁö¸í
>>                 ')';
>>       end;
>>     mUPDATE: // ¼öÁ¤¸ðµå
>>       begin
>>         sSQL := 'UPDATE TF_MOTICE SET' +
>>                  FORMAT(' MOTICE_NM =''%s''', [TRIM(sStreamVal)])+  // °øÁö¸í
>>                  FORMAT(' WHERE MOTICE_CD=''%s''', [TRIM(ED_MOTICE_CD.Text)]);   // °øÁöÄÚµå
>>       end;
>>     mDELETE: // »èÁ¦¸ðµå
>>       begin
>>         if APPLICATION.MESSAGEBOX('Á¤¸»·Î »èÁ¦ ÇϽðڽÀ´Ï±î?', '»èÁ¦È®ÀÎ',
>>           MB_YESNO + MB_ICONQUESTION) <> IDYES then
>>           EXIT;
>>           sSQL := 'DELETE FROM TF_MOTICE Where ' +
>>                   'MOTICE_CD = ' + FORMAT('''%s''', [TRIM(ED_MOTICE_CD.Text)]);
>>       end;
>>   end;
>> 
>> //showmessage(sSQL);
>> //Memo1.Lines.Add(sSQL);
>> //RI_MOTICE_NM.Lines.SaveToFile('C:\12345.txt'); //<- ÅؽºÆ®·Î ÀúÀåÇϸ頹ÙÀ̳ʸ®·Î ÀúÀå µÊ
>> 
>>   // µ¿Àû QUERY »ý¼º
>>   rtVal := DM.SQL_Exec(DM.qryExec, sSQL);  // DataModule¸¦ OpenÇÑ´Ù.
>>   if not rtVal then
>>     begin
>>       case MODETYPE of
>>         mAPPEND:
>>           APPLICATION.MessageBox('°øÁö»çÇ× Å×À̺í Ãß°¡µµÁß ERROR ¹ß»ý!!!', '¿À·ù',
>>                                   MB_OK + MB_ICONINFORMATION);
>>         mUPDATE:
>>           APPLICATION.MessageBox('°øÁö»çÇ× Å×ÀÌºí ¼öÁ¤µµÁß ERROR ¹ß»ý!!!', '¿À·ù',
>>                                   MB_OK + MB_ICONINFORMATION);
>>         mDELETE:
>>           APPLICATION.MessageBox('°øÁö»çÇ× Å×ÀÌºí »èÁ¦µµÁß ERROR ¹ß»ý!!!', '¿À·ù',
>>                                   MB_OK + MB_ICONINFORMATION);
>>     end;
>>   end;
>> 
>>     sStreamVal := ss.DataString;
>>   finally
>>     SS.Free;
>>   end;
>> 
>>   // ÃʱâÈ­
>>   DM.SQL_OPEN(QR_MOTICE, startSQL);
>>   CHECKNUM(SENDER);
>>   ACTIVECONTROL:=RI_Motice_NM;
>> end;
>> 
>> // ¸®Ä¡¿¡µðÅÍ¿¡ ºí·°À¸·Î ±Û²Ã°ú »ö»ó Å©±â ÆùÆ® ³Ö±â
>> procedure TMotice_F.Btn_Font1Click(Sender: TObject);
>> begin
>>   if RI_Motice_NM.SelLength > 0 then
>>     begin
>>       FontDialog1.Font.Assign(RI_Motice_NM.DefAttributes);
>>       if FontDialog1.Execute then
>>         RI_Motice_NM.SelAttributes.Assign(FontDialog1.Font);
>>     end;
>> end;
>> 
>> end.