vbs 连oracle 负载均衡,(原)QTP中用VBS调用PLSQL并执行相关语句

今天工作的需求是要在录制一段web程序之前要调用plsql并执行一段数据库代码清空相关数据才能做web录制测试,

本来是想用QTP直接录制plsql的,但是后来发现自己对qtp录制window application并不是很了解,选定了 Automation菜单下的Record and Run Settings中的制定plsql程序的路径,一录制竟然也代开了web的初始页面,后来发现是要把web的Record and Run Settings中设置成第一个选项 Record and run on any browser才不弹出来了。

后来发现,竟然qtp录制plsql的脚本就像低级录制的脚本一样,是用坐标表示的(Window("Oracle Logon").WinObject("test").Click 44,8)。回放一点反应都没有。不行,时间紧迫,我得另外想办法搞定这个plsql。

直接用vbs代码写了段调用调用PLSQL并执行相关语句的片段。运行成功,搞定!!。。

代码中对plsql的路径和用于运行的语句(从doc中复制的呵呵)DOC文件路径进行了判断,如果不正确将提示修改路径,一直到路径核对正确为止,如果两个路径都正确,则直接call dosub().

本来想通过字段赋值再sendkeys到plsql中指定的语句,但是后来发现语句中有特殊字符,读到plsql中的时候很慢而且有乱码,所以后来想用vbs操作了下word,直接从word中复制语句再在plsql中粘贴了.(从plsql中打开我试过了,没有句柄不行,ctrl+o不执行。)

VBS代码:

'----------------------------定义变量-------------------------------------------

Dim oApp,oDoc,fso,exepath,docpath,inputexestr,inputdocstr,inputexestr2,inputdocstr2,confirmexepath,confirmdocpath,exefile,docfile

exepath = "C:\Worksoft\plsql\PlSqlDev.exe"

docpath = "C:\StudyInfo\Study\VBS\ReadyData.doc"

'----------------------------创建系统对象------------------------------------

Set Wshell=CreateObject("Wscript.Shell")

set fso=CreateObject("Scripting.FileSystemObject")

'----------------------------判断plsql路径和doc文件路径是否存在----------------------

Call maincheck()

Sub   checkexeway()

inputexestr = InputBox("请确认或输入您的plsql程序路径:"&vbnewline&"如果此路径正确请点击OK!","PLSQL路径确认",exepath)

inputexestr2=  fso.FileExists(inputexestr)

If  inputexestr2<>"" and  inputexestr2 = True Then

confirmexepath = inputexestr

call checkdocway()

else

call  checkexeway()

End If

End Sub

Sub   checkdocway()

inputdocstr = InputBox("请确认或输入您的DOC文件路径:","DOC文件路径确认",docpath)

inputdocstr2=  fso.FileExists(inputdocstr)

If  inputdocstr2<>"" and  inputdocstr2 = True  Then

confirmdocpath = inputdocstr

call  Dosub()

else

call  checkdocway()

End If

End Sub

Sub maincheck()

exefile = fso.FileExists(exepath)

docfile = fso.FileExists(docpath)

If  exefile =true and  docfile =true Then

confirmexepath = exepath

confirmdocpath = docpath

call Dosub()

else

call checkexeway()

End If

end sub

'-------------------------------------------调用plsql并运行语句过程--------------------------------------------

Sub Dosub()

'msgbox confirmexepath

'msgbox confirmdocpath

Set App = CreateObject("Word.Application")

oApp.visible = true

Set Doc = oApp.Documents.Open (confirmdocpath)

Wshell.AppActivate "ReadyData.doc - Microsoft Word"

oApp.selection.WholeStory

oApp.selection.copy

oDoc.close

oApp.quit

Wshell.SendKeys "{Left}"

Wshell.SendKeys "{Enter}"

wait 5

wait 2

set exec=Wshell.Exec(confirmexepath)

wait 2

'这里直接输入密码test,因为plsql默认了用户名不用输入,没有默认就需要前面再加   个sendkeys了

Wshell.SendKeys "test"

wait 1

Wshell.SendKeys "{TAB}"

'这里输入服务器名称.要确保你的oracal的tnsname里面有这个服务器名.

Wshell.SendKeys "cis170"

wait 2

Wshell.SendKeys "{ENTER}"

wait 4

'把刚才从word复制的内容粘贴到plsql

Wshell.SendKeys "^v"

wait 2

'运行语句快捷键f8

Wshell.SendKeys "{F8}"

wait 5

'提交语句commit快捷键f8

Wshell.SendKeys "{F10}"

wait 2

Wshell.SendKeys "%{F4}"

wait 2

Wshell.SendKeys "{Right}"

Wshell.SendKeys "{Enter}"

End Sub

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity中发布android时候出现这样的提示错误:error:device not found

原因很简单&#xff0c;就是你没开启安卓设备&#xff0c;无论是安卓手机还是安卓虚拟器。。 解决办法&#xff1a;只要开启安卓虚拟器或者连接手机即可 再次打开cmd命令窗口&#xff0c;找到apk文件所在路径&#xff0c;例如&#xff1a; D: 回车&#xff08;我的是在d盘根目录…

Oracle 每个session的限制,限制oracle普通用户能且只能kill自己的会话

声明&#xff1a;仅用于测试环境方便调试&#xff0c;不可能应用于生产环境&#xff1b;故请勿加入到程序源代码来实现自动杀进程。只需一个参数&#xff0c;就能kill用户自己的会话&#xff0c;请小心操作&#xff0c;以免误kill进程。使用方法&#xff1a;新开一个session后&…

Hessian简介

