看看这些代码:
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;
Edit3: TEdit;
DBGrid1: TDBGrid;
ComboBox1: TComboBox;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
s,s1:TdateTime;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin
if combobox1.text='' then
begin
showmessage('请选择数据表');
exit;
end
else
begin
s:=strtodatetime(edit1.Text);
s1:=strtodatetime(edit2.Text);
query1.SQL.Text:='select * from '''+combobox1.text+''' where csrq>='''+s+''' and csrq<='''+s1+'''';
query1.ExecSQL;
Query1.Close;end;
为什么老出现如此结果:
[Error] Unit1.pas(47): Incompatible types: 'String' and 'TDateTime'
[Error] Unit1.pas(47): Incompatible types我应该怎么解决!!!各位高手赐教!!!
end;end.
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;
Edit3: TEdit;
DBGrid1: TDBGrid;
ComboBox1: TComboBox;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
s,s1:TdateTime;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin
if combobox1.text='' then
begin
showmessage('请选择数据表');
exit;
end
else
begin
s:=strtodatetime(edit1.Text);
s1:=strtodatetime(edit2.Text);
query1.SQL.Text:='select * from '''+combobox1.text+''' where csrq>='''+s+''' and csrq<='''+s1+'''';
query1.ExecSQL;
Query1.Close;end;
为什么老出现如此结果:
[Error] Unit1.pas(47): Incompatible types: 'String' and 'TDateTime'
[Error] Unit1.pas(47): Incompatible types我应该怎么解决!!!各位高手赐教!!!
end;end.
s1:=edit2.Text;就可以了。不用转化类型
s:=strtodatetime(edit1.Text);
s1:=strtodatetime(edit2.Text);
query1.SQL.Text:='select * from '''+combobox1.text+''' where csrq>='''+DatetimetoStr(s)+''' and csrq<='''+DatetimetoStr(s1)+'''';
query1.ExecSQL;
Query1.Close;
或者
query1.SQL.Text:='select * from '''+combobox1.text+''' where csrq>='''+Edit1.Tex+''' and csrq<='''+Edit2.Text+'''';
s和s1都是DATETIME ,不是STRING,错误简化为
var l_string:string;
l_string:=s(DATETIME型) 中的错误
s1:=strtodatetime(edit2.Text);
query1.SQL.Text:='select * from '+combobox1.text+ ' where csrq between :ss and :tt';
query1.ParamByName('ss').asdate:= s;
query1.ParamByName('tt').asdate:= s1
query1.ExecSQL;
Query1.Close;
query1.ParamByName('tt').asdate:= strtodate(edit2.Text);