我現在在form1上用adoconnection聯接到服務器數據庫,是這樣聯接的frdbdataset->datasource->adoquery->adoconnection->服務器數據庫,然后放置了一個frreport用來設計報表,一個edit用來輸入條件,一個按鈕,我現在在adoquery中的查詢條件怎么能同edit的內容聯接起來呢?或者說如果在adoquery中用參數,這個參數要怎么同edit聯系起來呢?或者用其它的方式聯接也可以啊,我實在是想不出來怎么聯接了! 這樣在執行的事后只要在edit中輸入條件,點擊按鈕就可以查詢出符合edit條件的結果了。
在線急等,大俠們幫忙啊!
分不夠可以加!

解决方案 »

  1.   

    这样吧
      adoquery.close;
      adoquery.sql.add('select * from employee where division_no=:var1');
      adoquery.params.parambyname('var1').asstring:=self.edit1.text;
      try
        adoquery.open;
      except
      end;
      

  2.   

    adoquery.close;
      adoquery.sql.add('select * from tbl where id='''+edit1.text+'''');
      try
        adoquery.open;
      except
      end;
      

  3.   

    一。条伯字段的数值型
      adoquery.close;
      adoquery.sql.add('select * from tbl where id='+edit1.text);
      try
        adoquery.open;
      except
      end;二。条伯字段是字符型
    adoquery.close;
      adoquery.sql.add('select * from tbl where id='''+edit1.text+'''');
      try
        adoquery.open;
      except
      end;
      

  4.   

    to樓上得朋友們,
    我做這個條件查詢主要是要出報表,可是我用了你們提供得語句,在edit中輸入條件后報表什么紀錄都查不到,可是如果把where后得條件去掉報表得內容就都可以顯示出來了,是什么原因啊??我急死了
      

  5.   

    unit Main;interfaceuses
      SysUtils, Windows, Messages, Classes, Graphics, Controls,
      Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, Menus, ComCtrls, Mask,
      DBCtrls, FR_DCtrl, FR_BDEDB, FR_Class, DB, ADODB, FR_ADODB, FR_DSet,
      FR_DBSet;type
      TMainForm = class(TForm)
        PageControl1: TPageControl;
        TabSheet1: TTabSheet;
        TabSheet2: TTabSheet;
        TabSheet3: TTabSheet;
        TabSheet4: TTabSheet;
        Label1: TLabel;
        Edit1: TEdit;
        Button2: TButton;
        RichEdit1: TRichEdit;
        Memo1: TMemo;
        Memo2: TMemo;
        Button4: TButton;
        Button5: TButton;
        Button1: TButton;
        ADOConnection1: TADOConnection;
        frReport1: TfrReport;
        ADOQuery1: TADOQuery;
        DataSource1: TDataSource;
        frDBDataSet1: TfrDBDataSet;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
    private
       fpath:string;
     end;var
      MainForm: TMainForm;implementation
     
    {$r *.dfm}procedure TMainForm.Button1Click(Sender: TObject);
    begin
    fpath:=extractfilepath(paramstr(0));
    frreport1.LoadFromFile(fpath+'5.frf');
    frreport1.PrepareReport;
    frreport1.ShowPreparedReport;
    end;procedure TMainForm.FormCreate(Sender: TObject);
    begin
    adoquery1.close;
      adoquery1.sql.add('SELECT * FROM QC_INPRD WHERE class='''+edit1.Text+'''');
      try
        adoquery1.open;
      except
      end;
    end;end.
    這是所有得代碼,哪里不對啊?大俠們趕緊幫幫我啊,我著急死了
      

  6.   


      adoquery.close;
      ADOQuery.SQL.Clear;
      adoquery.sql.add('SELECT * FROM QC_INPRD WHERE class=:var1');
      adoquery.params.parambyname('var1').asstring:=self.edit1.text;
      try
        adoquery.open;
      except
      end;
      

  7.   

    sorry:是
     ADOQuery.Parameters.ParamByName('var1').value:=self.edit1.text
      

  8.   

    adoquery.sql.add('select * from tbl where id like '''+edit1.text+'''');
      

  9.   

    to tiexinliu(铁心刘) 
    按你說得編譯不了
      

  10.   

    adoquery.close;
      ADOQuery.SQL.Clear;
      adoquery.sql.add('SELECT * FROM QC_INPRD WHERE class=:var1');
      ADOQuery.Parameters.ParamByName('var1').value:=edit1.text;
      try
        adoquery.open;
      except
      end;
    靠,我疯了,提示什么?
      

  11.   

    to   tiexinliu(铁心刘) 
    現在又編譯好了,可是還是不能按照edit得條件查詢,是不是其它得地方須要設置什么啊,用frreport來做報表的
      

  12.   

    你的class字段是什么类型啊,这样试一下
    adoquery.close;
    ADOQuery.SQL.Clear;
    adoquery.sql.add('SELECT * FROM QC_INPRD WHERE class like %'+edit1.text+'%');
    try
     adoquery.open;
    except
    end;
      

  13.   

    to   tiexinliu(铁心刘) 
    現在的錯誤是project report.exe raised exception class EOLeException with message'Line1': Incorrect syntax near'%''.process stopped....
      

  14.   

    在procedure TMainForm.FormCreate(Sender: TObject);触发查询,那只能触发一次了.
    在edit里面输入查询条件后,一定要触发查询方法才行的.你在一个Button的OnClick里面写上面的代码,再执行试试.
      

  15.   

    TO wdong18(东东) 
    謝謝,放到button里面就實現了,非常感謝其它的朋友們,也很謝謝你們,只是沒有最終解決我的問題,所以分就少了些,見諒
      

  16.   

    你可以把这条改成这样:
    adoquery1.sql.add('SELECT * FROM QC_INPRD WHERE class='+''''+edit1.Text+'''');