目的:通过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. 大叔学ML第一:梯度下降

    目录 原理 实践一:求\(y = x^2 - 4x + 1\)的最小值 实践二:求\(z = x^2 + y^2 + 5\)的最小值 问答时间 原理 梯度下降是一个很常见的通过迭代求解函数极值的方法, ...

  2. css浮动(float)及清除浮动的几种实用方法

    CSS浮动是现在网页布局中使用最频繁的效果之一,而浮动可以帮我们解决很多问题,那么就让我们一起来看一看如何使用浮动. 一.css浮动(float) (1)html文档流 自窗体自上而下分成一行一行,并 ...

  3. Eclipse常用20个快捷键

    Eclipse常用20个快捷键 1. Ctrl+F : 本文查找Find与替换Replace 2. Ctrl+H : 全局搜索,可按照文件类型搜索 3. Ctrl+1 : 快速修复,能快速的显示光标所 ...

  4. Spark基础-scala学习(一、入门)

    Scala解析器的使用 REPL:Read(取值)-> Evaluation(求值)-> Print(打印)->Loop(循环).scala解析器也被称为REPL,会快速编译scal ...

  5. SpringBoot+logback实现日志打印

    logback介绍 logback是一款开源的日志框架,内核重写了,是基于log4j基础进行改良的.其官网为logback.qos.ch.logback在性能上有很大提升,拥有更多特性. logbac ...

  6. Git:fatal: Authentication failed

    1.删除保存的用户名和密码 执行 下面的命令,删除保存的用户名和密码 git config --system --unset credential.helper 重新操作,提示输入用户名和密码,操作成 ...

  7. Spring详解(六)------AspectJ 实现AOP

    上一篇博客我们引出了 AOP 的概念,以及 AOP 的具体实现方式.但是为什么要这样实现?以及提出的切入点表达式到底该怎么理解? 这篇博客我们通过对 AspectJ 框架的介绍来详细了解. 1.什么是 ...

  8. 【PHP篇】变量与常量

    变量: 变量的作用域为函数区域 判断是否存在:isset($变量名)://返回bool 判断是否为空:empty($变量名)//变量未声明或者值为空返回1,否则返回false 清除变量:unset($ ...

  9. nginx介绍(二) 架构篇

    2. nginx架构总览 传统的基于进程或者基于线程的模型处理并发的方式都是为每个连接单独创建一个处理进程或线程,会在网络传输或者I/O操作上阻塞.而这对应用来说,在内存和 CPU的使用上效率都是非常 ...

  10. hibernate框架(2)---Hibernate的核心API

    Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...