Delphi连接SQL Server 2000【转载】

来源:互联网 发布:长湖镇人类 知乎 编辑:程序博客网 时间:2024/05/17 09:13

文章说明了如何使用ADO的ADOConnection  ADOQuery 

Data Access的Data Source

Data Controls的DBGrid

来进行数据库连接,查询显示结果

http://blog.csdn.net/cnlht/article/details/4802400


一、在Delphi7中连接MS SQL Server 2000的方法。

刚开始时界面如下:添加4个控件。

 

 

 

 

 

设置控件属性过程:

 

1、ADOConnection1设置

1)双击ADOConnection1,进行设置连接字符串(作用是:选取连接驱动方式和连接的数据库设置)。过程如下图所示:

 

 

 

 

2、ADOQuery1设置: 

1)ADOQuery1.connection属性为ADOConnection1;

2)ADOQuery1.SQL属性为select student.sno,sname,cname,grade from student,sc,course where student.sno=sc.sno and course.cno=sc.cno

3)ADOQuery1.Active设置为TRUE。

 

3、DataSource1设置

DataSet属性为ADOQuery1

 

4、DBGrid1设置

DataSource属性设置为DataSource1.

 

效果图:

 

二、通过Delphi7进行设计SQL查询的界面和程序实现。

 

1、界面设计

添加Edit,Button和Label控件,如图摆放和设置基本属性。

 

 

2、在BitBtn1的Click事件内完成程序。(Edit1和Edit2的综合查询,共4种情况)

[delphi] view plaincopyprint?
  1. procedure TForm1.BitBtn1Click(Sender: TObject);  
  2. var  
  3.   i:integer;  
  4.   SqlStr:String;  
  5. begin  
  6.    i:=0;  
  7.    if edit1.Text<>'' then  
  8.       i:=i+1;  
  9.    if edit2.Text<>'' then  
  10.       i:=i+2;  
  11.   
  12.    case i of  
  13.    0:  
  14.    begin  
  15.       SqlStr:='select student.sno,sname,cname,grade from student,sc,course '  
  16.              +'where student.sno=sc.sno and course.cno=sc.cno ';  
  17.       adoquery1.Close;            //关闭ADOQuery1,以便于进行SQL语句更新  
  18.       adoquery1.SQL.Clear;        //清空SQL语句  
  19.       adoquery1.SQL.Add(sqlStr);  //添加新的SQL  
  20.       adoquery1.Open;             //新SQL有效  
  21.    end;  
  22.    1:  
  23.    begin  
  24.       SqlStr:='select student.sno,sname,cname,grade from student,sc,course '  
  25.              +'where student.sno=sc.sno and course.cno=sc.cno and sname='''+edit1.Text+'''';  
  26.       adoquery1.Close;            //关闭ADOQuery1,以便于进行SQL语句更新  
  27.       adoquery1.SQL.Clear;        //清空SQL语句  
  28.       adoquery1.SQL.Add(sqlStr);  //添加新的SQL  
  29.       adoquery1.Open;             //新SQL有效  
  30.         
  31.    end;  
  32.    2:  
  33.    begin  
  34.       SqlStr:='select student.sno,sname,cname,grade from student,sc,course '  
  35.              +'where student.sno=sc.sno and course.cno=sc.cno and cname='''+edit2.Text+'''';  
  36.       adoquery1.Close;            //关闭ADOQuery1,以便于进行SQL语句更新  
  37.       adoquery1.SQL.Clear;        //清空SQL语句  
  38.       adoquery1.SQL.Add(sqlStr);  //添加新的SQL  
  39.       adoquery1.Open;             //新SQL有效  
  40.    end;  
  41.    3:  
  42.    begin  
  43.       SqlStr:='select student.sno,sname,cname,grade from student,sc,course '  
  44.              +'where student.sno=sc.sno and course.cno=sc.cno and sname='''+edit1.Text+''''  
  45.              +' and cname='''+edit2.Text+'''';  
  46.       adoquery1.Close;            //关闭ADOQuery1,以便于进行SQL语句更新  
  47.       adoquery1.SQL.Clear;        //清空SQL语句  
  48.       adoquery1.SQL.Add(sqlStr);  //添加新的SQL  
  49.       adoquery1.Open;             //新SQL有效  
  50.    end;  
  51.    end;  
  52. end;  

 

3、在Edit2的change事件内写模糊查询。代码如下(Edit1的类似):

[delphi] view plaincopyprint?
  1. procedure TForm1.Edit2Change(Sender: TObject);  
  2. var  
  3.    SqlStr:String;  
  4. begin  
  5.       SqlStr:='select student.sno,sname,cname,grade from student,sc,course '  
  6.              +'where student.sno=sc.sno and course.cno=sc.cno and cname like ''%'+edit2.Text+'%''';  
  7.       adoquery1.Close;            //关闭ADOQuery1,以便于进行SQL语句更新  
  8.       adoquery1.SQL.Clear;        //清空SQL语句  
  9.       adoquery1.SQL.Add(sqlStr);  //添加新的SQL  
  10.       adoquery1.Open;             //新SQL有效  
  11. end;  

 


0 0
原创粉丝点击