目的:通过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. Codeforces Round #554 (Div. 2) 1152B. Neko Performs Cat Furrier Transform

    学了这么久,来打一次CF看看自己学的怎么样吧 too young too simple 1152B. Neko Performs Cat Furrier Transform 题目链接:"ht ...

  2. ZJOI2019二试游记

    ZJOI2019二试游记 Day -2 今天就要去被虐了!开一篇占个坑.禁赛警告 Day -1 早上zzy,下午zzq,无限懵逼... 过来的时候Sooke,memset0,老K坐我旁边,瑟瑟发抖.. ...

  3. BCrypt加密算法

    用户表的密码通常使用MD5等不可逆算法加密后存储,为防止彩虹表破解更会先使用一个特定的字符串(如域名)加密,然后再使用一个随机的salt(盐值)加密. 特定字符串是程序代码中固定的,salt是每个密码 ...

  4. 基于TensorFlow的深度学习系列教程 2——常量Constant

    前面介绍过了Tensorflow的基本概念,比如如何使用tensorboard查看计算图.本篇则着重介绍和整理下Constant相关的内容. 基于TensorFlow的深度学习系列教程 1--Hell ...

  5. 安装MySQL提示“请键入 NET HELPMSG 3534 以获得更多的帮助”的解决办法

    今天安装MySQL提示如下错误: ----------------------------------------------------------------------------------- ...

  6. MySQL 报错ERROR 1054 (42S22): Unknown column 'plugin' in 'mysql.user'

    MySQL  我们在创建用户的时候,可能会遇到以下报错: ERROR 1054 (42S22): Unknown column 'plugin' in 'mysql.user' 说明mysq.user ...

  7. 卷积神经网络CNN的原理(二)---公式推导

    卷积神经网络与普通神经网络的区别在于,卷积神经网络包含多个由卷积层和池化层构成的特征抽取器.在卷积神经网络的卷积层中,一个神经元只与部分邻层神经元连接.在CNN的一个卷积层中,通常包含若干个特征平面( ...

  8. 内存管理-buddy[代码]

    基于2.6.32内核源码分析 首选内存区和gfp描述符关系运算 64位系统默认没有开启CONFIG_HIGHMEM选项,因此只有4个内存区DMA(0),DMA32(1),NORMAL(2),MOVAB ...

  9. DedeCMS上传视频

    DedeCMS建站方便快捷,但是在上传视频时会出现问题,主要是文件格式与大小限制,需要修改配置文件,修改的地方主要有: 1.修改 DedeCMS系统配置参数--附件设置--允许的多媒体软件类型(以MP ...

  10. 解决android sdk 运行出现 could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037:的问题

    ionic3项目,在添加android平台后,cordova run android 出现 以下问题: error: could not install *smartsocket* listener: ...