unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, QuickRpt, QRCtrls,
  ExtCtrls, DBCtrls;type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    Query1: TQuery;
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    DBGrid1: TDBGrid;
    ComboBox1: TComboBox;
    Edit3: TEdit;
    DataSource2: TDataSource;
    Query2: TQuery;
    BatchMove1: TBatchMove;
    DataSource3: TDataSource;
    Table1: TTable;
    Edit4: TEdit;
    procedure Button1Click(Sender: TObject);
    //procedure Button2Click(Sender: TObject);  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;
  movedcount:longint;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin
if combobox1.text='' then
begin
 showmessage('请选择数据表');
 exit;
end
else
begin
query1.Close;
query1.SQL.Text:='select * from '+combobox1.text+' where csrq >= :date1 and csrq <= :date2';
query1.parambyname('date1').asdatetime := strtodatetime(edit1.Text);
query1.parambyname('date2').asdatetime := strtodatetime(edit2.Text);
query1.Open;
batchmove1.Destination.TableName:=combobox1.Text;
batchmove1.Execute;
edit3.Text:=inttostr(movedcount);
query2.Close;
query2.SQL.Text:='select count(jh) from '+combobox1.Text+'';
query2.Open;
edit4.Text:=query2['count'];end;
end;end.
为什么老是提示表中count列不存在!应该就是这样呀!

解决方案 »

  1.   

    这里的字段名不是count所以肯定错了,好象是count(jh)吧,所以你可以这样Query2.Fields[0].AsString;
      

  2.   

    方案2:
    query2.Close;
    query2.SQL.Text:='select count(jh) iNum from '+combobox1.Text+''; //Oracle
    //query2.SQL.Text:='select count(jh) as iNum from '+combobox1.Text+''; //SQLServer
    query2.Open;
    edit4.Text:=query2.FieldByName('inum').AsString;
      

  3.   

    想要取得字段值只能通过
    query.FieldByName('字段名').asString; //as类型

    Query.Fields[0].Asstring; //0=第一个字段我不知道还有没有其他方法。query2['count']——没什么意义
      

  4.   

    同意  haoco(程序员) ,你的SQL语句中更本就没有'count'字段被选择,所以出错
      

  5.   

    要用别名
    query2.SQL.Text:='select count(jh) as count from '+combobox1.Text+'';
    query2.Open;
    edit4.Text:=query2['count'];