線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:994
推到 Plurk!
推到 Facebook!

function 內的Tquery無法create

答題得分者是:cmf
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-12 22:16:02 IP:61.30.xxx.xxx 未訂閱
請問我把以下的code寫在function內 Debug時qry明明=Nil但是就是無法Create 然後就當了 function TForm1.keyf1(i_sqlstr,i_db,i_key:string):TDataSource; var qry :TQuery; Ds :TDataSource; begin try if qry <>nil then qry :=TQuery.Create(Self ); -->就是這段一直無法跑到 qry.SQL.Clear ; qry.SQL.Add(i_sqlstr '''' i_key '%' ''''); qry.DatabaseName :=i_db ; qry.Open ; if Ds <>nil then Ds :=TDatasource.Create(Application.Owner ); Ds.DataSet:=qry; finally // qry.Free ; // Ds.Free ; end; Result:=Ds; end; button去呼叫 procedure TForm1.Button1Click(Sender: TObject); var i_str :string; begin i_str:='select key1 代碼 ,key2 中文 from ac where key1 like '; try Form2:= TForm2.Create(Self); Form2.DBGrid1.DataSource :=keyf1(i_str,'wdata','key1'); if form2.ShowModal = MrOk then begin Edit1.text:= Form2.DBGrid1.Fields[1].AsString; end; finally Form2.Free; end; end;
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-12 22:32:33 IP:61.70.xxx.xxx 未訂閱
引言: 請問我把以下的code寫在function內 Debug時qry明明=Nil但是就是無法Create 然後就當了 function TForm1.keyf1(i_sqlstr,i_db,i_key:string):TDataSource; var qry :TQuery; Ds :TDataSource; begin try if assigned(qry)=FALSE then qry:=TQuery.Create(Self ); qry.SQL.Clear ; qry.SQL.Add(i_sqlstr + ''''+i_key+'%'+''''); qry.DatabaseName :=i_db ; qry.Open ; if Assigned(Ds)=FALSE then Ds :=TDatasource.Create(Application.Owner ); Ds.DataSet:=qry; finally // qry.Free ; // Ds.Free ; end; Result:=Ds; end; button去呼叫 procedure TForm1.Button1Click(Sender: TObject); var i_str :string; begin i_str:='select key1 代碼 ,key2 中文 from ac where key1 like '; try Form2:= TForm2.Create(Self); Form2.DBGrid1.DataSource :=keyf1(i_str,'wdata','key1'); if form2.ShowModal = MrOk then begin Edit1.text:= Form2.DBGrid1.Fields[1].AsString; end; finally Form2.Free; end; end;
------
︿︿
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-12 22:32:54 IP:61.30.xxx.xxx 未訂閱
還有我把Ds 和 qry 宣告改成private就變成 if DS<> nil then ..... Datasource不create 請問世為什麼???
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-12 22:34:49 IP:61.30.xxx.xxx 未訂閱
請問為什麼不能用 Nil判斷呢???
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-12 22:38:41 IP:61.70.xxx.xxx 未訂閱
引言: 請問為什麼不能用 Nil判斷呢???
NIL=空的 if qry=nil then qry :=TQuery.Create(Self ); if Ds=nil then Ds :=TDatasource.Create(Application.Owner );
------
︿︿
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-01-12 22:47:07 IP:61.30.xxx.xxx 未訂閱
奇怪不寫成function為什麼發現不到這各錯
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-01-12 22:51:06 IP:61.70.xxx.xxx 未訂閱
引言: 奇怪不寫成function為什麼發現不到這各錯
不知道你在說什摸?????
------
︿︿
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-01-12 23:31:22 IP:61.30.xxx.xxx 未訂閱
引言:
引言: 奇怪不寫成function為什麼發現不到這各錯
不知道你在說什摸?????
我的意思是說如果把function那段程式碼寫在 button內不使用function 那tquery.create那段會執行到,很奇怪
系統時間:2024-05-13 2:26:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!