¾Æ±â»ç¶û´Ô ´äº¯ °¨»çÇÕ´Ï´Ù. ´Ô²²¼ ¸»¾¸ÇϽŠ¿¡·¯Á¤º¸¿Í 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.
|