Hessian Hessian是一个轻量级的remoting onhttp工具&#xff0c;使用简单的方法提供了RMI的功能。 相比WebService&#xff0c;Hessian更简单、快捷。采用的是二进制RPC协议&#xff0c;因为采用的是二进制协议&#xff0c;所以它很适合于发送二进制数据目 录 1介绍 1.1 注意事…

linux 以某个用户执行,Linux root用户肿么以制定的用户去执行某个程序。

chmod o-x m1说明&#xff1a;命令格式&#xff1a;chmod [options] mode files只能文件属主或特权用户才能使用该功能来改变文件存取模式。mode可以是数字形式或以who opcode permission形式表示。who是可选的&#xff0c;默认是a(所有用户)。只能选择一个opcode(操作码)。可指…

linux启动sh文件命令,Linux下如何写 .sh 脚本启动 项目

Linux下如何写 .sh 脚本启动 项目创建文件 mealcoupon.sh内容如下&#xff1a;#!/bin/bash#这里可替换为你自己的执行程序&#xff0c;其他代码无需更改APP_NAMExhqy_yzf-1.0.0.war#项目的路径(替换成你项目的路径)PROJECT_LOCATION/home/xpro/xhqy_jt#使用说明&#xff0c;用…

[wikioi]奇怪的梦境

http://wikioi.com/problem/2833/ 拓扑排序&#xff0c;居然1A&#xff0c;哈哈。 #include <cstdio> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <memory.h> #define MAX(a, b) a>b?a:b…

linux所有用户无法登录用户名和密码错误,为什么linux登录不了啊,用户名和密码都没问题,就是出现这个,有高手指点一下。...

为什么linux登录不了啊&#xff0c;用户名和密码都没问题&#xff0c;就是出现这个&#xff0c;有高手指点一下。关注:121 答案:6 mip版解决时间 2021-02-04 23:27提问者删除记忆里的你2021-02-04 04:27最佳答案二级知识专家那年夏天2021-02-04 05:19用户名肯定是root&#x…

Notes of the scrum meeting(2013/10/23)

ps&#xff1a;本来是10月23号周三下午开的会&#xff0c;这几天由于各种事情忙&#xff0c;忘记写博客了&#xff0c;现在补上。 软工项目组buaa_smile开始项目第一次scrum meeting meeting time:4:00~5:00p.m.,October 23th,2013 meeting place:主M202 attendees: 顾育豪 …

linux查用户的家目录,详解Linux误删用户家目录的恢复方法

在生产中可能会由于误操作而删除了某一用户的家目录&#xff0c;这时就需要把用户的家目录安装创建新用户时的模板文件&#xff0c;再恢复并且要跟之前的权限相同。1. 创建一个新的用户用于测试[rootcentos6 aubin]# useradd wangcai2. 新用户创建完成时会在/home下面自动创建同…

linux spring mvc tomcat配置,Spring MVC配置详解

一、Spring MVC处理流程1.Spring MVC将所有请求都交由DispatchServlet进行处理。2.DispatchServlet获取HandlerMapping(处理映射器)&#xff0c;然后找到对应的HandlerBean处理Controller请求&#xff0c;并返回一个ModelAndView对象。3.DispatchServlet查询一个或多个ViewReso…

这段时

这段时间通过与大家一起努力与研究&#xff0c;用新的技术框架重新构建了某集团销售统计系统。在这里总结一下项目心得。 技术—— EasyUI更好前端设计&#xff0c;通过json生成相应UI组件。并且风格统一大方&#xff0c;比较好的支持异步调用。MVC更好的将显示与控制分离&…

如何在linux里面运行ncl,NCL基础讲解(二)——NCL安装与运行

NCL基础讲解(二)——NCL安装与运行兰溪之水2015-11-04上一期已经给大家简单介绍了NCL的基本情况&#xff0c;既然NCL在科学数据分析和可视化方面有那么多优点&#xff0c;那还等什么&#xff0c;让我们一起“用”起来吧&#xff01;这一期给大家介绍NCL的安装与运行。关于NCL的…

C#值类型和引用类型的不同

1 C#中有两种类型&#xff1a; 值类型和引用类型&#xff1a; 值类型的变量直接包含他们的数据&#xff0c;引用类型存储对他们的数据的引用&#xff0c;后者称为对象&#xff1a; 简单说:值类型直接存储其值,引用类型存储对值得引用.引用类型分为引用和引用的对象。2…

linux malloc命令,减少 curl 中内存分配操作(malloc)

今天我在 libcurl 内部又做了一个小改动&#xff0c;使其做更少的 malloc。这一次&#xff0c;泛型链表函数被转换成更少的 malloc (这才是链表函数应有的方式&#xff0c;真的)。研究 malloc几周前我开始研究内存分配。这很容易&#xff0c;因为多年前我们 curl 中就已经有内存…

Linux与Windows中动态链接库的分析与对比

摘要&#xff1a;动态链接库技术实现和设计程序常用的技术&#xff0c;在Windows和Linux系统中都有动态库的概念&#xff0c;采用动态库可以有效的减少程序大小&#xff0c;节省空间&#xff0c;提高效率&#xff0c;增加程序的可扩展性&#xff0c;便于模块化管理。但不同操作…

flume linux 命令,flume启动命令 · Mr.Deng’s Blog

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;突然发现拖了很久的flume启动命令了&#xff0c;今天就简单讲讲flume的启动命令吧。如何启动flumeflume目录以上是安装flume的目录&#xff0c;flume的启动主要是在…

stm32 IAP + APP ==双剑合一

&#xff08;扩展-IAP主要用于产品出厂后应用程序的更新作用&#xff0c;上一篇博文详细的对IAP 升级程序做了详细的分析http://blog.csdn.net/yx_l128125/article/details/12992773&#xff0c;考虑到出厂时要先烧写IAP 再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“…