全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:971
推到 Plurk!
推到 Facebook!

function 開啟DBGrid的問題

答題得分者是:deity
figo
初階會員


發表:47
回覆:70
積分:28
註冊:2004-12-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-07 12:36:05 IP:202.175.xxx.xxx 未訂閱
請問這個function的定有沒有錯?錯又如何改正?謝謝! 這個function主要是通過a來開啟DBGrid.
function sqlresult(s:string):boolean;
var a:string;
begin
 result:=false;
 with form1.Query2 do
  begin
    close;
    sql.Text :='a';
    open;
  end;
  result:=true;
end;    
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-07 13:15:27 IP:210.65.xxx.xxx 未訂閱
Hi Figo,    應該是傳入 SQL Command 來開啟 Query 吧!
function sqlresult(s:string):boolean;
  begin
    with Query1 do
      begin
        close;
        sql.Text := s;
        try
          open;
          result:=true;
        except
          result := false;
        end;
      end;
  end;
發表人 -
------
Fishman
figo
初階會員


發表:47
回覆:70
積分:28
註冊:2004-12-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-07 14:14:04 IP:202.175.xxx.xxx 未訂閱
HI fishman 你好! 在調用時報錯...請問是否用得不恰當 QRLabel19.Caption := sqlresult('select container_id from mhsodcnt where sorder_id=' QuotedStr(Form1.DBGrid1.DataSource.DataSet.Fieldbyname('sorder_id').AsString)); ''incompatible types:'string' and 'boolean'''
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-07 16:13:46 IP:218.15.xxx.xxx 未訂閱
引言: HI fishman 你好! 在調用時報錯...請問是否用得不恰當 QRLabel19.Caption := sqlresult('select container_id from mhsodcnt where sorder_id=' QuotedStr(Form1.DBGrid1.DataSource.DataSet.Fieldbyname('sorder_id').AsString)); ''incompatible types:'string' and 'boolean'''
figo您好: 因为您的函数返回的Boolean值,而您所需的是string,所以会报错,您可修改如下,试试:
function sqlresult(s:string):string;
begin
    with Query1 do
      begin
        close;
        sql.Text := s;
        try
          open;
          result:=Query1.fieldbyname('container_id ').asstring;
        except
          free;
        end;
      end;
  end;
调用:
 QRLabel19.Caption :=sqlresult('select container_id from mhsodcnt where sorder_id=' QuotedStr(Form1.DBGrid1.DataSource.DataSet.Fieldbyname('sorder_id').AsString));
不过好像这样子调用作用不是很大< >试试看吧< > ~~~静心养德~~~ 發表人 - deity 於 2005/01/07 16:16:44
figo
初階會員


發表:47
回覆:70
積分:28
註冊:2004-12-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-07 16:52:32 IP:202.175.xxx.xxx 未訂閱
hi deity 你好!    function sqlresult(s,a:string):string; begin     with Query1 do       begin         close;         sql.Text := s;         try           open;           result:=Query1.fieldbyname('a').asstring;         except           free;         end;       end;   end;
引言:
這樣定議能否成立...
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-07 17:03:52 IP:218.15.xxx.xxx 未訂閱
引言: hi deity 你好!
function sqlresult(s,a:string):string;
begin
    with Query1 do
      begin
        close;
        sql.Text := s;
        try
          open;
          result:=Query1.fieldbyname('a').asstring;
        except
          free;
        end;
      end;
  end;
這樣定議能否成立...
成是成立,不过,得注意因为您所要返回的字段(a)的字段值,是由s里给定的,两者是相互统一的。 result:=Query1.fieldbyname('a').asstring; result:=Query1.fieldbyname(a).asstring; 不用加点,因a本就是string; 另代码前后加上[code]……您的代码……[/code]进行缩排,这样方便阅读
~~~静心养德~~~
figo
初階會員


發表:47
回覆:70
積分:28
註冊:2004-12-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-07 17:45:17 IP:202.175.xxx.xxx 未訂閱
function TForm2.sqlresult(s,a: string): string; begin   with form1.Query2 do   begin     close;     sql.Text := s;     try       open;  按f9 出錯在這---> result := form1.Query2.fieldbyname(a).asstring;     except       free;     end;   end; end;      s := 'select * from mhsodcnt where sorder_id=' +  QuotedStr(Form1.DBGrid1.DataSource.DataSet. Fieldbyname('sorder_id').AsString);     a :=QuotedStr('container_id');     QRLabel2.Caption := sqlresult(s,a); 
 
 
 
 
a :=QuotedStr('container_id');<---是否這里出錯呢... 由於第一次寫function..有很多地方不明白.. 要deity給我改正..謝謝!
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-01-07 20:58:42 IP:219.129.xxx.xxx 未訂閱
引言:
 
function TForm2.sqlresult(s,a: string): string;
begin
  with form1.Query2 do
  begin
    close;
    sql.Text := s;
    try
      open;
 按f9 出錯在這---> result := form1.Query2.fieldbyname(a).asstring;
    except
      free;
    end;
  end;
end;      s := 'select * from mhsodcnt where sorder_id='   
QuotedStr(Form1.DBGrid1.DataSource.DataSet.
Fieldbyname('sorder_id').AsString);
    a :=QuotedStr('container_id');
    QRLabel2.Caption := sqlresult(s,a); 
a :=QuotedStr('container_id');<---是否這里出錯呢...正是这里出错,直接写a:='container_id';即可,a这里表示表里的一个字段 由於第一次寫function..有很多地方不明白..慢慢来,想信您会成功的 要 > 另在代码加>[>] >[/>] < face="Verdana, Arial, Helvetica"> ~~~静心养德~~~
系統時間:2024-05-19 10:39:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!