目的:通过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. [转]linux VLAN配置(vconfig)

    1.安装vlan(vconfig)和加载8021q模块 #aptitude install vlan #modprobe 8021q 2.使用linux vconfig命令配置vlan #vconfi ...

  2. pwnable.kr详细通关秘籍(二)

    i春秋作家:W1ngs 原文来自:pwnable.kr详细通关秘籍(二) 0x00 input 首先看一下代码: 可以看到程序总共有五步,全部都满足了才可以得到flag,那我们就一步一步来看 这道题考 ...

  3. PopupWindow 以及拍照、裁剪

    实现这样的效果 圆角图片的自定义控件直接拷进来,和com一个等级 想要弹出内容可以使用悬浮窗 layout_pupup <LinearLayout xmlns:android="htt ...

  4. HotSpot 的垃圾收集器

    上图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用,收集器所处的区域,则表示它是属于新生代还是老年代收集器. 并行(Parallel):指多条垃圾收集器线程并行工 ...

  5. Python 音视频方面资源大全

    自然语言处理 用来处理人类语言的库. NLTK:一个先进的平台,用以构建处理人类语言数据的 Python 程序.官网 jieba:中文分词工具.官网 langid.py:独立的语言识别系统.官网 Pa ...

  6. 线性整流函数(ReLU)

    线性整流函数(Rectified Linear Unit, ReLU),又称修正线性单元, 是一种人工神经网络中常用的激活函数(activation function),通常指代以斜坡函数及其变种为代 ...

  7. spring boot -junit单元测试方法示例

    package com.example.zs; import com.example.zs.mapper.UserMapper; import com.example.zs.pojo.User; im ...

  8. CAS单点登陆/oAuth2授权登陆

    单点登陆 CAS是一个单点登录框架,即Central Authentication Service(中心认证服务) ,开始是由耶鲁大学的一个组织开发,后来归到apereo去管,github地址:htt ...

  9. Django-用户模块与权限系统相关

    Django的用户模块与权限系统 Django的用户系统都提供哪些功能: 提供用户模块(User Model) 权限验证(默认添加已有模块的增加删除修改权限) 用户组与组权限功能 用户鉴权与登录功能 ...

  10. C#--对象转Json序列化

    前言 最近在研究Android项目,其中涉及到Android中解析Json数据的问题,需要模拟网络中传递Json数据的模式,因为以前是.net的工程师,所以想着从.net的平台开发服务,传递Json格 ...