| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1518 人关注过本帖
标题:vb中看不懂的一段代码
只看楼主 加入收藏
kfp_kaka
Rank: 4
等 级:贵宾
威 望:13
帖 子:353
专家分:0
注 册:2006-1-12
收藏
 问题点数:0 回复次数:14 
vb中看不懂的一段代码

这个是公用模块里的代码,我照书上的搬上来,帮我解释一下好吗?小弟感激不尽啊~~

由于系统中各个功能模块将频繁使用数据库中的各种数据,因此需要一个公共的数据操作函数,用以执行各种SQL语句。
添加函数ExecuteSQL,代码如下:

Public Function ExecuteSQL(BY Val SQL_
as String, MsgString as String)_
AS ADODB.Recordset
' 传递参数SQL传递查询语句,MsgString 传递查询信息
' 自身以一个数据集对象的形式返回
Dim cnn As ADODB.Connection 'ADODB是什么意思?
' 定义连接
Dim rst As ADODB.Connection
' 定义字符串
Dim sTokens() As String
' 异常处理
On Error GoTo ExecuteSQL_Error
' 用Split 函数产生一个包含各个子串的数组
sTokens=Split(SQL) 'Split是什么函数?
' 创建连接
Set cnn = New ADODB.Connection
' 打开连接
cnn.Open ConnectString
' 判断字符串中是否含有指定内容
If InStr ("INSER,DELETE<UPDATE",_
UCase$(sTokens(0))) Then ' 帮我解释一下这句的语法是什么意思
' 执行查询语句
cnn.Execute SQL
' 返回查询信息
MsgString = sTokens(0) & _
"query successful"
Else
' 创建数据集对象
Set rst = New ADODB.Recordset
' 返回查询结果
rst.Open Trim$(SQL),cnn,_
adOpenKeyset,_
adLockOptimistic
' rst.MoveLast 'get RecordCount
'返回记录集对象
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & _
" 条记录"
End If

ExecuteSQL_Exit :
' 清空数据集对象
Set cnn = Nothing
' 中断连接
Set cnn = Nothing
Exit Function

' 错误类型判断
ExecuteSQL_Error :
MsgString = "查询错误:"& _
Err.Description
Resume ExecuteSQL_Exit
End Function

以上就是那个程序了,蓝色是我最不懂的地方,有空的话希望斑竹详细的和我解释一下这段程序的意思和函数的用法,谢谢啊~~,我接触vb才不到5天

搜索更多相关主题的帖子: SQL 数据库 代码 FONT 模块 
2006-01-12 16:28
moshen62
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-1-12
收藏
得分:0 
[QUOTE]
Public Function ExecuteSQL(BYVal SQL as String, MsgString as String)AS ADODB.Recordset
[/QUOTE]
SQL参数为SQL语句字符串参数(如"Select * from MyTable"),以引用传递的参数 MsgString 为返回的信息,此函数是是执行 SQL参数中的语句 返回一个 RecordSet 数据集对象
[QUOTE]
sTokens=Split(SQL) 'Split是什么函数?
[/QUOTE]
代表返回子字符串数组
[QUOTE]
ADODB.Connection 'ADODB是什么意思?
[/QUOTE]
ADODB是一个对象库

2006-01-12 16:37
moshen62
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-1-12
收藏
得分:0 
[QUOTE]If InStr ("INSER,DELETE<UPDATE",_
UCase$(sTokens(0))) Then ' 帮我解释一下这句的语法是什么意思
[/QUOTE]
这个是代表了查找在刚才那个sTokens数组中的第一个字符串是否在"INSER,DELETE<UPDATE"的字符串中
InStr是用来查找字符串在另一个字符串中的位置
这段代码写的还可以

通用的函数

在这里 ADODB是一个数据库访问对象集
在VB组件里有个ADODC控件 就是引用了ADODB2.5做的
这些都有帮助的你可以查看一下


2006-01-12 18:32
kfp_kaka
Rank: 4
等 级:贵宾
威 望:13
帖 子:353
专家分:0
注 册:2006-1-12
收藏
得分:0 
谢谢楼上的兄弟啦,辛苦了,ADODB和ADODC有什么区分的地方吗?

爱一个人不一定要拥有她 拥有一个人就一定要好好的爱她
2006-01-13 09:20
moshen62
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-1-12
收藏
得分:0 

区别就是ADODC得使用很方便
而ADODB就需要进行OPEN语句的操作
我感觉ADODB还是比较灵活的

ADODC我基本上没用过所以也说不出来

2006-01-13 09:43
kfp_kaka
Rank: 4
等 级:贵宾
威 望:13
帖 子:353
专家分:0
注 册:2006-1-12
收藏
得分:0 
谢谢兄弟啦,以后有不懂的地方请你多多指教哦,不要嫌我的问题低级就好

爱一个人不一定要拥有她 拥有一个人就一定要好好的爱她
2006-01-13 10:53
kfp_kaka
Rank: 4
等 级:贵宾
威 望:13
帖 子:353
专家分:0
注 册:2006-1-12
收藏
得分:0 
Recordset是什么东东?主要是用来做什么的?

爱一个人不一定要拥有她 拥有一个人就一定要好好的爱她
2006-01-13 11:06
kfp_kaka
Rank: 4
等 级:贵宾
威 望:13
帖 子:353
专家分:0
注 册:2006-1-12
收藏
得分:0 

如果我也想用ADODB,要怎么用啊?在工具栏部件那里找不到有这个可以添加哦,moshen62可以和我说说ADODB的用法好吗?可能我的问题让你很烦,可是我真的不懂哦,google,baidu都找过了,就是没找到相关的资料,谢谢哦


爱一个人不一定要拥有她 拥有一个人就一定要好好的爱她
2006-01-13 11:27
moshen62
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-1-12
收藏
得分:0 
ADODB 啊 那个是引用来的
在 部件->引用里
Microsoft Activex Data Objects 2.x Library

2.x是ADODB的多个版本

2006-01-13 11:30
moshen62
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-1-12
收藏
得分:0 
Recordset结果集
我有一个ADO帮助 你需要的话我可以传给你
给个E-Mail地址

2006-01-13 11:35
快速回复:vb中看不懂的一段代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054823 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved