MethodAddress 無法讀取字串_sql語法 |
尚未結案
|
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
各位大大:
D6+MSSQL2000 type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
ComboBox1: TComboBox;
adoInSert: TADOQuery;
procedure BitBtn1Click(Sender: TObject);
procedure aa;
procedure bb;
procedure cc;
procedure dd;
procedure ee;
procedure ff;
private
{ Private declarations }
public
{ Public declarations }
var
Form1: TForm1; implementation uses DM; {$R *.dfm} { TForm1 } procedure TForm1.BitBtn1Click(Sender: TObject);
var
i : Word;
S,S1 : String;
m_pBatch : Procedure;
begin
for i :=0 to ComboBox1.Items.Count-1 do begin
S := ComboBox1.Items[i];
S1 := Copy(S,0,Pos('_',S)-1);
m_pBatch:= Self.MethodAddress(S1);
m_pBatch;
end; //只能執行showmessage(..),但不能執行sql之動作
{ aa;
bb;
cc;
dd;
ee;
ff;}//可執行procedure aa ...等;
end; procedure TForm1.aa;
var
SQL : String;
begin
//for i 回圈方式可執行
//showmessage('aa');
//for i 回圈方式無法執行,error圖面如下
{ SQL :='Insert into FADMXY(COMPANY,XY000,XY001,XY002,XY003)'+
' Values ('''+iMB001+''',''1'',''W101'','''+Trim(Edit1.Text)+''',:Week)';
try
adoInSert.SQL.Text := SQL;
adoInSert.Parameters.ParamByName('Week').Value := WSpinEdit.Value;
adoInSert.ExecSQL;
except
Application.MessageBox('資料發生錯誤,資料無法新增','錯誤',IDOK);
exit;
end;}
end; doll_candy
------
doll_candy |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
procedure aa;
procedure bb;
procedure cc;
procedure dd;
procedure ee;
procedure ff; 必須在宣告在 published 內 如
type TForm1 = class(TForm) BitBtn1: TBitBtn; ComboBox1: TComboBox; adoInSert: TADOQuery; procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } Published procedure aa; procedure bb; procedure cc; procedure dd; procedure ee; procedure ff; end; |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi doll_candy, 請參考 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=39987
procedure TForm1.BitBtn1Click(Sender: TObject); var i : Word; S,S1 : String; m_pBatch : Procedure; begin for i :=0 to ComboBox1.Items.Count-1 do begin S := ComboBox1.Items[i]; S1 := Copy(S,0,Pos('_',S)-1); @m_pBatch:= Self.MethodAddress(S1); if @m_pBatch <> NIL then m_pBatch end; end;發表人 -
------
Fishman |
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
Dear FishMan 大大
引言:如上方式 ,依舊出現那錯誤畫面 doll_candyprocedure TForm1.BitBtn1Click(Sender: TObject); var i : Word; S,S1 : String; m_pBatch : Procedure; begin for i :=0 to ComboBox1.Items.Count-1 do begin S := ComboBox1.Items[i]; S1 := Copy(S,0,Pos('_',S)-1); @m_pBatch:= Self.MethodAddress(S1); if @m_pBatch <> NIL then m_pBatch end; end;
------
doll_candy |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi doll_candy, 如何將檔案上傳本站?
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19268 ----------------------------------
小弟才疏學淺,若有謬誤尚請不吝指教
----------------------------------
------
Fishman |
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
引言: Hi doll_candy, 如何將檔案上傳本站? http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19268 ----------------------------------Dear Fishman 程式已上傳,但我不知結果是否有成功,也不知那才能看到我傳上去的檔案 doll_candy
------
doll_candy |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi doll_candy , Sorry !! 無 Table 可供測試,無法執行程式!
原則上應無多大問題(我指的是 class="code">
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i : Word;
S,S1 : String;
m_pBatch : procedure;
begin
for i :=0 to ComboBox1.Items.Count-1 do begin
S := ComboBox1.Items[i];
S1 := Copy(S,0,Pos('_',S)-1);
@m_pBatch:= Form1.MethodAddress(S1);
if @m_pBatch <> NIL then m_pBatch;
// m_pBatch:= Self.MethodAddress(S1);
// m_pBatch;
end;
{
W101;
W102;
M101;
M102;
Y101;
Y102;
W103;
M103;
Y103;
}
end;
Create 後,記得要 Free 掉
procedure TForm1.Chk_FCMSDT; var SQL : String; Q3 : TADOQuery; begin Q3 := TADOQuery.Create(Application); Q3.Connection := FDM.PUB_DS; SQL := 'select DT002 from FCMSDT' ' WHERE DT003 <=''' m_sYMD ''' AND DT004 >=''' m_sYMD ''''; Q3.SQL.Text := SQL; Q3.Prepared := True; Q3.Open; m_iWeek := Q3.FieldByName('DT002').Value; Q3.Close; Q3.Free; end; procedure TForm1.Index; var SQL : String; Q3 : TADOQuery; i : Word; begin Q3 := TADOQuery.Create(Application); Q3.Connection := FDM.PUB_DS; SQL :=' Select * from FCMSFL' ' WHERE FL000 IN (''40'',''41'',''42'')'; Q3.SQL.Text := SQL; Q3.Prepared := True; Q3.Open; for i:=0 to Q3.RecordCount-1 do begin ComboBox1.Items.Add(Trim(Q3.FieldByName('FL001').Value) '_' Trim(Q3.FieldByName('FL002').Value)); Q3.Next; end; ComboBox1.ItemIndex := 0; Q3.Close; Q3.Free; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi doll_candy, 抱歉,耽誤你許多時間
請參考
< href="http://delphi.ktop.com.tw/topic.php?TOPIC_ID=40505">http://delphi.ktop.com.tw/topic.php?TOPIC_ID=40505 將程式碼更改為
unit MAIN; ..... type TMyPorcdure = procedure (Sender: TObject) of Object; TForm1 = class(TForm) ..... procedure TForm1.Button2Click(Sender: TObject); var m : TMyPorcdure; p : Pointer; i : Word; S,S1 : String; begin for i :=0 to ComboBox1.Items.Count-1 do begin S := ComboBox1.Items[i]; S1 := Copy(S,0,Pos('_',S)-1); p := MethodAddress(s1); if p <> NIL then begin TMethod(m).Code := p; TMethod(m).Data := Self; m(Sender); end else raise Exception.CreateFmt('Procedure %s not exists',[s]); end; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
引言: 將程式碼更改為unit MAIN; ..... type TMyPorcdure = procedure (Sender: TObject) of Object; TForm1 = class(TForm) ..... procedure TForm1.Button2Click(Sender: TObject); var m : TMyPorcdure; p : Pointer; i : Word; S,S1 : String; begin for i :=0 to ComboBox1.Items.Count-1 do begin S := ComboBox1.Items[i]; S1 := Copy(S,0,Pos('_',S)-1); p := MethodAddress(s1); if p <> NIL then begin TMethod(m).Code := p; TMethod(m).Data := Self; m(Sender); end else raise Exception.CreateFmt('Procedure %s not exists',[s]); end; end;>>< face="Verdana, Arial, Helvetica"> Dear Fishman 感謝您大力幫助,真是了了一件大事; doll_candy
------
doll_candy |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |