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

请教一个动态SQL语句编程的问题

尚未結案
zzmbeyond01
中階會員


發表:98
回覆:167
積分:53
註冊:2003-09-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-04 14:31:33 IP:218.70.xxx.xxx 未訂閱
各位大大: 请教一个动态SQL语句编程的问题。 我有两个表: A表 字段 ZLH03 B表 字段 DH02, ZLH03(外键) A与B是一对多的关系。    我要实现的功能是:    Listbox中存放ZLH03的值,在treeview中以所选的ZLH03的值为根节点,对应的DH02值为子节点。   比如当我在listbox中点击字段ZLH03的值1时,实现在treeview中显示以1为根节点,相对应的DH02的值为子节点。    现遇到问题是,当我无论点击listbox中的那个值,显示的dh02的结果都一样,好像在我得adoquery控件中的动态参数,没起作用一样。    FH_FDQuery连接的B表,sql为select t.dh02 from B t where zlh03 =:ZLH03     
 procedure TDataBGForm.ZLDBListBoxClick(Sender: TObject);
var
  i: Integer;
  s: string;
begin
  i := ZLDBListbox.ItemIndex;
  if i <= 0 then
    exit;
  s := ZLDBListBox.Items.Strings[i];
  UpdateTreeview(s);
end;    //在treeview中以所选的ZLH03的值为根节点,对应的DH02值为子节点
procedure TDataBGForm.UpdateTreeview(ZLH: string);
var
  root: TTreeNode;
  temp: string;
begin
  FH_FDTreeview.Items.Clear;
  root := FH_FDTreeview.Items.Add(nil, ZLH); //以选择的zlh值为根节点      
DataBGDM.FH_FDQuery.Parameters.ParamByName('ZLH03').Value := ZLH;
感觉应该是这的问题,或者是adoquery的sql那里写的不对      showmessage(DataBGDM.FH_FDQuery.Parameters.ParamByName('ZLH03').Value); //显示zlh03的值
  showmessage(DataBGDM.FH_FDQuery.SQL.CommaText); //显示sql语法      with DataBGDM.FH_FDQuery do
  begin
    Prepared := true;
    open;
    //把DH02中的值添加到树,作为ZLH03的子节点
    First;
    while not DataBGDM.FH_FDQuery.Eof do
    begin
      temp := DataBGDM.FH_FDQuery.Fields.DataSet.FieldValues['DH02'];
      FH_FDTreeView.Items.AddChild(root,  TEMP);
      DataBGDM.FH_FDQuery.Fields.DataSet.Next
    end;
    prepared := false;
    Close;
  end;
end;          
谢谢! 發表人 - zzmbeyond01 於 2004/03/04 14:43:41
zzmbeyond01
中階會員


發表:98
回覆:167
積分:53
註冊:2003-09-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-04 20:54:47 IP:218.70.xxx.xxx 未訂閱
我知道了,把adoquery换成adodataset就好了
系統時間:2024-09-09 17:52:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!