無法發mail第二次!再同一from上 |
答題得分者是:hagar
|
stevenyehs
一般會員 發表:12 回覆:11 積分:4 註冊:2004-06-09 發送簡訊給我 |
我在新增一筆資料後會發mail給使用者,第一次可以成功
但是在新增第二筆時就會出現錯誤訊息,如下:
---------------------------
Debugger Exception Notification
---------------------------
Project MFG.exe raised exception class EAccessViolation with message 'Access violation at address 00404624 in module 'MFG.EXE'. Read of address FFFFFFFF'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
但是若是跳出程式,再進去一次,就能發mail成功,但是一樣無法發第二次.
但資料庫有寫進去.
以下是我的程式片斷:
with IdMessage1 do
begin
From.Address:='SYSTEM@EPISIL.COM';
From.Name:='無塵衣系統'; //自動產生成name
------
Delphi 初學者 |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
stevenyehs
一般會員 發表:12 回覆:11 積分:4 註冊:2004-06-09 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
stevenyehs
一般會員 發表:12 回覆:11 積分:4 註冊:2004-06-09 發送簡訊給我 |
unit uMFGM01; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls, DB, DBTables, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP; type TfmMFGM01 = class(TForm) Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; Panel4: TPanel; Panel5: TPanel; Label1: TLabel; Panel6: TPanel; Label2: TLabel; Label4: TLabel; Label5: TLabel; BitBtn1: TBitBtn; BitBtn3: TBitBtn; BitBtn4: TBitBtn; Button1: TButton; Label7: TLabel; Label3: TLabel; Label6: TLabel; Label8: TLabel; Label9: TLabel; ComboBox1: TComboBox; ComboBox2: TComboBox; ComboBox3: TComboBox; ComboBox4: TComboBox; ComboBox5: TComboBox; Edit1: TEdit; Edit2: TEdit; QRYEMP: TQuery; qryEMPID: TQuery; qryEMPNAME: TQuery; Label10: TLabel; Label11: TLabel; qryIns: TQuery; qryUpdate: TQuery; Timer1: TTimer; DBGrid1: TDBGrid; DataSource1: TDataSource; qryCLOTHES: TQuery; qryDel: TQuery; BitBtn2: TBitBtn; QRYEMPEMPNO: TStringField; QRYEMPCNAME: TStringField; QRYEMPDEPT: TStringField; qryDEPT: TQuery; qryDEPTDEPT: TStringField; qryCLOTHESEMPNO: TStringField; qryCLOTHESNAME: TStringField; qryCLOTHESDEPTNO: TStringField; qryCLOTHESCLASSES: TStringField; qryCLOTHESTALL: TStringField; qryCLOTHESWEIGHT: TStringField; qryCLOTHESREMARK: TStringField; IdSMTP1: TIdSMTP; IdMessage1: TIdMessage; Label12: TLabel; Edit3: TEdit; QRYEMPDEPTNAME: TStringField; qryCLOTHESDEPTNAME: TStringField; qryCLOTHESSYSTIME: TIntegerField; procedure FormCreate(Sender: TObject); procedure ComboBox1DropDown(Sender: TObject); procedure ComboBox2DropDown(Sender: TObject); procedure ComboBox3DropDown(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ComboBox1Select(Sender: TObject); procedure ComboBox2KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure BitBtn1Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure DBGrid1CellClick(Column: TColumn); procedure ComboBox2Select(Sender: TObject); private { Private declarations } public { Public declarations } end; var fmMFGM01: TfmMFGM01; implementation {$R *.dfm} procedure TfmMFGM01.FormCreate(Sender: TObject); begin qryCLOTHES.CLOSE; qryCLOTHES.Open; end; procedure TfmMFGM01.ComboBox1DropDown(Sender: TObject); begin QRYEMP.Close; QRYEMP.Open; COMBOBOX1.Clear; while not QRYEMP.Eof do begin COMBOBOX1.Items.Add(QRYEMPEMPNO.AsString); QRYEMP.Next; end; QRYEMP.Close; end; procedure TfmMFGM01.ComboBox2DropDown(Sender: TObject); begin QRYEMP.Close; QRYEMP.Open; COMBOBOX2.Clear; // COMBOBOX2.Items.Add('ALL'); while not QRYEMP.Eof do begin COMBOBOX2.Items.Add(QRYEMPCNAME.AsString); QRYEMP.Next; end; QRYEMP.Close; // COMBOBOX2.ItemIndex := 0; // COMBOBOX2.Text := COMBOBOX2.Items[0]; end; procedure TfmMFGM01.ComboBox3DropDown(Sender: TObject); begin qryDEPT.Close; qryDEPT.Open; COMBOBOX3.Clear; while not qryDEPT.Eof do begin COMBOBOX3.Items.Add(qryDEPTDEPT.AsString); qryDEPT.Next; end; qryDEPT.Close; end; procedure TfmMFGM01.BitBtn3Click(Sender: TObject); begin CLOSE; end; procedure TfmMFGM01.Button1Click(Sender: TObject); begin COMBOBOX1.CLEAR; COMBOBOX2.CLEAR; COMBOBOX3.CLEAR; EDIT1.Clear; EDIT2.Clear; edit3.Clear; COMBOBOX4.ItemIndex := 0; COMBOBOX4.Text := COMBOBOX4.Items[0]; COMBOBOX5.ItemIndex := 0; COMBOBOX5.Text := COMBOBOX5.Items[0]; end; procedure TfmMFGM01.ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key in [13]) then begin qryEMPID.close; qryEMPID.ParamByName('empno').asstring:=combobox1.text; qryEMPID.open; combobox2.Text:=qryEMPID.Fieldbyname('CNAME').asString; combobox3.text:=qryEMPID.Fieldbyname('DEPT').asString; EDIT3.Text:=qryEMPID.Fieldbyname('DEPTNAME').asString; END end; procedure TfmMFGM01.ComboBox1Select(Sender: TObject); begin qryEMPID.close; qryEMPID.ParamByName('empno').asstring:=combobox1.text; qryEMPID.open; combobox2.Text:=qryEMPID.Fieldbyname('CNAME').asString; combobox3.text:=qryEMPID.Fieldbyname('DEPT').asString; EDIT3.Text:=qryEMPID.Fieldbyname('DEPTNAME').asString; end; procedure TfmMFGM01.ComboBox2KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key in [13]) then begin qryEMPNAME.close; qryEMPNAME.ParamByName('cname').asstring:=combobox2.text; qryEMPNAME.open; combobox1.Text:=qryEMPNAME.Fieldbyname('EMPNO').asString; combobox3.text:=qryEMPNAME.Fieldbyname('DEPT').asString; EDIT3.text:=qryEMPNAME.Fieldbyname('DEPTNAME').asString; END end; procedure TfmMFGM01.BitBtn1Click(Sender: TObject); begin If combobox1.Text<>'' then begin if qryCLOTHES.Locate('EMPNO',combobox1.Text,[]) then begin SHOWMESSAGE('此工號已申請過,請聯絡支援課人員'); end else begin qryIns.Close; qryIns.ParamByName('empno').AsString:=combobox1.Text; qryIns.ParamByName('name').AsString:=combobox2.Text; qryIns.ParamByName('deptno').AsString:=combobox3.Text; qryIns.ParamByName('deptname').AsString:=EDIT3.Text; qryIns.ParamByName('classes').Asstring:=combobox4.Text; qryIns.ParamByName('tall').AsString:=edit1.Text; qryIns.ParamByName('weight').AsString:=edit2.Text; qryIns.ParamByName('REMARK').AsString:=combobox5.Text; qryIns.ExecSQL; //寄email出去 with IdMessage1 do begin From.Address:='SYSTEM@EPISIL.COM'; From.Name:='無塵衣系統'; //自動產生成name以上是我整支程式的內容. 感謝您的協助!
------
Delphi 初學者 |
stevenyehs
一般會員 發表:12 回覆:11 積分:4 註冊:2004-06-09 發送簡訊給我 |
unit uMFGM01; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls, DB, DBTables, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP; type TfmMFGM01 = class(TForm) Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; Panel4: TPanel; Panel5: TPanel; Label1: TLabel; Panel6: TPanel; Label2: TLabel; Label4: TLabel; Label5: TLabel; BitBtn1: TBitBtn; BitBtn3: TBitBtn; BitBtn4: TBitBtn; Button1: TButton; Label7: TLabel; Label3: TLabel; Label6: TLabel; Label8: TLabel; Label9: TLabel; ComboBox1: TComboBox; ComboBox2: TComboBox; ComboBox3: TComboBox; ComboBox4: TComboBox; ComboBox5: TComboBox; Edit1: TEdit; Edit2: TEdit; QRYEMP: TQuery; qryEMPID: TQuery; qryEMPNAME: TQuery; Label10: TLabel; Label11: TLabel; qryIns: TQuery; qryUpdate: TQuery; Timer1: TTimer; DBGrid1: TDBGrid; DataSource1: TDataSource; qryCLOTHES: TQuery; qryDel: TQuery; BitBtn2: TBitBtn; QRYEMPEMPNO: TStringField; QRYEMPCNAME: TStringField; QRYEMPDEPT: TStringField; qryDEPT: TQuery; qryDEPTDEPT: TStringField; qryCLOTHESEMPNO: TStringField; qryCLOTHESNAME: TStringField; qryCLOTHESDEPTNO: TStringField; qryCLOTHESCLASSES: TStringField; qryCLOTHESTALL: TStringField; qryCLOTHESWEIGHT: TStringField; qryCLOTHESREMARK: TStringField; IdSMTP1: TIdSMTP; IdMessage1: TIdMessage; Label12: TLabel; Edit3: TEdit; QRYEMPDEPTNAME: TStringField; qryCLOTHESDEPTNAME: TStringField; qryCLOTHESSYSTIME: TIntegerField; procedure FormCreate(Sender: TObject); procedure ComboBox1DropDown(Sender: TObject); procedure ComboBox2DropDown(Sender: TObject); procedure ComboBox3DropDown(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ComboBox1Select(Sender: TObject); procedure ComboBox2KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure BitBtn1Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure DBGrid1CellClick(Column: TColumn); procedure ComboBox2Select(Sender: TObject); private { Private declarations } public { Public declarations } end; var fmMFGM01: TfmMFGM01; implementation {$R *.dfm} procedure TfmMFGM01.FormCreate(Sender: TObject); begin qryCLOTHES.CLOSE; qryCLOTHES.Open; end; procedure TfmMFGM01.ComboBox1DropDown(Sender: TObject); begin QRYEMP.Close; QRYEMP.Open; COMBOBOX1.Clear; while not QRYEMP.Eof do begin COMBOBOX1.Items.Add(QRYEMPEMPNO.AsString); QRYEMP.Next; end; QRYEMP.Close; end; procedure TfmMFGM01.ComboBox2DropDown(Sender: TObject); begin QRYEMP.Close; QRYEMP.Open; COMBOBOX2.Clear; // COMBOBOX2.Items.Add('ALL'); while not QRYEMP.Eof do begin COMBOBOX2.Items.Add(QRYEMPCNAME.AsString); QRYEMP.Next; end; QRYEMP.Close; // COMBOBOX2.ItemIndex := 0; // COMBOBOX2.Text := COMBOBOX2.Items[0]; end; procedure TfmMFGM01.ComboBox3DropDown(Sender: TObject); begin qryDEPT.Close; qryDEPT.Open; COMBOBOX3.Clear; while not qryDEPT.Eof do begin COMBOBOX3.Items.Add(qryDEPTDEPT.AsString); qryDEPT.Next; end; qryDEPT.Close; end; procedure TfmMFGM01.BitBtn3Click(Sender: TObject); begin CLOSE; end; procedure TfmMFGM01.Button1Click(Sender: TObject); begin COMBOBOX1.CLEAR; COMBOBOX2.CLEAR; COMBOBOX3.CLEAR; EDIT1.Clear; EDIT2.Clear; edit3.Clear; COMBOBOX4.ItemIndex := 0; COMBOBOX4.Text := COMBOBOX4.Items[0]; COMBOBOX5.ItemIndex := 0; COMBOBOX5.Text := COMBOBOX5.Items[0]; end; procedure TfmMFGM01.ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key in [13]) then begin qryEMPID.close; qryEMPID.ParamByName('empno').asstring:=combobox1.text; qryEMPID.open; combobox2.Text:=qryEMPID.Fieldbyname('CNAME').asString; combobox3.text:=qryEMPID.Fieldbyname('DEPT').asString; EDIT3.Text:=qryEMPID.Fieldbyname('DEPTNAME').asString; END end; procedure TfmMFGM01.ComboBox1Select(Sender: TObject); begin qryEMPID.close; qryEMPID.ParamByName('empno').asstring:=combobox1.text; qryEMPID.open; combobox2.Text:=qryEMPID.Fieldbyname('CNAME').asString; combobox3.text:=qryEMPID.Fieldbyname('DEPT').asString; EDIT3.Text:=qryEMPID.Fieldbyname('DEPTNAME').asString; end; procedure TfmMFGM01.ComboBox2KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key in [13]) then begin qryEMPNAME.close; qryEMPNAME.ParamByName('cname').asstring:=combobox2.text; qryEMPNAME.open; combobox1.Text:=qryEMPNAME.Fieldbyname('EMPNO').asString; combobox3.text:=qryEMPNAME.Fieldbyname('DEPT').asString; EDIT3.text:=qryEMPNAME.Fieldbyname('DEPTNAME').asString; END end; procedure TfmMFGM01.BitBtn1Click(Sender: TObject); begin If combobox1.Text<>'' then begin if qryCLOTHES.Locate('EMPNO',combobox1.Text,[]) then begin SHOWMESSAGE('此工號已申請過,請聯絡支援課人員'); end else begin qryIns.Close; qryIns.ParamByName('empno').AsString:=combobox1.Text; qryIns.ParamByName('name').AsString:=combobox2.Text; qryIns.ParamByName('deptno').AsString:=combobox3.Text; qryIns.ParamByName('deptname').AsString:=EDIT3.Text; qryIns.ParamByName('classes').Asstring:=combobox4.Text; qryIns.ParamByName('tall').AsString:=edit1.Text; qryIns.ParamByName('weight').AsString:=edit2.Text; qryIns.ParamByName('REMARK').AsString:=combobox5.Text; qryIns.ExecSQL; //寄email出去 with IdMessage1 do begin From.Address:='SYSTEM@EPISIL.COM'; From.Name:='無塵衣系統'; //自動產生成name以上是我整支程式的內容. 感謝您的協助!
------
Delphi 初學者 |
stevenyehs
一般會員 發表:12 回覆:11 積分:4 註冊:2004-06-09 發送簡訊給我 |
可是要安裝在Delphi6時,
Complier會出現 "Remove IdAntiFreeze" 這個訊息,
按OK後,做Install時,會出現錯誤訊息,
好像是指缺少 IdAntiFreeze 這個物件
我檢查過後目錄下有這個物件. 我有按照版主的步驟做:
Indy 9.00.10 安裝步驟:
1. 執行 Indy9_00_02_Src.EXE 安裝, 選擇安裝目錄, 如: C:\Program Files\Indy
2. Indy9_00_02_??.EXE (?? C4,C5,C6 表 BCB 4-6 , D4,D5,D6 表 Delphi 4-6)
3. 解壓 Indy9_00_03_Src.zip 到 Indy 安裝目錄
4. 解壓 IndyWin32_9_00_10_Src.zip 到 Indy 安裝目錄
5. 執行 Delphi 選 Tools-> Environment -> Library -> Library Path 加上
執行安裝目錄\Source, 如: C:\Program Files\Indy\Source
執行安裝目錄\??, 如: C:\Program Files\Indy\?? (?? 說明同上)
6. 離開 Delphi IDE 環境
7. 執行安裝目錄下的\Source\Full??.bat (?? 說明同上)
7-1:打開 dcindy??.dpk,並將它編譯完成後,才可。
8. 執行 Delphi 會看到 Indy 元件共 5 個頁面.
但是卻還是不行.
麻煩一下吧!
------
Delphi 初學者 |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
stevenyehs
一般會員 發表:12 回覆:11 積分:4 註冊:2004-06-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |