大家帮我看看下面程序 是怎么回事
我在EDIT中输入文字时!出现这个错误!(project project2.exe raised exception class EOleException with massage'[microsoft][ODBC SQL Server Driver][SQL Server]第1行:'.'附近有错误:'process stopped. use step or Run to continue.)每输一次都是出现同样的错误!如何解决呢??
代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, ADODB, Grids, DBGrids;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
BitBtn1: TBitBtn;
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
var
SqlStr:string;
begin
SqlStr:='select student.sno,sname,cname,degree from student,score,course'+
'where student.sno=score.sno and score.cno=course.sno and sname like''%'+edit1.Text+'%''';
adoquery1.close;
adoquery1.SQL.clear;
adoquery1.SQL.add(SqlStr);
adoquery1.open;
end;
procedure TForm1.Edit2Change(Sender: TObject);
var
SqlStr:string;
begin
SqlStr:='select student.sno, sname, cname, degree from stuendt, score, course'
+'where student.sno=score.sno and score.cno=course.cno and cname like ''%'+edit2.text+'%''';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.add(SqlStr);
adoquery1.Open;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
SqlStr:string;
i:integer;
begin
i:=0;
if edit1.text<>'' then
i:=i+1;
if edit2.text<>'' then
i:=i+2;
case i of
0:
begin
SqlStr:='select student.sno,sname,cname,degree from student,score,course '
+'where student.sno=score.sno and course.cno=score.cno ';
adoquery1.Close; //关闭ADOQuery1,以便于进行SQL语句更新
adoquery1.SQL.Clear; //清空SQL语句
adoquery1.SQL.Add(sqlStr); //添加新的SQL
adoquery1.Open; //新SQL有效
end;
1:
begin
SqlStr:='select student.sno,sname,cname,degree from student,score,course '
+'where student.sno=score.sno and course.cno=score.cno and sname='''+edit1.Text+'''';
adoquery1.Close; //关闭ADOQuery1,以便于进行SQL语句更新
adoquery1.SQL.Clear; //清空SQL语句
adoquery1.SQL.Add(sqlStr); //添加新的SQL
adoquery1.Open; //新SQL有效
end;
2:
begin
SqlStr:='select student.sno,sname,cname,degree from student,score,course '
+'where student.sno=score.sno and course.cno=score.cno and cname='''+edit2.Text+'''';
adoquery1.Close; //关闭ADOQuery1,以便于进行SQL语句更新
adoquery1.SQL.Clear; //清空SQL语句
adoquery1.SQL.Add(sqlStr); //添加新的SQL
adoquery1.Open; //新SQL有效
end;
3:
begin
SqlStr:='select student.sno,sname,cname,degree from student,score,course '
+'where student.sno=score.sno and course.cno=score.cno and sname='''+edit1.Text+''''
+' and cname='''+edit2.Text+'''';
adoquery1.Close; //关闭ADOQuery1,以便于进行SQL语句更新
adoquery1.SQL.Clear; //清空SQL语句
adoquery1.SQL.Add(sqlStr); //添加新的SQL
adoquery1.Open; //新SQL有效
end;
end;
end;
end.
[解决办法]
sql写的乱,至少有几句中where和前面的字之间没有空格,如果还有错,你就把整个sql,显示出来,自己查吧
[解决办法]
设置断点,然后运行,运行到断点的时候,选中变量,按Ctrl+F5,获取变量值