一个程序当我不关闭主程序的时候,第二次运行一个搜索窗口,就报错了。为什么?
程序如下:(错误信息是general SQL error odbc from 子句语法错误请大家帮帮我)
unit query;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,data, StdCtrls, Grids, DBGrids, Buttons,report, Menus;type
TForm3 = class(TForm)
DBGrid1: TDBGrid;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit1: TEdit;
Edit4: TEdit;
Edit5: TEdit;
BitBtn1: TBitBtn;
Label9: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form3: TForm3;implementation{$R *.dfm}
procedure TForm3.BitBtn1Click(Sender: TObject);
var
querystr:string;
i:integer;
flag:integer;
begin
i:=0;
if (length(edit1.Text)<>0) or (length(ComboBox1.Text)<>0) or (length(ComboBox2.Text)<>0) or (length(edit4.Text)<>0) or (length(edit5.Text)<>0) then
begin
querystr:='select * from member where '; //'select * form member where name="monkey" ';
if length(edit1.Text)<>0 then
begin
querystr:=querystr+'name='+''''+edit1.Text+'''';
flag:=1;
end;
if length(ComboBox1.Text)<>0 then
if flag=1 then
querystr:=querystr+' and sex='+''''+ComboBox1.Text+''''
else
begin
querystr:=querystr+' sex='+''''+ComboBox1.Text+'''';
flag:=1;
end;
if length(ComboBox2.Text)<>0 then
if flag=1 then
querystr:=querystr+' and department='+''''+ComboBox2.Text+''''
else
begin
querystr:=querystr+' department='+''''+ComboBox2.Text+'''';
flag:=1;
end;
if length(edit4.Text)<>0 then
if flag=1 then
querystr:=querystr+' and class='+''''+edit4.Text+''''
else
begin
querystr:=querystr+' class='+''''+edit4.Text+'''';
flag:=1;
end;
if length(edit5.Text)<>0 then
if flag=1 then
querystr:=querystr+' and bedroom='+''''+edit5.Text+''''
else
begin
querystr:=querystr+' bedroom='+''''+edit5.Text+'''';
end;
data.Form2.Query1.Close;
data.Form2.Query1.SQL.Clear;
data.Form2.Query1.SQL.Add(querystr);
data.Form2.Query1.Open;
data.Form2.Query1.DisableControls;
with data.Form2.Query1 do
begin
first;
while not eof do
begin
i:=i+1;
next;
end;
enablecontrols; end;
label9.Caption:='共有'+inttostr(i)+'人';
label9.Visible:=true; end;
end;procedure TForm3.BitBtn3Click(Sender: TObject);
begin
close;
end;procedure TForm3.FormActivate(Sender: TObject);
var
i:integer;
begin
i:=0;
data.Form2.Query1.SQL.Add('select * from member');
data.Form2.Query1.Open; with data.Form2.Query1 do
begin
first;
while not eof do
begin
i:=i+1;
next;
end;
enablecontrols; end;
label9.Caption:='共有'+inttostr(i)+'人';
label9.Visible:=true;
end;procedure TForm3.BitBtn2Click(Sender: TObject);
begin
report.Form4.QuickRep1.Preview;
end;procedure TForm3.N2Click(Sender: TObject);
begin
edit1.Text:='';
edit4.Text:='';
edit5.Text:='';
combobox1.Text:='';
combobox2.Text:='';
end;procedure TForm3.N3Click(Sender: TObject);
begin
report.Form4.QuickRep1.Preview;
end;procedure TForm3.FormCreate(Sender: TObject);
beginend;end.
程序如下:(错误信息是general SQL error odbc from 子句语法错误请大家帮帮我)
unit query;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,data, StdCtrls, Grids, DBGrids, Buttons,report, Menus;type
TForm3 = class(TForm)
DBGrid1: TDBGrid;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit1: TEdit;
Edit4: TEdit;
Edit5: TEdit;
BitBtn1: TBitBtn;
Label9: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form3: TForm3;implementation{$R *.dfm}
procedure TForm3.BitBtn1Click(Sender: TObject);
var
querystr:string;
i:integer;
flag:integer;
begin
i:=0;
if (length(edit1.Text)<>0) or (length(ComboBox1.Text)<>0) or (length(ComboBox2.Text)<>0) or (length(edit4.Text)<>0) or (length(edit5.Text)<>0) then
begin
querystr:='select * from member where '; //'select * form member where name="monkey" ';
if length(edit1.Text)<>0 then
begin
querystr:=querystr+'name='+''''+edit1.Text+'''';
flag:=1;
end;
if length(ComboBox1.Text)<>0 then
if flag=1 then
querystr:=querystr+' and sex='+''''+ComboBox1.Text+''''
else
begin
querystr:=querystr+' sex='+''''+ComboBox1.Text+'''';
flag:=1;
end;
if length(ComboBox2.Text)<>0 then
if flag=1 then
querystr:=querystr+' and department='+''''+ComboBox2.Text+''''
else
begin
querystr:=querystr+' department='+''''+ComboBox2.Text+'''';
flag:=1;
end;
if length(edit4.Text)<>0 then
if flag=1 then
querystr:=querystr+' and class='+''''+edit4.Text+''''
else
begin
querystr:=querystr+' class='+''''+edit4.Text+'''';
flag:=1;
end;
if length(edit5.Text)<>0 then
if flag=1 then
querystr:=querystr+' and bedroom='+''''+edit5.Text+''''
else
begin
querystr:=querystr+' bedroom='+''''+edit5.Text+'''';
end;
data.Form2.Query1.Close;
data.Form2.Query1.SQL.Clear;
data.Form2.Query1.SQL.Add(querystr);
data.Form2.Query1.Open;
data.Form2.Query1.DisableControls;
with data.Form2.Query1 do
begin
first;
while not eof do
begin
i:=i+1;
next;
end;
enablecontrols; end;
label9.Caption:='共有'+inttostr(i)+'人';
label9.Visible:=true; end;
end;procedure TForm3.BitBtn3Click(Sender: TObject);
begin
close;
end;procedure TForm3.FormActivate(Sender: TObject);
var
i:integer;
begin
i:=0;
data.Form2.Query1.SQL.Add('select * from member');
data.Form2.Query1.Open; with data.Form2.Query1 do
begin
first;
while not eof do
begin
i:=i+1;
next;
end;
enablecontrols; end;
label9.Caption:='共有'+inttostr(i)+'人';
label9.Visible:=true;
end;procedure TForm3.BitBtn2Click(Sender: TObject);
begin
report.Form4.QuickRep1.Preview;
end;procedure TForm3.N2Click(Sender: TObject);
begin
edit1.Text:='';
edit4.Text:='';
edit5.Text:='';
combobox1.Text:='';
combobox2.Text:='';
end;procedure TForm3.N3Click(Sender: TObject);
begin
report.Form4.QuickRep1.Preview;
end;procedure TForm3.FormCreate(Sender: TObject);
beginend;end.
解决方案 »
- 求救一个dbedit与simpledataset使用的问题,有点急,谢谢老师们了
- 这个错误是怎么引起的?
- 如何截获游戏窗口最小化时的屏幕内容?
- 对DELPHI的前途感到忧虑。。。。郁闷。。。。散分
- 我用ado组件做的应用程序进行发布时,要如何打包,数据库是SqlSqever2000
- comobj的问题!比较简单
- 哪位高手用DELPHI做过"套打"程序,详情请进来看一下.至于这个问题为何没有给高分,也请进来看一下.
- 对不起,这可能是一个很简单的问题,但是我现在急切想知道答案。
- 我想在TListBox中选择另一个Item之前,判断是否有数据要保存,如果有则不让选,怎么办???
- 就要找工作了,不知道会怎么样?大家给点意见。
- 用Delphi 在SQL Server2000中存取Word文件的问题?
- 关于Chart的一个问题
var
i:integer;
begin
i:=0;
data.Form2.Query1.SQL.Clear; // <- 这里
data.Form2.Query1.SQL.Add('select * from member');
data.Form2.Query1.Open;
...
end;