目的:通过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实现取号不重复的更多相关文章

  1. setTimeout与取号机之间的关系

    说到setTimeout写过javascript的伙伴们一定不会陌生,去银行办过存取款业务的伙伴一定对取号机不会陌生.今天群里有个好伙伴在问setTimeout的问题,大伙你一言我一语,讲了很多,可是 ...

  2. R 语言爬虫 之 cnblog博文爬取

    Cnbolg Crawl a). 加载用到的R包 ##library packages needed in this case library(proto) library(gsubfn) ## Wa ...

  3. GO语言学习笔记2-int类型的取值范围

    相比于C/C++语言的int类型,GO语言提供了多种int类型可供选择,有int8.int16.int32.int64.int.uint8.uint16.uint32.uint64.uint. 1.i ...

  4. R语言XML包的数据抓取

    htmlParse 函数 htmlParse加抓HTML页面的函数. url1<-"http://www.caixin.com/"url<-htmlParse(url1 ...

  5. C语言fmod()函数:对浮点数取模(求余)

    头文件:#include <math.h> fmod() 用来对浮点数进行取模(求余),其原型为:    double fmod (double x); 设返回值为 ret,那么 x = ...

  6. C语言中 指针、引用和取值

    指针是一个存储计算机内存地址的变量.从指针指向的内存读取数据称作指针的取值.指针可以指向某些具体类型的变量地址,例如int.long和double.指针也可以是void类型.NULL指针和未初始化指针 ...

  7. C# 后台解析json,简单方法 字符串序列化为对象,取值

    如果后台是一个JSON的字符串格式如下: string str = "{\"Success\":true,\"Msg\":\"成功!\&qu ...

  8. 【笔记3-31】Python语言基础-序列sequence

    序列sequence 可变序列 列表 list 字典 不可变序列 字符串 str 元祖 tuple 通过索引修改列表 del 删除元素 del my_list[2] 切片赋值只能是序列 .insert ...

  9. PHP语言开发微信公众平台(订阅号)之curl命令

    在开发过程中,经常会遇到要求用curl命令调用接口的情况 那么,什么是curl,简单来说curl是一个利用url语法规定来传输文件和哦数据的工具,支持很多协议,如 http.ftp.telent 等, ...

随机推荐

  1. 「总结」 MLEAutoMaton的各种板子总结

    太菜了,所以咕了,欢迎评论留言... 网络流(不全) 自适应Simpson

  2. Java核心技术卷一基础知识-第3章-Java的基本程序设计结构-读书笔记

    第3章 Java的基本程序设计结构 本章内容: 一个简单的Java应用程序 字符串 注释 输入输出 数据类型 控制流 变量 大数值 运算符 数组 本章主要讲述程序设计相关的基本概念(如数据类型.分支以 ...

  3. IntelliJ IDEA 的使用方法总结

    创建普通 Java 项目 1.首次新建一个项目 如果是首次使用,在这个界面可以点击 Create New Project ,创建一个新项目. 选择Java,然后选好 JDK 的位置,接着点击下一步 N ...

  4. jQuery文档操作

    jQuery文档操作 1.jq文档结构 var $sup = $('.sup'); $sup.children(); // sup所有的子级们 $sup.parent(); // sup的父级(一个, ...

  5. Oracle开窗函数笔记及应用场景

    介绍Oracle的开窗函数之前先介绍一下分析函数,因为开窗函数也属于分析函数 分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行. 上面是 ...

  6. Oracle创建表空间、用户管理、角色管理

    内容:Oracle创建表空间.用户管理.角色管理 1.用系统用户登录Oracle 默认的系统用户: sys/system.sysman.scott sys:权限最大,超级用户,可以完成所有任务, 默认 ...

  7. PyTorch--双向递归神经网络(B-RNN)概念,源码分析

    关于概念: BRNN连接两个相反的隐藏层到同一个输出.基于生成性深度学习,输出层能够同时的从前向和后向接收信息.该架构是1997年被Schuster和Paliwal提出的.引入BRNNS是为了增加网络 ...

  8. python-图像处理(映射变换)

    做计算机视觉方向,除了流行的各种深度学习算法,很多时候也要会基础的图像处理方法. 记录下opencv的一些操作(图像映射变换),日后可以方便使用 先上一张效果图 图二和图三是同一种方法,只是变换矩阵不 ...

  9. 深入理解Java Stream流水线

    前面我们已经学会如何使用Stream API,用起来真的很爽,但简洁的方法下面似乎隐藏着无尽的秘密,如此强大的API是如何实现的呢?Pipeline是怎么执行的,每次方法调用都会导致一次迭代吗?自动并 ...

  10. 【Objective-C】内存管理

    涉及三大知识点:引用计数器,属性参数,自动释放池 一.引用计数器(程序编译时Xcode可以自动给你的代码添加内存释放代码,如果编写手动释放代码Xcode会报错) 1.关闭ARC(xcode 4.x之后 ...