机房收费系统之模块代码理解
来源:互联网 发布:socket作用 java 知乎 编辑:程序博客网 时间:2024/05/16 14:38
代码展示:
'以文件DSN标记,连接ODBC数据源
Public Function ConnectString() '自定义函数
'ConnectString = "filedsn=charge.dsn;uid=sa;pwd=123456"
ConnectString = "Provider=SQLOLEDB;DataSource=192.168.24.194;Initial CataLog=charge_sys;UID=sa;PWD=123456"
End Function
Public Function ExecuteSQL(ByVal sql As String, MsgString As String) As ADODB.Recordset '自定义函数
Dim cnn As New ADODB.Connection '重新声明一个数据源连接对象,定义一个ADODB的连接
Dim rst As New ADODB.Recordset '重新声明一个数据集对象,定义Recordset对象
Dim sTokens() As String '定义的一个数组
Tokens = Split(sql) '(sql是上面的一个参数)分割字符串,即把一个字符串分割成一个字符串数组'如果sql为"this,is ,my,sharing",得到的结果为sTokens(0)="this",stokens(1)="is",sTokens(2)="my",sTokens(3)="sharing"
Set cnn = New ADODB.Connection '实例化一个数据库连接对象
cnn.Open ConnectString '打开数据库,方式调用上面写的自定义函数
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
cnn.Execute sql '如果有增,删,改就直接进行数据库查询语句,vb里execute是个方法,执行远程请求或者sql查询的。
MsgString = sTokens(0) & "query successful"
Else '否则进行SQL查询操作,得到记录集
Set rst = New ADODB.Recordset
rst.Open Trim$(sql), cnn, adOpenKeyset, adLockOptimistic '打开记录集
Set ExecuteSQL = rst '打开数据库 MsgString = "查询到" & rst.RecordCount & "条记录"
End If
函数解释:
一: split()函数
Split(expression[, delimiter[, count[,compare]]])
详细用法:http://baike.baidu.com/link?url=Fdvpnl78Y4MDlDihQsiKX0wUvgFg0VaF8a1_UHdlfHPYj3JvwL555CywNvY5iiUFasAfQ_HutW69SrlvQKllHa
1. 含义:分割字符串
2. 以上面代码为例说明:
sTokens=split(sql)
如果sql=”select * from student_info”
则所得结果为:sTokens(0)=select,sTokens(1)=*,sTokens(2)=from,sTokens(3)=student_info
二:open函数
Recordset.open Source,ActiveConnection,CursorType,LockType,Options
1. 作用:打开数据集对象
2. 参数说明
Source: 可以是一个SQL查询、数据表或存储过程
ActiveConnection:可以是一个已打开的连接,或连接字符串
CursorType:游标类型:
0(adOpenForwardOnly): 只能在Recordset的记录中向前移动,但速度最快。
1(adOpenKeyset):可以在Recordset中任意移动,其他用户所做的记录修改可见,但其他用户添加的记录不可见,删除的记录字段值不能被使用。
2(adOpenDynamic):可以在Recordset中任意移动,其他用户增、删、改的记录都可见,但速度最慢。
3(adOpenStatic):可以在Recordset中任意移动,其他用户增、删、改的记录都不可见。
LockType:并发控制
0(adLockReadOnly):recordset的记录为只读
1(adLockPessimistic):只要保持Recordset为打开,别人就无法编辑该记录集中的记录.
2(adLockOptimistic):当updaterecordset中的记录时,将记录加锁
3(adLockBatchOptimistic):以批模式时更新记录时加锁
Options:指定source传递命令的类型
1(adCmdText):SQL语句
2(adCmdTable):数据表的名字
4(adCmdStoredProc):存储过程
8(adCmdUnknown):未知类型
如果参数设置不对,有可能更新的数据就写入不到数据库中,记得敲机房时有个同学参数设置的不合适,怎么着数据就是写入不到数据库中。
三. UCase()函数
1.作用:将小写字母转换成大写
2.说明:是将字符串中所有的字符都转换成大写
四:Instr()函数
instr( string1, string2, start_position,nth_appearance )
1.作用:返回要截取的字符串在源字符串中的位置
2.参数说明
3.注意:
位置索引号从1开始。即在源字符串中的位置
如果String2在String1中没有找到,instr函数返回0。
- 机房收费系统之模块代码理解
- 机房收费系统之模块
- 机房收费系统登录模块代码记录
- 机房收费系统之(模块使用)
- 机房收费系统之模块的使用
- 【机房收费系统】 之 整体理解
- 机房收费系统 之 总体理解
- 机房收费系统之结账窗体理解
- 机房收费系统之代码库
- 机房收费系统之登陆模块(一)
- 机房收费系统重构之SQLhelper的理解
- 重构机房收费系统之代码实现 初步
- 重构机房收费系统之敲代码的感受
- 【机房收费系统】 之 收费模式
- 机房收费系统之临时收费金额
- 机房收费系统之结账
- 机房收费系统之报表
- 机房收费系统之结账
- 树的子结构
- curl_multi实现准多线程采集
- Python词频分析
- Java多线程 -- JUC包源码分析3-- volatile/final语义
- CCF认证——I’m stuck!
- 机房收费系统之模块代码理解
- 算法复杂度分析一般过程
- 【Linux多进程通信】信号
- LeetCode9----------Palindrome Number
- NOIP提高组 看电影
- 二叉树的镜像
- Git回退版本
- 深入解析String#intern
- java学习日记_14:面向对象之成员变量与局部变量的区别。