vbscript 语言通过序列和ADODB实现取号不重复
目的:通过VBScript脚本利用序列的性质,实现取号不重复
首先,表空间中创建表名为TABLE_YEWID的表格,主要有以下几个字段
-- Create table
create table TABLE_YEWID
(
currentyear VARCHAR2(50),
index_value VARCHAR2(50),
申请人 NVARCHAR2(50),
计算机 NVARCHAR2(50),
计算机mac NVARCHAR2(50),
申请时间 DATE,
计算机ip NVARCHAR2(50)
)
tablespace FSYWK
pctfree 10
initrans 4
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
其次,创建序列,序列名为YEWID_SEQ
-- Create sequence
create sequence YEWID_SEQ
minvalue 1nomaxvalue
start with 1--从1开始
increment by 1--自增步距为1
nocache--无缓存,避免跳号
nocycle;--不循环
最后通过查询YEWID_SEQ.NEXTVAL取值,添加记录
dim adoConnection '库连接对象
dim sequenceName:sequenceName= "YEWID_SEQ"
dim tableName:tableName = "table_yewid"
Sub Onclick()
'1:开库
inidatabase adoConnection
'2:获取序列nextval值
getSequence adoConnection,sequenceName,maxindex
'3:获取计算机信息
computer = GetComputer()
computerip =GetIP()
computermac=GetMAC()
getSysDate adoConnection,sysYear,sysDate
'4:table_yewid表中增加记录
sql = "select currentyear,index_value,申请人,计算机,计算机IP,计算机MAC,申请时间 from "&tableName
addNewRecord sql,sysYear,sysDate,maxindex,UserName,computer,computerip,computermac
'5:关库
releasedatabase adoConnection
End Sub '开库
Function inidatabase(byref adoConnection)
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.connectionstring="Driver={Microsoft ODBC for Oracle};Server=orcl;Uid=test;Pwd=test"
adoConnection.Open
End Function '关库
Function releasedatabase(byval adoConnection)
adoConnection.Close
Set adoConnection=Nothing
End Function
'获取oracle系统时间
function getSysDate(byval objconn,byref sysYear,byref sysDate)
seqsql = "select to_char(sysdate,'yyyy'), to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual"
Set adoRs = CreateObject("ADODB.RECORDSET")
adoRs.open seqsql, objconn, ,
sysYear = adoRs()
sysDate = adoRs()
adoRs.close
set adoRs = nothing
end function
'获取序列
function getSequence(byval objconn,byval seqname,byref maxIndex)
seqsql = "select "&seqname&".nextval from dual"
Set adoRs = CreateObject("ADODB.RECORDSET")
adoRs.open seqsql, objconn, ,
maxIndex = adoRs()
adoRs.close
set adoRs = nothing
end function
'新建记录
function addNewRecord(byval sql,byval currentyear,byval currentDate,byval indexvalue,byval shenqr,byval computer,byval computerip,byval computermac)
Set adoRs=CreateObject("ADODB.recordset")
adoRs.Open sql,adoConnection,,
adoRs.AddNew
adoRs("currentyear")=currentyear
adoRs("index_value")=indexvalue
adoRs("申请人")=shenqr
adoRs("计算机")=computer
adoRs("计算机IP")=computerip
adoRs("计算机MAC")=computermac
adoRs("申请时间")=currentDate'now()
adoRs.Update
adoRs.MoveNext
adoRs.Close
set adoRs = nothing
end function
'获取本机计算机名
Function GetComputer()
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colComputers = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
For Each objComputer in colComputers
GetComputer = objComputer.Name
Exit For
Next
end function
'获取本机MAC
Function GetMAC()
GetMAC = ""
Dim mc,mo
Set mc = GetObject("Winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")
For Each mo In mc
If mo.IPEnabled = True Then
GetMAC = mo.MacAddress
Exit For
End If
Next
Set mc = nothing
End Function '获取本机IP
Function GetIP()
ComputerName="."
Dim objWMIService,colItems,objItem,objAddress
Set objWMIService = GetObject("winmgmts:\\" & ComputerName & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objItem in colItems
For Each objAddress in objItem.IPAddress
If objAddress <> "" then
GetIP = objAddress
Exit Function
End If
Next
Next
End Function
vbscript 语言通过序列和ADODB实现取号不重复的更多相关文章
- setTimeout与取号机之间的关系
说到setTimeout写过javascript的伙伴们一定不会陌生,去银行办过存取款业务的伙伴一定对取号机不会陌生.今天群里有个好伙伴在问setTimeout的问题,大伙你一言我一语,讲了很多,可是 ...
- R 语言爬虫 之 cnblog博文爬取
Cnbolg Crawl a). 加载用到的R包 ##library packages needed in this case library(proto) library(gsubfn) ## Wa ...
- GO语言学习笔记2-int类型的取值范围
相比于C/C++语言的int类型,GO语言提供了多种int类型可供选择,有int8.int16.int32.int64.int.uint8.uint16.uint32.uint64.uint. 1.i ...
- R语言XML包的数据抓取
htmlParse 函数 htmlParse加抓HTML页面的函数. url1<-"http://www.caixin.com/"url<-htmlParse(url1 ...
- C语言fmod()函数:对浮点数取模(求余)
头文件:#include <math.h> fmod() 用来对浮点数进行取模(求余),其原型为: double fmod (double x); 设返回值为 ret,那么 x = ...
- C语言中 指针、引用和取值
指针是一个存储计算机内存地址的变量.从指针指向的内存读取数据称作指针的取值.指针可以指向某些具体类型的变量地址,例如int.long和double.指针也可以是void类型.NULL指针和未初始化指针 ...
- C# 后台解析json,简单方法 字符串序列化为对象,取值
如果后台是一个JSON的字符串格式如下: string str = "{\"Success\":true,\"Msg\":\"成功!\&qu ...
- 【笔记3-31】Python语言基础-序列sequence
序列sequence 可变序列 列表 list 字典 不可变序列 字符串 str 元祖 tuple 通过索引修改列表 del 删除元素 del my_list[2] 切片赋值只能是序列 .insert ...
- PHP语言开发微信公众平台(订阅号)之curl命令
在开发过程中,经常会遇到要求用curl命令调用接口的情况 那么,什么是curl,简单来说curl是一个利用url语法规定来传输文件和哦数据的工具,支持很多协议,如 http.ftp.telent 等, ...
随机推荐
- text-decoration:[ text-decoration-line ] || [ text-decoration-style ] || [ text-decoration-color ] 默认值:
css3中字体装饰,多样化的界面效果,: [ text-decoration-line ]:指定文本装饰的种类.相当于CSS2.1的 text-decoration 属性, 可取值:none | un ...
- 背水一战 Windows 10 (104) - 通知(Toast): 纯文本 toast, 短时 toast, 长时 toast, 图文 toast
[源码下载] 背水一战 Windows 10 (104) - 通知(Toast): 纯文本 toast, 短时 toast, 长时 toast, 图文 toast 作者:webabcd 介绍背水一战 ...
- 剑指offer面试题17:合并两个排序的链表
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点人是按照递增排序的.解题思路:两个链表分别都已经是有序的了,遍历链表的时候只要比较两个链表当前位置大小,取出最小的添加到新链表中. 可以有 ...
- 网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?
1.前言 标题虽然是为了解释有了 IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要有 IP 这样的东西.本文对读者的定位是知道 MAC 地址是什么,IP 地址是什么. (本文同步 ...
- Java核心技术卷一基础知识-第11章-异常、断言、日志和调试-读书笔记
第11章 异常.断言.日志和调试 本章内容: * 处理错误 * 捕获异常 * 使用异常机制的技巧 * 使用断言 * 日志 * 调试技巧 * GUI程序排错技巧 * 使用调试器 11.1 处理错误 如果 ...
- Kali学习笔记25:Arachni使用(实现分布式扫描)
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 Arachni不同于上次介绍的nikto和skipfi ...
- dubbo实用知识点总结(一)
1. dubbo基础架构 架构 特性 服务提供者 服务消费者 配置可以用dubbo.properties来替换 2. 注解配置 提供方(注意:serivce注解是dubbo的service) 消费者 ...
- Scala - 快速学习09 - 函数式编程:一些操作
1- 集合类(collection) 系统地区分了可变的和不可变的集合. scala.collection包中所有的集合类 可变集合(Mutable) 顾名思义,意味着可以修改,移除或者添加一个元素. ...
- java开发个人简历
求职意向 Java开发工程师 陈 楠 性 别:男 出生年月 :1995.07 民 族:汉族 联系方式 :159-3306-7520 学 历:本科 电子邮件 :15933067520@163.com 教 ...
- ubuntu16.04 Docker默认存储路径修改
Ubuntu 16.04 Docker默认存储路径修改