加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于Delphi连接SQLserver数据库实战

(2020-04-29 15:58:04)
标签:

电脑技术

分类: 编程收录
资料来源:CSDN


一、在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 plain copy
  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 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 plain copy
  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

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有