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列不存在!应该就是这样呀!
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列不存在!应该就是这样呀!
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;
query.FieldByName('字段名').asString; //as类型
或
Query.Fields[0].Asstring; //0=第一个字段我不知道还有没有其他方法。query2['count']——没什么意义
query2.SQL.Text:='select count(jh) as count from '+combobox1.Text+'';
query2.Open;
edit4.Text:=query2['count'];