本帖最后由 wlxjb 于 2010-04-22 10:40:47 编辑

解决方案 »

  1.   

    这两句分别是关闭数据集和打开,你还要在中间加一个:ADODATASET.SQL.Clear;
    而且你这样写不合理,应该这样:
    if radioButton1.Checked then
    sql:='select * from ......'
    else 
    if radiobutton2.checked then
    sql:='.....'
    else
    if radioButton3.checked then
    sql:='......';AdoDataSet.close;
    AdoDataSet.sql.clear;
    AdoDataSet.sql.add(sql);
    AdoDataSet.open;
      

  2.   

    如果不想修改的话,把DBGRID里的readOnly设为 true就可以,
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if RadioButton1.Checked then
      sql :=  'SELECT * form.............'
    else
      if RadioButton2.Checked then
     sql :=  'SELECT * FROM ......'
    else
      IF RadioButton3.Checked then
    sql:=  'SELECT * FROM .......';AdoDataSet1.close;
    AdoDataSet1.sql.clear;
    AdoDataSet1.sql.add(sql);
    AdoDataSet1.open;
    end;这样编译时,指明 SQL:='SELECT * form.......' 的SQL 标识未指明?
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if RadioButton1.Checked then
      ADODataSet1.CommandText := 'SELECT * form.............'
    else
      if RadioButton2.Checked then
      ADODataSet1.CommandText:= 'SELECT * FROM ......'
    else
      IF RadioButton3.Checked then
      ADODataSet1.CommandText:= 'SELECT * FROM .......';
    //下面这几天怎么写啊,如果这样写,代码就编译不过啊.
    AdoDataSet1.close;
    AdoDataSet1.sql.clear;
    AdoDataSet1.sql.add(sql);
    AdoDataSet1.open;
    end;