首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

大家帮小弟我看看下面程序 是咋回事

2012-02-04 
大家帮我看看下面程序 是怎么回事我在EDIT中输入文字时!出现这个错误!(project project2.exe raised excep

大家帮我看看下面程序 是怎么回事
我在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,获取变量值

热点排行