<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0AHRno8cCp7ImA9WhRRFEk.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345</id><updated>2011-11-27T16:55:37.478-08:00</updated><category term="Recovery Scenerios" /><category term="Loops" /><category term="Database" /><category term="Quality Center Integration" /><category term="Checkpoint" /><category term="Data Table" /><category term="Automation Framework" /><category term="Descriptive Programming" /><category term="Record - Playback" /><category term="Working with Object Repository" /><category term="Parameterization in QTP" /><category term="Functions" /><category term="VBscript" /><category term="Object Identification" /><category term="Run Time Errors" /><category term="E-books" /><title>QuickTest Pro Fundas</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://qtp9.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>131</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/QuicktestProFundas" /><feedburner:info uri="quicktestprofundas" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-nd/2.0/" /><feedburner:emailServiceId>QuicktestProFundas</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;DkUNQXw4fyp7ImA9WxVRGEo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-725784312166936290</id><published>2009-01-25T01:04:00.001-08:00</published><updated>2009-01-25T01:04:50.237-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T01:04:50.237-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation Framework" /><title>Framework 5: Hybrid Test Automation Framework</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ECC0_Kf0ILUmGFjlSpeXzEwEyLA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ECC0_Kf0ILUmGFjlSpeXzEwEyLA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ECC0_Kf0ILUmGFjlSpeXzEwEyLA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ECC0_Kf0ILUmGFjlSpeXzEwEyLA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;text-indent:.5in;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;The most commonly implemented framework is a combination of all of the above techniques, pulling from their strengths and trying to mitigate their weaknesses. This hybrid test automation framework is what most frameworks evolve into over time and multiple projects. The most successful automation frameworks generally accommodate both Keyword-Driven testing as well as Data-Driven scripts. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;text-indent:.5in;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;This allows data driven scripts to take advantage of the powerful libraries and utilities that usually accompany a keyword driven architecture. The framework utilities can make the data driven scripts more compact and less prone to failure than they otherwise would have been. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="font-size:11.0pt;font-family:Arial;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;; mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;The utilities can also facilitate the gradual and manageable conversion of existing scripts to keyword driven equivalents when and where that appears desirable. On the other hand, the framework can use scripts to perform some tasks that might be too difficult to re-implement in a pure keyword driven approach, or where the keyword driven capabilities are not yet in place.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-725784312166936290?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=qzb4aQ43vFg:LCe3Mgac8Qw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/qzb4aQ43vFg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/725784312166936290/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=725784312166936290" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/725784312166936290?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/725784312166936290?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/qzb4aQ43vFg/framework-5-hybrid-test-automation.html" title="Framework 5: Hybrid Test Automation Framework" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2009/01/framework-5-hybrid-test-automation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUGR34zeip7ImA9WxVRGEo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-7526846385669524932</id><published>2009-01-15T01:01:00.000-08:00</published><updated>2009-01-25T01:03:46.082-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T01:03:46.082-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation Framework" /><title>Framework 4: Keyword-Driven Testing</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QTopIqRtlEgZW-F3I3MllhRIjgw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QTopIqRtlEgZW-F3I3MllhRIjgw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QTopIqRtlEgZW-F3I3MllhRIjgw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QTopIqRtlEgZW-F3I3MllhRIjgw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;text-indent:.5in;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;This requires the development of &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;data tables and keywords&lt;/span&gt;, independent of the test automation tool used to execute them and the test script code that "&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;drives&lt;/span&gt;" the application-under-test and the data. Keyword-driven tests look very similar to manual test cases. In a keyword-driven test, the functionality of the application-under-test is documented in a table as well as in step-by-step instructions for each test. In this method, the entire process is data-driven, including functionality. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:11.0pt;line-height: 150%;font-family:Arial"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:11.0pt;line-height: 150%;font-family:Arial"&gt; Example&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;text-indent:.5in;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;In order to open a window, the following table is devised, and it can be used for any other application, just it requires just changing the window name. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:1.0in;text-align:justify;text-indent: .5in;line-height:150%"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:1.0in;text-align:justify;text-indent: .5in;line-height:150%"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Test Table for Opening a Window&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;div align="center"&gt;  &lt;table class="MsoNormalTable" border="1" cellspacing="0" cellpadding="0" width="505" style="width:378.75pt;mso-cellspacing:0in;border:outset black 1.0pt;  mso-border-alt:outset black .75pt;mso-padding-alt:5.25pt 5.25pt 5.25pt 5.25pt"&gt;  &lt;tbody&gt;&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;height:8.25pt"&gt;   &lt;td width="121" valign="top" style="width:90.4pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:8.25pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:11.0pt;line-height:   150%;font-family:Arial"&gt;Window&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90" valign="top" style="width:67.2pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:8.25pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:11.0pt;line-height:   150%;font-family:Arial"&gt;Control&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="111" valign="top" style="width:83.05pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:8.25pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:11.0pt;line-height:   150%;font-family:Arial"&gt;Action&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="184" valign="top" style="width:138.1pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:8.25pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:11.0pt;line-height:   150%;font-family:Arial"&gt;Arguments&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:1;height:9.0pt"&gt;   &lt;td width="121" valign="top" style="width:90.4pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:9.0pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Window Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90" valign="top" style="width:67.2pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:9.0pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Menu&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="111" valign="top" style="width:83.05pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:9.0pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Click&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="184" valign="top" style="width:138.1pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:9.0pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;File, Open&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:2;height:9.0pt"&gt;   &lt;td width="121" valign="top" style="width:90.4pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:9.0pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Window Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90" valign="top" style="width:67.2pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:9.0pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Menu&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="111" valign="top" style="width:83.05pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:9.0pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Click&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="184" valign="top" style="width:138.1pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:9.0pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Close&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:3;height:9.0pt"&gt;   &lt;td width="121" valign="top" style="width:90.4pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:9.0pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Window Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90" valign="top" style="width:67.2pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:9.0pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Pushbutton&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="111" valign="top" style="width:83.05pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:9.0pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Click&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="184" valign="top" style="width:138.1pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:9.0pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Folder Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:4;mso-yfti-lastrow:yes;height:8.25pt"&gt;   &lt;td width="121" valign="top" style="width:90.4pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:8.25pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Window Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90" valign="top" style="width:67.2pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:8.25pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="111" valign="top" style="width:83.05pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:8.25pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Verify&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="184" valign="top" style="width:138.1pt;border:inset black 1.0pt;   mso-border-alt:inset black .75pt;padding:5.25pt 5.25pt 5.25pt 5.25pt;   height:8.25pt"&gt;   &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Results&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;  &lt;p class="MsoNormal" style="text-align:justify;text-indent:.5in;line-height:150%"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 15px; line-height: 22px; "&gt;Once creating the test tables, a driver script or a set of scripts is written that reads in each step executes the step based on the keyword contained the Action field, performs error checking, and logs any relevant information.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:11.0pt;line-height: 150%;font-family:Arial"&gt;&lt;o:p&gt; Merits of keyword driven testing&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;text-indent:.5in;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;The merits of the Keyword Driven Testing are as follows,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:1.0in;text-align:justify;text-indent: -.25in;line-height:150%;mso-list:l0 level1 lfo1;tab-stops:list 1.0in"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Wingdings;mso-fareast-font-family: Wingdings;mso-bidi-font-family:Wingdings"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;The Detail Test Plan can be written in Spreadsheet format containing all input and verification data. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:1.0in;text-align:justify;text-indent: -.25in;line-height:150%;mso-list:l0 level1 lfo1;tab-stops:list 1.0in"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Wingdings;mso-fareast-font-family: Wingdings;mso-bidi-font-family:Wingdings"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;If "utility" scripts can be created by someone proficient in the automated tool’s Scripting language prior to the Detail Test Plan being written, then the tester can use the Automated Test Tool immediately via the "spreadsheet-input" method, without needing to learn the Scripting language.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:1.0in;text-align:justify;text-indent: -.25in;line-height:150%;mso-list:l0 level1 lfo1;tab-stops:list 1.0in"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Wingdings;mso-fareast-font-family: Wingdings;mso-bidi-font-family:Wingdings"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;The tester need only learn the "Key Words" required, and the specific format to use within the Test Plan. This allows the tester to be productive with the test tool very quickly, and allows more extensive training in the test tool to be scheduled at a more convenient time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:11.0pt;line-height: 150%;font-family:Arial"&gt;&lt;o:p&gt;  Demerits of keyword driven testing&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;text-indent:.5in;line-height:150%"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;The demerits of the Keyword Driven Testing are as follows,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:1.0in;text-align:justify;text-indent: -.25in;line-height:150%;mso-list:l1 level1 lfo2;tab-stops:list 1.0in"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Wingdings;mso-fareast-font-family: Wingdings;mso-bidi-font-family:Wingdings"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;Development of "customized" (Application-Specific) Functions and Utilities requires proficiency in the tool’s Scripting language. (Note that this is also true for any method)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:1.0in;text-align:justify;text-indent: -.25in;line-height:150%;mso-list:l1 level1 lfo2;tab-stops:list 1.0in"&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Wingdings;mso-fareast-font-family: Wingdings;mso-bidi-font-family:Wingdings"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt;line-height:150%;font-family:Arial"&gt;If application requires more than a few "customized" Utilities, this will require the tester to learn a number of "Key Words" and special formats. This can be time-consuming, and may have an initial impact on Test Plan Development. Once the testers get used to this, however, the time required to produce a test case is greatly improved. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-7526846385669524932?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=NVyxAJ8mvdU:CWeH5h9VQFM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/NVyxAJ8mvdU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/7526846385669524932/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=7526846385669524932" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/7526846385669524932?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/7526846385669524932?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/NVyxAJ8mvdU/framework-4-keyword-driven-testing.html" title="Framework 4: Keyword-Driven Testing" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2009/01/framework-4-keyword-driven-testing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcCQnY4eyp7ImA9WxVRGEo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-5394368828374046734</id><published>2009-01-11T00:58:00.000-08:00</published><updated>2009-01-25T01:01:03.833-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T01:01:03.833-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation Framework" /><title>Framework 3: Data-Driven Testing</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1-Gj7ObrrEyt5wzZwURLPrElJ1w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1-Gj7ObrrEyt5wzZwURLPrElJ1w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1-Gj7ObrrEyt5wzZwURLPrElJ1w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1-Gj7ObrrEyt5wzZwURLPrElJ1w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt:auto;text-align:justify; text-indent:.5in;line-height:150%"&gt;&lt;span style="line-height: 150%;font-family:Arial;font-size:11.0pt;"&gt;A data-driven framework is where test input and output values are read from data files (ODBC sources, CVS files, Excel files, DAO objects, ADO objects, and such) and are loaded into variables in captured or manually coded scripts. In this framework, variables are used for both input values and output verification values. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt:auto;text-align:justify; text-indent:.5in;line-height:150%"&gt;&lt;span style="line-height: 150%;font-family:Arial;font-size:11.0pt;"&gt;Navigation through the program, reading of the data files, and logging of test status and information are all coded in the test script. This is similar to table-driven testing (which is discussed shortly) in that the test case is contained in the data file and not in the script; the script is just a "driver," or delivery mechanism, for the data. In data-driven testing, only test data is contained in the data files. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-margin-top-alt:auto;text-align:justify; line-height:150%"&gt;&lt;b&gt;&lt;span style="line-height:150%;font-family:Arial;font-size:11.0pt;"&gt;Merits of data-driven testing&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:150%;font-family:Arial;font-size:11.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-margin-top-alt:auto;text-align:justify; text-indent:.5in;line-height:150%"&gt;&lt;span style="line-height: 150%;font-family:Arial;font-size:11.0pt;"&gt;The merits of the Data-Driven test automation framework are as follows,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-margin-top-alt:auto;margin-left:1.0in;text-align: justify;text-indent:-.25in;line-height:150%;mso-list:l2 level1 lfo3;tab-stops: list 1.0in"&gt;&lt;span style="line-height: 150%;font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;font-size:11.0pt;"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:150%; font-family:Arial;font-size:11.0pt;"&gt;Scripts may be developed while application development is still in progress &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-margin-top-alt:auto;margin-left:1.0in;text-align: justify;text-indent:-.25in;line-height:150%;mso-list:l2 level1 lfo3;tab-stops: list 1.0in"&gt;&lt;span style="line-height: 150%;font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;font-size:11.0pt;"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:150%; font-family:Arial;font-size:11.0pt;"&gt;Utilizing a modular design, and using files or records to both input and verify data, reduces redundancy and duplication of effort in creating automated test scripts&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-margin-top-alt:auto;margin-left:1.0in;text-align: justify;text-indent:-.25in;line-height:150%;mso-list:l2 level1 lfo3;tab-stops: list 1.0in"&gt;&lt;span style="line-height: 150%;font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;font-size:11.0pt;"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:150%; font-family:Arial;font-size:11.0pt;"&gt;If functionality changes, only the specific "Business Function" script needs to be updated&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:1.0in;text-align:justify;text-indent: -.25in;line-height:150%;mso-list:l1 level1 lfo1;tab-stops:list 1.0in"&gt;&lt;span style="line-height:150%;font-family:Wingdings;mso-fareast-font-family: Wingdings;mso-bidi-font-family:Wingdings;font-size:11.0pt;"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:150%;font-family:Arial;font-size:11.0pt;"&gt;Data input/output and expected results are stored as easily maintainable text records. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:1.0in;text-align:justify;text-indent: -.25in;line-height:150%;mso-list:l1 level1 lfo1;tab-stops:list 1.0in"&gt;&lt;span style="line-height:150%;font-family:Wingdings;mso-fareast-font-family: Wingdings;mso-bidi-font-family:Wingdings;font-size:11.0pt;"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:150%;font-family:Arial;font-size:11.0pt;"&gt;Functions return "TRUE" or "FALSE" values to the calling script, rather than aborting, allowing for more effective error handling, and increasing the robustness of the test scripts. This, along with a well-designed "recovery" routine, enables "unattended" execution of test scripts. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="line-height: 150%;font-family:Arial;font-size:11.0pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;line-height:150%"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="line-height: 150%;font-family:Arial;font-size:11.0pt;"&gt;Demerits of data-driven testing&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;text-indent:.5in;line-height:150%"&gt;&lt;span style="line-height:150%;font-family:Arial;font-size:11.0pt;"&gt;The demerits of the Data-Driven test automation framework are as follows,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:1.0in;text-align:justify;text-indent: -.25in;line-height:150%;mso-list:l0 level1 lfo2;tab-stops:list 1.0in"&gt;&lt;span style="line-height:150%;font-family:Wingdings;mso-fareast-font-family: Wingdings;mso-bidi-font-family:Wingdings;font-size:11.0pt;"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:150%;font-family:Arial;font-size:11.0pt;"&gt;Requires proficiency in the Scripting language used by the tool (technical personnel)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:1.0in;text-align:justify;text-indent: -.25in;line-height:150%;mso-list:l0 level1 lfo2;tab-stops:list 1.0in"&gt;&lt;span style="line-height:150%;font-family:Wingdings;mso-fareast-font-family: Wingdings;mso-bidi-font-family:Wingdings;font-size:11.0pt;"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:150%;font-family:Arial;font-size:11.0pt;"&gt;Multiple data-files are required for each Test Case. There may be any number of data-inputs and verifications required, depending on how many different screens are accessed. This usually requires data-files to be kept in separate directories by Test Case&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:1.0in;text-align:justify;text-indent: -.25in;line-height:150%;mso-list:l0 level1 lfo2;tab-stops:list 1.0in"&gt;&lt;span style="line-height:150%;font-family:Wingdings;mso-fareast-font-family: Wingdings;mso-bidi-font-family:Wingdings;font-size:11.0pt;"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:150%;font-family:Arial;font-size:11.0pt;"&gt;Tester must not only maintain the Detail Test Plan with specific data, but must also re-enter this data in the various required data-files&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:1.0in;text-align:justify;text-indent: -.25in;line-height:150%;mso-list:l0 level1 lfo2;tab-stops:list 1.0in"&gt;&lt;span style="line-height:150%;font-family:Wingdings;mso-fareast-font-family: Wingdings;mso-bidi-font-family:Wingdings;font-size:11.0pt;"&gt;&lt;span style="mso-list:Ignore"&gt;Ø&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:150%;font-family:Arial;font-size:11.0pt;"&gt;If a simple "text editor" such as Notepad is used to create and maintain the data-files, careful attention must be paid to the format required by the scripts/functions that process the files, or script-processing errors will occur due to data-file format and/or content being incorrect&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-5394368828374046734?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=3zk7eNfDq9g:h-UQbmeZtNw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/3zk7eNfDq9g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/5394368828374046734/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=5394368828374046734" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/5394368828374046734?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/5394368828374046734?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/3zk7eNfDq9g/framework-3-data-driven-testing.html" title="Framework 3: Data-Driven Testing" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2009/01/framework-3-data-driven-testing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8HSHw4fyp7ImA9WxVRGEo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-5691364139287019141</id><published>2009-01-02T00:55:00.000-08:00</published><updated>2009-01-25T00:57:19.237-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T00:57:19.237-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation Framework" /><title>Framework 2 : Test Library Architecture</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XymKnUZfqqdkwSo7Qvo2l0Gsq4w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XymKnUZfqqdkwSo7Qvo2l0Gsq4w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XymKnUZfqqdkwSo7Qvo2l0Gsq4w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XymKnUZfqqdkwSo7Qvo2l0Gsq4w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;               The test library architecture framework is very similar to the test script modularity framework and offers the same advantages, but it divides the application-under-test into procedures and functions (or objects and methods depending on the implementation language) instead of scripts.&lt;br /&gt;             This framework requires the creation of library files (SQABasic libraries, APIs, DLLs, and such) that represent modules, sections, and functions of the application-under-test. These library files are then called directly from the test case script. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;            Much like script modularization this framework also yields a high degree of modularization and adds to the overall maintainability of the tests.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-5691364139287019141?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=dkRYcu5GTQQ:o5SK0cx-hE4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/dkRYcu5GTQQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/5691364139287019141/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=5691364139287019141" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/5691364139287019141?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/5691364139287019141?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/dkRYcu5GTQQ/framework-2-test-library-architecture.html" title="Framework 2 : Test Library Architecture" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2009/01/framework-2-test-library-architecture.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8NSH46eSp7ImA9WxVRGEo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-658712391365733853</id><published>2009-01-01T00:53:00.000-08:00</published><updated>2009-01-25T00:58:19.011-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T00:58:19.011-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation Framework" /><title>Framework 1: Test Script Modularity</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tBMEQRkjXm0ppygtnYnnPtzR73s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tBMEQRkjXm0ppygtnYnnPtzR73s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tBMEQRkjXm0ppygtnYnnPtzR73s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tBMEQRkjXm0ppygtnYnnPtzR73s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;               The test script modularity framework is the most basic of the frameworks. It's a well-known programming strategy to build an abstraction layer in front of a component to hide the component from the rest of the application.&lt;br /&gt;             This insulates the application from modifications in the component and provides modularity in the application design. When working with test scripts (in any language or proprietary environment) this can be achieved by &lt;span style="font-weight:bold;"&gt;creating small, independent scripts that represent modules, sections, and functions &lt;/span&gt;of the application-under-test.&lt;br /&gt;            Then these small scripts are taken and combined them in a hierarchical fashion to construct larger tests. The use of this framework will yield a higher degree of modularization and add to the overall maintainability of the test scripts.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-658712391365733853?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=OhlnCRyn96U:vHvIoMVMBIc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/OhlnCRyn96U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/658712391365733853/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=658712391365733853" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/658712391365733853?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/658712391365733853?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/OhlnCRyn96U/test-script-modularity.html" title="Framework 1: Test Script Modularity" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2009/01/test-script-modularity.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcERXg6fip7ImA9WxVRGEo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-5096345817874487206</id><published>2008-12-25T00:39:00.000-08:00</published><updated>2009-01-25T00:43:24.616-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T00:43:24.616-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Record - Playback" /><title>Record /Playback Myth</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GHUpDL4CoLFUPGVC3DmA1-ggR-c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GHUpDL4CoLFUPGVC3DmA1-ggR-c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GHUpDL4CoLFUPGVC3DmA1-ggR-c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GHUpDL4CoLFUPGVC3DmA1-ggR-c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;The test automation tool vendors market their product as the main feature of the tool is the ability to capture the user actions and later to playback them. Here is the basic paradigm for GUI-based automated regression testing – the so called Record/Playback method (&lt;b&gt;also called as Capture/Replay approach)&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
1. Design a test case in the test management tool.&lt;br /&gt;
&lt;br /&gt;
2. Using the capture feature of the automation testing tool record the user actions. The result is a macro-like script where each user action is presented.&lt;br /&gt;
&lt;br /&gt;
3. Enhance the recorded script with verification points, where some property or data is verified against an existing baseline. Add delay and wait states points where the different actions are synchronized.&lt;br /&gt;
&lt;br /&gt;
4. Playback the scripts and observe the results in the log of the test management tool.&lt;br /&gt;
&lt;br /&gt;
The basic drawback in this method is the scripts resulting from this method &lt;b&gt;contain hard-coded &lt;/b&gt;&lt;b&gt;values &lt;/b&gt;which must change if anything at all changes in our AUT. &lt;i&gt;The costs associated with maintaining such scripts are astronomical, and unacceptable.&lt;/i&gt; &lt;i&gt;These scripts are not reliable, even if the application has not changed, and often fail on replay (pop-up windows, messages, and other things can happen that did not happen when the test was recorded). &lt;/i&gt;&lt;br /&gt;
If the tester makes an error entering data, etc., the test must be re-recorded. If the application changes the test must be re-recorded. All that is being tested are things that already work. Areas that have errors are encountered in the recording process (which is manual testing, after all). These bugs are reported, but a script cannot be recorded until the software is corrected. So logically nothing is tested by this approach.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
So, avoid using "Record/Playback" as a method of automating testing. This method is fraught with problems, and is the most costly (time consuming) of all methods over the long term. &lt;i&gt;The record/playback feature of the test tool is useful for determining how the tool is trying to process or interact with the application under test, and can give us some ideas about how to develop your test scripts, but beyond that, its usefulness ends quickly.  &lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-5096345817874487206?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=u-m2QieGLJs:Xy6puVWRcnY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/u-m2QieGLJs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/5096345817874487206/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=5096345817874487206" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/5096345817874487206?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/5096345817874487206?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/u-m2QieGLJs/record-playback-myth.html" title="Record /Playback Myth" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2008/12/record-playback-myth.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUINQXo6cCp7ImA9WxVRGEo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-3561272188003651475</id><published>2008-12-05T00:49:00.000-08:00</published><updated>2009-01-25T00:53:10.418-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T00:53:10.418-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation Framework" /><title>Types of Test Automation Frameworks</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/la08fiwdtDggYiwp81OsHtwh0_s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/la08fiwdtDggYiwp81OsHtwh0_s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/la08fiwdtDggYiwp81OsHtwh0_s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/la08fiwdtDggYiwp81OsHtwh0_s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;There are several test automation frameworks available, among these the selection is made based on the factors such as reusability of both the scripts and the test assets. The different test automation frameworks available are as follows,&lt;br /&gt; Test Script Modularity&lt;br /&gt; Test Library Architecture&lt;br /&gt; Data-Driven Testing&lt;br /&gt; Keyword-Driven or Table-Driven Testing&lt;br /&gt; Hybrid Test Automation&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-3561272188003651475?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=m5mqeOUDRIg:JrlO19T23Ac:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/m5mqeOUDRIg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/3561272188003651475/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=3561272188003651475" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/3561272188003651475?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/3561272188003651475?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/m5mqeOUDRIg/types-of-test-automation-frameworks.html" title="Types of Test Automation Frameworks" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2008/12/types-of-test-automation-frameworks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4ESXY5cCp7ImA9WxRUGEg.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-2373093254864593680</id><published>2008-11-27T23:20:00.000-08:00</published><updated>2008-11-27T23:21:48.828-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-27T23:21:48.828-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Functions" /><category scheme="http://www.blogger.com/atom/ns#" term="VBscript" /><title>Difference between Function and Sub</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GDpYnC7c-xB_rfDN_Ppc6B82TWM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GDpYnC7c-xB_rfDN_Ppc6B82TWM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GDpYnC7c-xB_rfDN_Ppc6B82TWM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GDpYnC7c-xB_rfDN_Ppc6B82TWM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;In VBScript, there are two types of procedures:&lt;br /&gt;
&lt;br /&gt;
Sub Procedures&lt;br /&gt;
Function Procedures&lt;br /&gt;
Sub Procedures&lt;br /&gt;
&lt;br /&gt;
A sub procedure is a series of VBScript statements, enclosed by Sub and End Sub statements which perform actions but do not return a value. A sub procedure can take arguments. If a sub procedure doesn’t receive any arguments, its Sub statement must include an empty parenthesis().&lt;br /&gt;
&lt;br /&gt;
The following Sub procedure uses two intrinsic, or built-in, VBScript functions, MsgBox and InputBox , to prompt a user for information. It then displays the results of a calculation based on that information. The calculation is performed in a Function procedure created using VBScript. The Function procedure is shown after the following discussion.&lt;br /&gt;
&lt;br /&gt;
Sub ConvertTemp()&lt;br /&gt;
&lt;br /&gt;
temp = InputBox("Please enter the temperature in degrees F.", 1)&lt;br /&gt;
&lt;br /&gt;
MsgBox "The temperature is " &amp; Celsius(temp) &amp; " degrees C."&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
Function Procedures&lt;br /&gt;
&lt;br /&gt;
A function procedure is a series of VBScript statements enclosed by the Function and End Function statements. A function procedure is similar to a sub procedure but it can return value to the calling function. A function procedure can take arguments (constants, variables or expressions that are passed to it by a calling procedure). If a function procedure has no arguments, it Function statement must include an empty set of parenthesis. A function returns a value by assigning a value to its name in one or more statements of the procedure. Since VBScript has only one base data type, a function always returns a variant.&lt;br /&gt;
&lt;br /&gt;
In the following example, the Celsius function calculates degrees Celsius from degrees Fahrenheit. When the function is called from the ConvertTemp Sub procedure, a variable containing the argument value is passed to the function. The result of the calculation is returned to the calling procedure and displayed in a message box.&lt;br /&gt;
&lt;br /&gt;
Sub ConvertTemp()&lt;br /&gt;
temp = InputBox("Please enter the temperature in degrees F.", 1)&lt;br /&gt;
MsgBox "The temperature is " &amp; Celsius(temp) &amp; " degrees C."&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
Function Celsius(fDegrees)&lt;br /&gt;
Celsius = (fDegrees - 32) * 5 / 9&lt;br /&gt;
End Function&lt;br /&gt;
Tips:&lt;br /&gt;
To get data out of a procedure, you must use a Function. Remember, a Function procedure can return a value; a Sub procedure can't.&lt;br /&gt;
A Function in your code must always be used on the right side of a variable assignment or in an expression. &lt;br /&gt;
To call a Sub procedure from another procedure, type the name of the procedure along with values for any required arguments, each separated by a comma. The Call statement is not required, but if you do use it, you must enclose any arguments in parentheses.&lt;br /&gt;
The following example shows two calls to the MyProc procedure. One uses the Call statement in the code; the other doesn't. Both do exactly the same thing.&lt;br /&gt;
Call MyProc(firstarg, secondarg)&lt;br /&gt;
&lt;br /&gt;
MyProc firstarg, secondarg&lt;br /&gt;
&lt;br /&gt;
Notice that the parentheses are omitted in the call when the Call statement isn't used.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-2373093254864593680?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=_dmqpGeGWEQ:rY8GGtV5BM0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/_dmqpGeGWEQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/2373093254864593680/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=2373093254864593680" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/2373093254864593680?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/2373093254864593680?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/_dmqpGeGWEQ/difference-between-function-and-sub.html" title="Difference between Function and Sub" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2008/11/difference-between-function-and-sub.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08FQHk8cSp7ImA9WxdVFk8.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-4260280387614890786</id><published>2008-07-21T01:40:00.000-07:00</published><updated>2008-07-21T01:43:31.779-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-21T01:43:31.779-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Functions" /><category scheme="http://www.blogger.com/atom/ns#" term="Descriptive Programming" /><title>Data driven testing using excel in QTP</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MWCN3uqe4ZC0pvnu5W1h0T2zKEI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MWCN3uqe4ZC0pvnu5W1h0T2zKEI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MWCN3uqe4ZC0pvnu5W1h0T2zKEI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MWCN3uqe4ZC0pvnu5W1h0T2zKEI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;This is script for data driven using excel sheet.&lt;br /&gt;In this script we are not importing excel sheet to datatable. Directly values are supplied to application from excel sheet.&lt;br /&gt;&lt;br /&gt;set ex= CreateObject("Excel.Application")&lt;br /&gt;Set a=ex.Workbooks.open("D:\excel.xls")&lt;br /&gt;Set b=a.worksheets("Sheet1")&lt;br /&gt;&lt;br /&gt;dim login, pwd&lt;br /&gt;&lt;br /&gt;for i=1 to 3&lt;br /&gt;&lt;br /&gt;login=b.Cells(i,"A").value&lt;br /&gt;pwd=b.Cells(i,"B").value&lt;br /&gt;msgbox login&lt;br /&gt;msgbox pwd&lt;br /&gt;&lt;br /&gt;next&lt;br /&gt;&lt;br /&gt;"D:\excel.xls" is path of excel sheet.&lt;br /&gt;"sheet1" indicates sheet name in which values are present.&lt;br /&gt;A,B are column names in excel sheet.&lt;br /&gt;&lt;br /&gt;we have excel sheet with values as shown below in d drive.&lt;br /&gt;A B&lt;br /&gt;1 2&lt;br /&gt;3 4&lt;br /&gt;5 6&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-4260280387614890786?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=lW47sg--_Ys:B87v-GQiJls:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/lW47sg--_Ys" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/4260280387614890786/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=4260280387614890786" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/4260280387614890786?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/4260280387614890786?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/lW47sg--_Ys/data-driven-testing-using-excel-in-qtp.html" title="Data driven testing using excel in QTP" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2008/07/data-driven-testing-using-excel-in-qtp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIGQ3wzfSp7ImA9WxVRGEo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-8821838828538099982</id><published>2008-06-21T01:32:00.000-07:00</published><updated>2009-01-25T01:08:42.285-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T01:08:42.285-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Functions" /><category scheme="http://www.blogger.com/atom/ns#" term="VBscript" /><title>Count &amp; Close all browsers</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oZEHlSkH7PSPvD3DKNP0bGELsuY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oZEHlSkH7PSPvD3DKNP0bGELsuY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oZEHlSkH7PSPvD3DKNP0bGELsuY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oZEHlSkH7PSPvD3DKNP0bGELsuY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;QTP Script to get total count, names of all open browsers and to close them using descriptive programming..&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Set ab=Description.Create&lt;br /&gt;ab("micclass").value="Browser"&lt;br /&gt;Set obj=Desktop.ChildObjects(ab)&lt;br /&gt;msgbox obj.count&lt;br /&gt;For i=0 to obj.count-1&lt;br /&gt;c=obj(i).getroproperty("name")&lt;br /&gt;msgbox(c)&lt;br /&gt;obj(i).Close&lt;br /&gt;Next&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-8821838828538099982?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=F0i0CVvfYJw:bGj_3fcTdco:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/F0i0CVvfYJw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/8821838828538099982/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=8821838828538099982" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/8821838828538099982?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/8821838828538099982?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/F0i0CVvfYJw/count-close-all-browsers.html" title="Count &amp; Close all browsers" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2008/07/count-close-all-browsers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08FQHkzeCp7ImA9WxdVFk8.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-5150819263747436642</id><published>2008-05-21T01:35:00.000-07:00</published><updated>2008-07-21T01:43:31.780-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-21T01:43:31.780-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Functions" /><category scheme="http://www.blogger.com/atom/ns#" term="Descriptive Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="VBscript" /><title>Descriptive programming example</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fBCPVkUjbmIDEjKzf-Q0OkOJCGY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fBCPVkUjbmIDEjKzf-Q0OkOJCGY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fBCPVkUjbmIDEjKzf-Q0OkOJCGY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fBCPVkUjbmIDEjKzf-Q0OkOJCGY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;This is an example for descriptive programming in QTP for a checkbox.&lt;br /&gt;In this script we will check whether yahoologinpage(www.yahoomail.com) checkbox is checked or not&lt;br /&gt;&lt;br /&gt;Set g=Browser("name:=Yahoo.*").Page("title:=Yahoo.*")&lt;br /&gt;Set obj=Description.Create&lt;br /&gt;obj("htmltag").value="Input"&lt;br /&gt;obj("ClassName").value="webcheckbox"&lt;br /&gt;obj("type").value="checkbox"&lt;br /&gt;Set a=g.childobjects(obj)&lt;br /&gt;c=a(0).getroproperty("checked")&lt;br /&gt;msgbox(c)&lt;br /&gt;If c=0 Then&lt;br /&gt;msgbox "checkbox is not checked"&lt;br /&gt;else&lt;br /&gt;msgbox"checkbox is checked"&lt;br /&gt;End If&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-5150819263747436642?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=zARHg2a5ymA:AfyHJtOyba8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/zARHg2a5ymA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/5150819263747436642/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=5150819263747436642" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/5150819263747436642?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/5150819263747436642?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/zARHg2a5ymA/descriptive-programming-example.html" title="Descriptive programming example" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2008/05/descriptive-programming-example.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8GRX0-fSp7ImA9WxdVFk8.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-5849272976800374146</id><published>2008-04-20T23:48:00.000-07:00</published><updated>2008-07-21T01:27:04.355-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-21T01:27:04.355-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Functions" /><category scheme="http://www.blogger.com/atom/ns#" term="Database" /><category scheme="http://www.blogger.com/atom/ns#" term="Data Table" /><title>Data Driven Testing using Notepad in QTP</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/B14EdAOKXRJenADzmFbSZ0YdFKM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B14EdAOKXRJenADzmFbSZ0YdFKM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/B14EdAOKXRJenADzmFbSZ0YdFKM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B14EdAOKXRJenADzmFbSZ0YdFKM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Set&lt;br /&gt;f=createobject("scripting.filesystemobject")&lt;br /&gt;Set f1=f.createtextfile("d://file1.txt")&lt;br /&gt;f1.writeline"aaa bbb"&lt;br /&gt;f1.writeline"ccc ddd"&lt;br /&gt;f1.writeline"eee fff"&lt;br /&gt;f1.writeline"ggg hhh"&lt;br /&gt;f1.writeline"iii jjj"&lt;br /&gt;&lt;br /&gt;The above script creates a notepad in "d" drive with name file1&lt;p&gt;aaa bbb&lt;br /&gt;ccc ddd&lt;br /&gt;eee fff&lt;br /&gt;ggg hhh&lt;br /&gt;iii jjj&lt;/p&gt;&lt;p&gt;values are stored in file1.txt.&lt;/p&gt;&lt;p&gt;Set f2=f.opentextfile("d://file1.txt")&lt;br /&gt;&lt;/p&gt;&lt;p&gt;While f2.atendofstream&lt;&gt;true&lt;br /&gt;f3=f2.readline&lt;br /&gt;x=split(f3," ")&lt;br /&gt;msgbox x(0)&lt;br /&gt;msgbox x(1)&lt;/p&gt;&lt;p&gt;Wend&lt;/p&gt;&lt;p&gt;The above script is used for data driven using notepad directly.here we are not importing data to excel sheet.&lt;/p&gt;&lt;p&gt;directly values are retreived from notepad.&lt;/p&gt;&lt;p&gt;we are using while loop and reading each line till the end.&lt;/p&gt;&lt;p&gt;split function splits the line where space(" ")occurs.&lt;/p&gt;&lt;p&gt;line is divided to 2 parts.one before space and other after space&lt;/p&gt;&lt;p&gt;for example we have 1st line in notepad as aaa bbb&lt;/p&gt;&lt;p&gt;here aaa is 1st part and bbb is 2nd part&lt;/p&gt;&lt;p&gt;x(0)=aaa&lt;/p&gt;&lt;p&gt;x(1)=bbb&lt;/p&gt;&lt;p&gt;all values are read this way using while loop.&lt;br /&gt;One point to note here is if any line is empty in notepad datadriven testing is stopped before that line.&lt;/p&gt;&lt;p&gt;It will not proceed further.so we have to give values without any empty lines in notepad.&lt;/p&gt;&lt;p&gt;To make u more clear,&lt;br /&gt;suppose u have &lt;/p&gt;&lt;p&gt;aaa bbb&lt;/p&gt;&lt;p&gt;ccc ddd&lt;/p&gt;&lt;p&gt;Datadriven is stopped at aaa and bbb only because next line is empty.datadriven is stopped after 1st line.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-5849272976800374146?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=paLqdlkR6o0:QOlkY_ZWoVE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/paLqdlkR6o0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/5849272976800374146/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=5849272976800374146" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/5849272976800374146?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/5849272976800374146?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/paLqdlkR6o0/data-driven-testing-using-notepad-in.html" title="Data Driven Testing using Notepad in QTP" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2008/04/data-driven-testing-using-notepad-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIGQ3wzfSp7ImA9WxVRGEo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-4046142479863112943</id><published>2008-03-30T23:24:00.000-07:00</published><updated>2009-01-25T01:08:42.285-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T01:08:42.285-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Functions" /><category scheme="http://www.blogger.com/atom/ns#" term="VBscript" /><title>Some common QTP functions</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4dh2P_GsVmUxNCwavYnm4g3T8Ks/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4dh2P_GsVmUxNCwavYnm4g3T8Ks/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4dh2P_GsVmUxNCwavYnm4g3T8Ks/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4dh2P_GsVmUxNCwavYnm4g3T8Ks/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In this article I  captured some  functions which are captured from various sources. &lt;/p&gt; &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to check for the broken links (both textlinks and image links) on the page with VB script and not the checkpoints.&lt;/strong&gt;&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;set&lt;br /&gt;obj=Browser("name:=Blackboard.*").Page("title:=Blackboard.*").Frame("name:=main.*").object.all.tags("IMG")&lt;br /&gt;&lt;br /&gt;msgbox obj.length&lt;br /&gt;&lt;br /&gt;For each element in obj&lt;br /&gt;s1=element.nameProp&lt;br /&gt;&lt;br /&gt;If Browser().Page().Frame().Image("file&lt;br /&gt;name:="&amp;amp;s1,"index:=0").exist(0) then&lt;br /&gt;If Browser().Page().Frame().Image("file&lt;br /&gt;name:="&amp;amp;s1,"index:=0").Object.complete="True" then&lt;br /&gt;&lt;br /&gt;msgbox "pass"&lt;br /&gt;&lt;br /&gt;else&lt;br /&gt;msgbox "fail"&lt;br /&gt;&lt;br /&gt;end if&lt;br /&gt;end if&lt;br /&gt;&lt;br /&gt;Next&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Multiple Exit ways &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;It’s very easy to control the entry gate to an action or function - there’s only one way to enter them. However, the number of exit gates can vary widely from 1 to many according to the inner logic of the action/function. Today I’m going to address managing multiple exit gates in actions and functions.&lt;br /&gt;When everything goes according to plan, an action flow tends to be very simple. There may be inner loops, If or Select switches, but for the most part, the flow just runs straight down to the last line. The problems usually appear when… well, problems appear. If an application error occurs, or even just an unexpected business logic behavior, there might be no escape from immediately exiting the action. There’s no point trying to input 20 data fields, if the form they’re in didn’t even open, is there?The function is something like the following:&lt;br /&gt;&lt;br /&gt;‘.Action Code&lt;br /&gt;&lt;br /&gt;If CritialCondition = False Then ExitAction&lt;br /&gt;&lt;br /&gt;‘.Continue Action&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But this is uninformative. So we add a reporter command:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If CritialCondition = False Then&lt;br /&gt;&lt;br /&gt;Reporter.ReportEvent MicFail, "Something terrible has happened", "Aborting"&lt;br /&gt;ExitAction&lt;br /&gt;End If&lt;br /&gt;And we probably got some objects to remove from memory:&lt;br /&gt;If CritialCondition = False Then&lt;br /&gt;&lt;br /&gt;Reporter.ReportEvent MicFail, "Something terrible has happened", "Aborting"&lt;br /&gt;&lt;br /&gt;oFile.Close&lt;br /&gt;&lt;br /&gt;Set oFile = Nothing&lt;br /&gt;&lt;br /&gt;ExitAction&lt;br /&gt;&lt;br /&gt;End If&lt;br /&gt;============================================&lt;br /&gt;&lt;br /&gt;Ho wait, we’ve gathered some data we need to report back:&lt;br /&gt;If CritialCondition = False Then&lt;br /&gt;&lt;br /&gt;Reporter.ReportEvent MicFail, "Something terrible has happened", "Aborting"&lt;br /&gt;&lt;br /&gt;oFile.Close&lt;br /&gt;&lt;br /&gt;Set oFile = Nothing&lt;br /&gt;&lt;br /&gt;DataTable("out_EntityID", dtlocalsheet) = sEntityID&lt;br /&gt;&lt;br /&gt;‘More here&lt;br /&gt;&lt;br /&gt;ExitAction&lt;br /&gt;&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;========================&lt;br /&gt;&lt;br /&gt;Well, you probably get the picture. Pretty soon we get massive amounts of code in all the exit gates. This means we have duplicate code to maintain. Duplicate code is the digital manifestation of pure evil – and it’s never a good idea to have pure evil in you actions. Seriously though, this is exactly the kind of things that produces untraceable bugs, and it must be avoided at all cost.&lt;br /&gt;So, how can we deal with this situation? One way is to create an exit gate function. It’s the ONLY function I ever put within an action, and not in an external file. Here’s an example of my action template, with the function:&lt;br /&gt;Dim sResult ‘I store result data and values to be reported up the&lt;br /&gt;&lt;br /&gt;‘action-call chain&lt;br /&gt;&lt;br /&gt;Dim sActionReport ‘Instead of flooding the log with inner-action messages,&lt;br /&gt;&lt;br /&gt;‘I store them, and report all of them at the exit gate.&lt;br /&gt;&lt;br /&gt;‘Errors are still reported on-the-fly&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‘Action code goes here&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‘All the exit gates execute only one command : ActionEnd.&lt;br /&gt;&lt;br /&gt;‘It receives two parameters: Boolean for Pass/Fail,&lt;br /&gt;&lt;br /&gt;’string for the exit reason&lt;br /&gt;&lt;br /&gt;If CriticalCondition = False Then Call ActionEnd(False, "Reason for exiting")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‘Rest of action&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‘Even the normal successful action exit is managed through ActionEnd,&lt;br /&gt;&lt;br /&gt;’so the last line in every action is:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Call ActionEnd(True, "Action successful")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sub ActionEnd(bStatus, sReason)&lt;br /&gt;&lt;br /&gt;‘Report details&lt;br /&gt;&lt;br /&gt;Reporter.ReportEvent MicGeneral, "Inner Action Logs", sActionReport&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If bStatus = True Then&lt;br /&gt;&lt;br /&gt;Reporter.ReportEvent MicFail, "An error has occurred", sReason&lt;br /&gt;&lt;br /&gt;Else&lt;br /&gt;&lt;br /&gt;Reporter.ReportEvent MicPass, "Action successful", "See inner logs"&lt;br /&gt;&lt;br /&gt;End if&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‘Plant datatable info for action-call chain&lt;br /&gt;&lt;br /&gt;DataTable("out_Status", dtlocalsheet) = bStatus&lt;br /&gt;&lt;br /&gt;DataTable("out_Result", dtlocalsheet) = sResult&lt;br /&gt;&lt;br /&gt;‘More if needed&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‘Close objects and set to nothing here&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‘Other needed exit code&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ExitActionIteration&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;With this mechanism, maintaining the exit code becomes very simple, and the logs are much more readable. Ok, so this solves the problem for actions, but what about functions? Well, obviously we can write an inner function within a function, but there is an alternative solution. It’s less elegant than the ActionEnd solution by far, and is harder to maintain, so I recommend using it only in a small number of very complex functions.&lt;br /&gt;The solution is based on the Execute command, so I recommend reading about it in QTP’s help file in case you’re not familiar with it. In a nutshell, the Execute command takes a string, and runs its contents as if it were VBScript code. So for instance the command Execute "msgbox(2)" will pop a message box with the number 2. Here’s an example for the solution, applied to the ComplexFunc function:&lt;br /&gt;Function ComplexFunc&lt;br /&gt;&lt;br /&gt;Dim sExitCode&lt;br /&gt;&lt;br /&gt;Dim sResult&lt;br /&gt;&lt;br /&gt;Dim oFile ‘will be FSO textstream&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;’separate code lines by vbcrlf or ":"&lt;br /&gt;&lt;br /&gt;sExitCode = "oFile.Close" &amp;amp; vbcrlf &amp;amp; _&lt;br /&gt;&lt;br /&gt;"Set oFile = Nothing" &amp;amp; vbcrlf &amp;amp; _&lt;br /&gt;&lt;br /&gt;"ComplexFunc = sResult"&lt;br /&gt;&lt;br /&gt;‘More exit code&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‘Function code goes here&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‘Exit Gate&lt;br /&gt;&lt;br /&gt;If CriticalCondition = False then&lt;br /&gt;&lt;br /&gt;sResult = "False, No Connection"&lt;br /&gt;&lt;br /&gt;Execute sExitCode&lt;br /&gt;&lt;br /&gt;Exit Function&lt;br /&gt;&lt;br /&gt;End if&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‘More function code&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‘Successful exit&lt;br /&gt;&lt;br /&gt;Execute sExitCode&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Creating and Calling user define funtion &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Test Conditons: Creating and Calling user define funtion&lt;br /&gt;&lt;br /&gt;1. Crate small add function and make it compile module.&lt;br /&gt;&lt;br /&gt;2. calling that function in other test (using user defined data values)&lt;br /&gt;&lt;br /&gt;[ Pre Requesties : Nothing ]&lt;br /&gt;&lt;br /&gt;1a. open win runner blank test and add this below data&lt;br /&gt;&lt;br /&gt;public function add(in a, in b)&lt;br /&gt;{&lt;br /&gt;return a+b;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;1b. Go to File menu --&gt; Test Properties (Test Properties window will open)&lt;br /&gt;in General Tab --&gt; Test Type= Compile module and ok&lt;br /&gt;&lt;br /&gt;1c.Save the test in some location (Ex c:/tt )&lt;br /&gt;&lt;br /&gt;2a.Before writing code , you have to load the funtction in to your folder , globally available to all tests.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2b. Go to Tools menu --&gt; General Options&lt;br /&gt;--- Select Folder option in the left pan.&lt;br /&gt;-- Search Path for called test below enter the path of compile module&lt;br /&gt;(c:/tt) and press "+" button to add in to.&lt;br /&gt;&lt;br /&gt;2c. Write down the bleow code in the new test&lt;br /&gt;&lt;br /&gt;load("c:/tt");&lt;br /&gt;l= create_input_dialog("Enter First value");&lt;br /&gt;j=create_input_dialog("Enter Second Value");&lt;br /&gt;k=add(l,j);&lt;br /&gt;report_msg(k);&lt;br /&gt;unload("c:/tt"); &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-4046142479863112943?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=JjHYAFk1Ino:_bMBup6l39I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/JjHYAFk1Ino" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/4046142479863112943/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=4046142479863112943" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/4046142479863112943?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/4046142479863112943?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/JjHYAFk1Ino/some-common-qtp-functions.html" title="Some common QTP functions" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2008/03/some-common-qtp-functions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUNSH0_fSp7ImA9WxZXEEU.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-9055614060046966997</id><published>2008-02-26T20:51:00.000-08:00</published><updated>2008-02-26T20:58:19.345-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-26T20:58:19.345-08:00</app:edited><title>WinRunner End-of-support and Migration Webinar</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NdkmBm1e4sSYEjxUC0Y6JpMVQgs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NdkmBm1e4sSYEjxUC0Y6JpMVQgs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NdkmBm1e4sSYEjxUC0Y6JpMVQgs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NdkmBm1e4sSYEjxUC0Y6JpMVQgs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Make sure your HP emails always go straight to your inbox. Add sw-bulletins@info.hp.com to your address book! &lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWG.1KrI.FSMEdA00" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWG.1KrI.FSMEdA00"&gt;Need Help?&lt;/a&gt;&lt;br /&gt;WinRunner End-of-Support Announcement&lt;br /&gt;HP WinRunner Migration Webinar: A Case Study from Travelocity» &lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWI.1KrI.az1udWxsDSfeFWJ0" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWI.1KrI.az1udWxsDSfeFWJ0"&gt;Register Now&lt;/a&gt;Live date: Tuesday, March 11, 2008 Start time: 7:00 AM PT9:00 AM CT10:00 AM ET3:00 PM GMTSpeakers: Rachel Pilgrim, QA Manager,TravelocitySatish Atluri, HP QM Global Practices Roi Carmel, Functional Testing Product Manager, HP Software&lt;br /&gt;&lt;br /&gt;Learn more&lt;br /&gt;&lt;br /&gt;» &lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWK.1KrI.FdUEdE00" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWK.1KrI.FdUEdE00"&gt;WinRunner End-of-Support Announcement&lt;/a&gt;» &lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWM.1KrI.GDIEdG00" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWM.1KrI.GDIEdG00"&gt;WinRunner migration data sheet&lt;/a&gt;&lt;br /&gt;&lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWQ.1KrI.az1udWxsDTaOFWR0" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWQ.1KrI.az1udWxsDTaOFWR0"&gt;Find out how to accelerate migration from WinRunner to QuickTest Professional&lt;/a&gt; &lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWS.1KrI.az1udWxsDUBCFWT0" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWS.1KrI.az1udWxsDUBCFWT0"&gt;»&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;IMPORTANT ANNOUNCEMENT FOR WINRUNNER USERSHP Software is announcing end-of-support for HP WinRunner software, all versions (7.5, 7.6, 8.0, 8.2, 9.2). This end-of-support is based on our decision to consolidate and focus our functional testing offerings (HP WinRunner and HP QuickTest Professional) to maximize value to our customers. For migration options, support end dates and a list of FAQs, read the entire announcement &lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWU.1KrI.GZYEdO00" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWU.1KrI.GZYEdO00"&gt;here&lt;/a&gt;.Migration WebinarTo assist you with the migration from HP WinRunner to HP QuickTest Professional, we are hosting a Webinar with HP Professional Services (PS) and Travelocity who pioneered the HP WinRunner to HP QuickTest Professional migration effort. In this Webinar, Travelocity will share how they leveraged Gallop Technologies’ WinQuick – an HP R&amp;amp;D validated and approved automated migration solution – to automatically migrate and re-architect their HP WinRunner code base to HP QuickTest Professional. You will learn:&lt;br /&gt;• What options Travelocity evaluated before undertaking this migration&lt;br /&gt;• How Travelocity was able to perform this migration within budget and in less time than expected while at the same time increasing adoption of HP QuickTest Professional across the enterprise&lt;br /&gt;• How you can replicate Travelocity’s success in your own organization&lt;br /&gt;Don’t miss this opportunity to get insights from a customer who had great success with this migration.&lt;br /&gt;&lt;br /&gt;Technology for better business outcomes&lt;br /&gt;&lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWY.1KrI.HFAEdS00" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWY.1KrI.HFAEdS00"&gt;» HP Software&lt;/a&gt;&lt;br /&gt;&lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWa.1KrI.HbQEda00" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWa.1KrI.HbQEda00"&gt;» Sales&lt;/a&gt;&lt;br /&gt;&lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWc.1KrI.IBEEdc00" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWc.1KrI.IBEEdc00"&gt;» Privacy Policy&lt;/a&gt;&lt;br /&gt;&lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWe.1KrI.IGYEde00" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWe.1KrI.IGYEde00"&gt;» Unsubscribe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you received this e-mail from a friend and/or would like to subscribe to our e-mail list to receive future promotions and special offers, please &lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWg.1KrI.IMMEeA00" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWg.1KrI.IMMEeA00"&gt;click here&lt;/a&gt;.HP respects your privacy. If you'd like to discontinue receiving e-mails from HP regarding special offers and information, please &lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWi.1KrI.aT12cnJlZGR5QGFkb2JlLmNvbQ%5f%5fQRAHIK00" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWi.1KrI.aT12cnJlZGR5QGFkb2JlLmNvbQ%5f%5fQRAHIK00"&gt;click here&lt;/a&gt;.For more information regarding HP's privacy policy or to obtain contact information please visit our &lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWk.1KrI.IXUEeE00" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWk.1KrI.IXUEeE00"&gt;privacy statement&lt;/a&gt; or write to us at: Privacy Mailbox, 20555 SH 249, Houston, Texas 77070, ATTN: HP Privacy MailboxHewlett-Packard &lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWm.1KrI.IdIEeG00" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWm.1KrI.IdIEeG00"&gt;website&lt;/a&gt;&lt;a title="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWo.1KrI.JCcEeI00" href="http://info.hp.com/r?2.1.3KT.2Za.xkChe.B%5fnAOc..N.DQWo.1KrI.JCcEeI00"&gt;Sign-up&lt;/a&gt; for Driver and Support Alerts&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-9055614060046966997?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=mxoPEU42tw4:fNZMlPyGKJo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/mxoPEU42tw4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/9055614060046966997/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=9055614060046966997" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/9055614060046966997?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/9055614060046966997?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/mxoPEU42tw4/winrunner-end-of-support-and-migration.html" title="WinRunner End-of-support and Migration Webinar" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2008/02/winrunner-end-of-support-and-migration.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAFRHY9cSp7ImA9WxZTFUo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-8807817741548904695</id><published>2008-01-17T04:53:00.001-08:00</published><updated>2008-01-17T04:58:35.869-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-17T04:58:35.869-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Functions" /><category scheme="http://www.blogger.com/atom/ns#" term="VBscript" /><category scheme="http://www.blogger.com/atom/ns#" term="Checkpoint" /><title>Verify Broken Links using VBscript (without checkpoints)</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/83SkPi2J6_ZxTUDZv77w0nTarwI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/83SkPi2J6_ZxTUDZv77w0nTarwI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/83SkPi2J6_ZxTUDZv77w0nTarwI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/83SkPi2J6_ZxTUDZv77w0nTarwI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="gmail_quote"&gt;One of my friends just wanted to check for the broken links (both textlinks and image links) on the page with VB script and not the checkpoints.&lt;br /&gt;So the answer for that was the following code&lt;br /&gt;---------------------------------------------------------&lt;br /&gt; set&lt;br /&gt;obj=Browser("name:=Blackboard.*").Page("title:=Blackboard.*").Frame("name:=main.*").object.all.tags("IMG")&lt;br /&gt;&lt;br /&gt;msgbox obj.length&lt;br /&gt;&lt;br /&gt;For each element in obj&lt;br /&gt;s1=element.nameProp  &lt;br /&gt;&lt;br /&gt;If Browser().Page().Frame().Image("file&lt;br /&gt;name:="&amp;amp;s1,"index:=0").exist(0) then&lt;br /&gt;If Browser().Page().Frame().Image("file&lt;br /&gt;name:="&amp;amp;s1,"index:=0").Object.complete="True" then&lt;br /&gt;&lt;br /&gt;msgbox "pass"&lt;br /&gt;&lt;br /&gt;else&lt;br /&gt;msgbox "fail"&lt;br /&gt;&lt;br /&gt;end if&lt;br /&gt;end if&lt;br /&gt;&lt;br /&gt;Next&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Code provided by my friend Shiva&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-8807817741548904695?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=AY0oiNWWc4Q:GaLV78OWmFs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/AY0oiNWWc4Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/8807817741548904695/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=8807817741548904695" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/8807817741548904695?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/8807817741548904695?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/AY0oiNWWc4Q/verify-tlinks-links-using-vbscript.html" title="Verify Broken Links using VBscript (without checkpoints)" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2008/01/verify-tlinks-links-using-vbscript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkECRXw_eSp7ImA9WxVRGEo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-6169143742166464745</id><published>2008-01-14T09:18:00.000-08:00</published><updated>2009-01-25T01:11:04.241-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T01:11:04.241-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Functions" /><category scheme="http://www.blogger.com/atom/ns#" term="VBscript" /><title>Multiple Exit ways</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/f7HqFXRvIl-rcRW7bGakZiJJGTU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f7HqFXRvIl-rcRW7bGakZiJJGTU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/f7HqFXRvIl-rcRW7bGakZiJJGTU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f7HqFXRvIl-rcRW7bGakZiJJGTU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt;It’s very easy to control the entry gate to an action or function - there’s only one way to enter them. However, the number of exit gates can vary widely from 1 to many according to the inner logic of the action/function. Today I’m going to address managing multiple exit gates in actions and functions.&lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt;When everything goes according to plan, an action flow tends to be very simple. There may be inner loops, If or Select switches, but for the most part, the flow just runs straight down to the last line. The problems usually appear when… well, problems appear. If an application error occurs, or even just an unexpected business logic behavior, there might be no escape from immediately exiting the action. There’s no point trying to input 20 data fields, if the form they’re in didn’t even open, is there?&lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt;Thankfully, the nice guys and gals at Mercury have taken this into account, and have provided us with the ExitAction and ExitActionIteration commands. So usually we’ve got something like the following:&lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div class="ch_code_container" style="font-family: monospace; height: 100%;"&gt; &lt;p&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-size:85%;"&gt;‘.Action Code&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; CritialCondition = &lt;span style="color: rgb(0, 0, 153);"&gt;False&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt; ExitAction&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-size:85%;"&gt;‘.Continue Action&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: monospace;"&gt;B&lt;/span&gt;ut this is uninformative. So we add a reporter command:&lt;/span&gt;&lt;span style="font-family: mon;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: mon;"&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;If CritialCondition = False Then&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span&gt;&lt;span style="font-size:85%;"&gt;Reporter.ReportEvent MicFail, "Something terrible has happened", "Aborting"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt;  ExitAction&lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt;End If&lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt;And we probably got some objects to remove from memory:&lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div class="ch_code_container" style="font-family: monospace; height: 100%;"&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; CritialCondition = &lt;span style="color: rgb(0, 0, 153);"&gt;False&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  Reporter.&lt;span style="color: rgb(0, 0, 0);"&gt;ReportEvent&lt;/span&gt; MicFail, &lt;span style="color: rgb(153, 51, 51);"&gt;"Something terrible has happened"&lt;/span&gt;, &lt;span style="color: rgb(153, 51, 51);"&gt;"Aborting"&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  oFile.&lt;span style="color: rgb(0, 0, 153);"&gt;Close&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt;Set&lt;/span&gt; oFile = &lt;span style="color: rgb(0, 0, 153);"&gt;Nothing&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  ExitAction&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;End&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;If&lt;/span&gt;&lt;br /&gt;============================================ &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt;Ho wait, we’ve gathered some data we need to report back:&lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div class="ch_code_container" style="font-family: monospace; height: 100%;"&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; CritialCondition = &lt;span style="color: rgb(0, 0, 153);"&gt;False&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  Reporter.&lt;span style="color: rgb(0, 0, 0);"&gt;ReportEvent&lt;/span&gt; MicFail, &lt;span style="color: rgb(153, 51, 51);"&gt;"Something terrible has happened"&lt;/span&gt;, &lt;span style="color: rgb(153, 51, 51);"&gt;"Aborting"&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  oFile.&lt;span style="color: rgb(0, 0, 153);"&gt;Close&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt;Set&lt;/span&gt; oFile = &lt;span style="color: rgb(0, 0, 153);"&gt;Nothing&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  DataTable&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 51, 51);"&gt;"out_EntityID"&lt;/span&gt;, dtlocalsheet&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; = sEntityID&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;‘More here&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  ExitAction&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;End&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;If&lt;/span&gt;&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt;========================&lt;br /&gt; &lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt;Well, you probably get the picture. Pretty soon we get massive amounts of code in all the exit gates. This means we have duplicate code to maintain. Duplicate code is the digital manifestation of pure evil – and it’s never a good idea to have pure evil in you actions. Seriously though, this is exactly the kind of things that produces untraceable bugs, and it must be avoided at all cost. &lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt;So, how can we deal with this situation? One way is to create an exit gate function. It’s the ONLY function I ever put within an action, and not in an external file. Here’s an example of my action template, with the function:&lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div class="ch_code_container" style="font-family: monospace; height: 100%;"&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;Dim&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; sResult    &lt;span style="color: rgb(0, 153, 0);"&gt;‘I store result data and values to be reported up the&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;               &lt;span style="color: rgb(0, 153, 0);"&gt;‘action-call chain&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;Dim&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; sActionReport     &lt;span style="color: rgb(0, 153, 0);"&gt;‘Instead of flooding the log with inner-action messages,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;                      &lt;span style="color: rgb(0, 153, 0);"&gt;‘I store them, and report all of them at the exit gate.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;                      &lt;span style="color: rgb(0, 153, 0);"&gt;‘Errors are still reported on-the-fly&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-size:85%;"&gt;‘Action code goes here&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-size:85%;"&gt;‘All the exit gates execute only one command : ActionEnd.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-size:85%;"&gt;‘It receives two parameters: Boolean for Pass/Fail, &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;                            &lt;span style="color: rgb(0, 153, 0);"&gt;’string for the exit reason&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; CriticalCondition = &lt;span style="color: rgb(0, 0, 153);"&gt;False&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Call&lt;/span&gt; ActionEnd&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;False&lt;/span&gt;, &lt;span style="color: rgb(153, 51, 51);"&gt;"Reason for exiting"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-size:85%;"&gt;‘Rest of action&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-size:85%;"&gt;‘Even the normal successful action exit is managed through ActionEnd, &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-size:85%;"&gt;’so the last line in every action is:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;Call&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; ActionEnd&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;True&lt;/span&gt;, &lt;span style="color: rgb(153, 51, 51);"&gt;"Action successful"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; ActionEnd&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;bStatus, sReason&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;‘Report details&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  Reporter.&lt;span style="color: rgb(0, 0, 0);"&gt;ReportEvent&lt;/span&gt; MicGeneral, &lt;span style="color: rgb(153, 51, 51);"&gt;"Inner Action Logs"&lt;/span&gt;, sActionReport&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt;If&lt;/span&gt; bStatus = &lt;span style="color: rgb(0, 0, 153);"&gt;True&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;    Reporter.&lt;span style="color: rgb(0, 0, 0);"&gt;ReportEvent&lt;/span&gt; MicFail, &lt;span style="color: rgb(153, 51, 51);"&gt;"An error has occurred"&lt;/span&gt;, sReason&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt;Else&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;    Reporter.&lt;span style="color: rgb(0, 0, 0);"&gt;ReportEvent&lt;/span&gt; MicPass, &lt;span style="color: rgb(153, 51, 51);"&gt;"Action successful"&lt;/span&gt;, &lt;span style="color: rgb(153, 51, 51);"&gt;"See inner logs"&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt;End&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;‘Plant datatable info for action-call chain&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  DataTable&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 51, 51);"&gt;"out_Status"&lt;/span&gt;, dtlocalsheet&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; = bStatus&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  DataTable&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 51, 51);"&gt;"out_Result"&lt;/span&gt;, dtlocalsheet&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; = sResult&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;‘More if needed&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;‘Close objects and set to nothing here&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;‘Other needed exit code&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  ExitActionIteration&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;End&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Sub&lt;/span&gt;&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt;With this mechanism, maintaining the exit code becomes very simple, and the logs are much more readable. Ok, so this solves the problem for actions, but what about functions? Well, obviously we can write an inner function within a function, but there is an alternative solution. It’s less elegant than the ActionEnd solution by far, and is harder to maintain, so I recommend using it only in a small number of very complex functions.&lt;/span&gt;&lt;/div&gt;  &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt;The solution is based on the Execute command, so I recommend reading about it in QTP’s help file in case you’re not familiar with it. In a nutshell, the Execute command takes a string, and runs its contents as if it were VBScript code. So for instance the command Execute "msgbox(2)" will pop a message box with the number 2. Here’s an example for the solution, applied to the ComplexFunc function:&lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div class="ch_code_container" style="font-family: monospace; height: 100%;"&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;Function&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; ComplexFunc&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt;Dim&lt;/span&gt; sExitCode&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt;Dim&lt;/span&gt; sResult&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt;Dim&lt;/span&gt; oFile        &lt;span style="color: rgb(0, 153, 0);"&gt;‘will be FSO textstream&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;’separate code lines by vbcrlf or ":"&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  sExitCode =    &lt;span style="color: rgb(153, 51, 51);"&gt;"oFile.Close"&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbcrlf&lt;/span&gt; &amp;amp; _&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;             &lt;span style="color: rgb(153, 51, 51);"&gt;"Set oFile = Nothing"&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbcrlf&lt;/span&gt; &amp;amp; _&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;             &lt;span style="color: rgb(153, 51, 51);"&gt;"ComplexFunc = sResult"&lt;/span&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;             &lt;span style="color: rgb(0, 153, 0);"&gt;‘More exit code &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;‘Function code goes here&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;‘Exit Gate&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt;If&lt;/span&gt; CriticalCondition = &lt;span style="color: rgb(0, 0, 153);"&gt;False&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;then&lt;/span&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;    sResult = &lt;span style="color: rgb(153, 51, 51);"&gt;"False, No Connection"&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;    Execute sExitCode&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;Exit&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Function&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt;End&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;‘More function code&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;‘Successful exit&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;  Execute sExitCode&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;End&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Function&lt;/span&gt;&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-6169143742166464745?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=kxnCv42O-js:vk2ulW5AuVA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/kxnCv42O-js" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/6169143742166464745/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=6169143742166464745" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/6169143742166464745?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/6169143742166464745?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/kxnCv42O-js/multiple-exit-ways.html" title="Multiple Exit ways" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2008/01/multiple-exit-ways.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkECRXw_eSp7ImA9WxVRGEo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-256608359404922511</id><published>2007-12-20T01:45:00.000-08:00</published><updated>2009-01-25T01:11:04.241-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T01:11:04.241-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Functions" /><category scheme="http://www.blogger.com/atom/ns#" term="VBscript" /><title>Creating and Calling user define funtion</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mmuOjCgH26HIdf8uDrbp0bzxw5o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mmuOjCgH26HIdf8uDrbp0bzxw5o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mmuOjCgH26HIdf8uDrbp0bzxw5o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mmuOjCgH26HIdf8uDrbp0bzxw5o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;table cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;span style="font-size:85%;"&gt; &lt;span xmlns=""&gt; &lt;p&gt;&lt;span style="font-size: 8pt; font-family: Verdana;"&gt;&lt;strong&gt;Test Conditons:  Creating and Calling  user define funtion&lt;/strong&gt;&lt;span style="color: rgb(78, 78, 78);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;1. Crate small  add function and make it compile module.&lt;br /&gt;&lt;br /&gt;2. calling that function in  other test (using user defined data values)&lt;/span&gt;&lt;span style="color: rgb(78, 78, 78);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: red;"&gt;[ Pre Requesties  : Nothing ]&lt;/span&gt;&lt;span style="color: rgb(78, 78, 78);"&gt;&lt;br /&gt;&lt;br /&gt;1a. open win runner blank  test and add this below data&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: brown;"&gt;public  function add(in a, in b)&lt;br /&gt;{&lt;br /&gt;return a+b;&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: rgb(78, 78, 78);"&gt;&lt;br /&gt;&lt;br /&gt;1b. Go to File menu --&gt; Test Properties (Test  Properties window will open)&lt;br /&gt;                 in General Tab --&gt; Test  Type= Compile module and ok&lt;br /&gt;&lt;br /&gt;1c.Save the test in some location (Ex c:/tt  )&lt;br /&gt;&lt;br /&gt;2a.Before writing code , you have to load the funtction in to your  folder , globally available to all tests.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 8pt; font-family: Verdana;"&gt;&lt;span style="color: rgb(78, 78, 78);"&gt;2b. Go to Tools menu --&gt; General Options &lt;br /&gt;           ---  Select Folder option in the left pan.&lt;br /&gt;                --   Search Path for called test below enter the path of compile  module&lt;br /&gt;                     (c:/tt) and press "+" button to add in  to.&lt;br /&gt;&lt;br /&gt;2c. Write down the bleow code in the new test&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: brown;"&gt;load("c:/tt");&lt;br /&gt;l= create_input_dialog("Enter First  value");&lt;br /&gt;j=create_input_dialog("Enter Second  Value");&lt;br /&gt;k=add(l,j);&lt;br /&gt;report_msg(k);&lt;br /&gt;unload("c:/tt");&lt;/span&gt;&lt;span style="color: rgb(78, 78, 78);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: red;"&gt;[ load( ) ,  unload ( ) - to lload and unload from the memory ]&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;br /&gt;[Same way You can use Winrunner TSL Script to User  Defined function&lt;/span&gt;&lt;span style="color: rgb(78, 78, 78);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt; &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-256608359404922511?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=ZHvLES4N94U:V38WW-T-O-g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/ZHvLES4N94U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/256608359404922511/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=256608359404922511" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/256608359404922511?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/256608359404922511?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/ZHvLES4N94U/creating-and-calling-user-define.html" title="Creating and Calling user define funtion" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2007/12/creating-and-calling-user-define.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MMQnc_cSp7ImA9WB9bEEg.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-4406115151472324601</id><published>2007-12-19T01:06:00.001-08:00</published><updated>2007-12-19T01:11:23.949-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-12-19T01:11:23.949-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Checkpoint" /><title>Diff between Image &amp; Bit map Check point</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3u_pO3YXJ5SvXKjkDpkY-EXRVqE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3u_pO3YXJ5SvXKjkDpkY-EXRVqE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3u_pO3YXJ5SvXKjkDpkY-EXRVqE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3u_pO3YXJ5SvXKjkDpkY-EXRVqE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family: Verdana; font-size: 85%;"&gt;&lt;b&gt;Image checkpoints&lt;/b&gt; enable you to check the properties of a Web image. You can check an area of a Web page or application as a bitmap. While creating a test or component, you specify the area you want to check by selecting an object. You can check an entire object or any area within an object. QuickTest captures the specified object as a bitmap, and inserts a checkpoint in the test or component. You can also choose to save only the selected area of the object with your test or component in order to save disk Space For example, suppose you have a Web site that can display a map of a city the user specifies. The map has control keys for zooming. You can record the new map that is displayed after one click on the control key that zooms in the map. Using the bitmap checkpoint, you can check that the map zooms in correctly. &lt;/span&gt;&lt;br&gt;&lt;span style="font-family: Verdana; font-size: 85%;"&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family: Verdana; font-size: 85%;"&gt;You can create bitmap checkpoints for all supported testing environments (as long as the appropriate add-ins are loaded). &lt;/span&gt;&lt;br&gt;&lt;strong&gt;&lt;span style="font-family: Verdana; font-size: 85%;"&gt;Note: &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana; font-size: 85%;"&gt;The results of bitmap checkpoints may be affected by factors such as operating system, screen resolution, and color settings. &lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-4406115151472324601?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=aDHZ_GyC8L4:LNh9PmM952E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/aDHZ_GyC8L4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/4406115151472324601/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=4406115151472324601" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/4406115151472324601?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/4406115151472324601?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/aDHZ_GyC8L4/diff-between-image-bit-map-check-point.html" title="Diff between Image &amp; Bit map Check point" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2007/12/diff-between-image-bit-map-check-point.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAAQng4eSp7ImA9WxZSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-6194948785046790742</id><published>2007-12-19T01:04:00.001-08:00</published><updated>2008-01-23T05:09:03.631-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-23T05:09:03.631-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Parameterization in QTP" /><title>How many ways we can parameterize data in QTP?</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bKjgNOD1ooRSiy0V-SZghzfxNic/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bKjgNOD1ooRSiy0V-SZghzfxNic/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bKjgNOD1ooRSiy0V-SZghzfxNic/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bKjgNOD1ooRSiy0V-SZghzfxNic/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;There are four types of parameters:&lt;br&gt;&lt;strong&gt;Test, action or component parameters&lt;/strong&gt; enable you to use values passed from your test or component, or values from other actions in your test.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Data Table parameters &lt;/strong&gt; enable you to create a data-driven test (or action) that runs several times using the data you supply. In each repetition, or iteration, QuickTest uses a different value from the Data Table.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Environment variable parameters&lt;/strong&gt; enable you to use variable values from other sources during the run session. These may be values you supply, or values that QuickTest generates for you based on conditions and options you choose.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Random number parameters&lt;/strong&gt; enable you to insert random numbers as values in your test or component. For example, to check how your application handles small and large ticket orders, you can have QuickTest generate a random number and insert it in a number of tickets edit field. &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-6194948785046790742?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=Ma1lSkmDqw0:6oFeQSKPwH0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/Ma1lSkmDqw0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/6194948785046790742/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=6194948785046790742" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/6194948785046790742?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/6194948785046790742?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/Ma1lSkmDqw0/how-many-ways-we-can-parameterize-data.html" title="How many ways we can parameterize data in QTP?" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2007/12/how-many-ways-we-can-parameterize-data.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUINQXo6cCp7ImA9WxVRGEo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-8415756300615484970</id><published>2007-12-19T01:03:00.001-08:00</published><updated>2009-01-25T00:53:10.418-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T00:53:10.418-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation Framework" /><title>Choosing a test automation framework</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8cPmMKQMFBOMKpVi36vk0tMFkWg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8cPmMKQMFBOMKpVi36vk0tMFkWg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8cPmMKQMFBOMKpVi36vk0tMFkWg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8cPmMKQMFBOMKpVi36vk0tMFkWg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;There are lot of resources on the internet explaining different types of automation frameworks and how to go about selecting one of them those suites your environment.&lt;br&gt;&lt;br&gt;Below are few links which provide you solid understanding of the software test automation frameworks. &lt;br&gt;&lt;br&gt;&lt;a href="http://www.ibm.com/developerworks/rational/library/591.html"&gt;http://www.ibm.com/developerworks/rational/library/591.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://www.research.ibm.com/journal/sj/411/rankin.pdf"&gt;www.research.ibm.com/journal/sj/411/rankin.pdf &lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://www.wilsonmar.com/WRSAFS/Docs/CHAPTER1.doc"&gt;http://www.wilsonmar.com/WRSAFS/Docs/CHAPTER1.doc&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://en.wikipedia.org/wiki/Test_Automation_Framework"&gt;http://en.wikipedia.org/wiki/Test_Automation_Framework &lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://www.michaeldkelly.com/images/Choosing_a_Test_Automation_Framework.PDF"&gt;www.michaeldkelly.com/images/Choosing_a_Test_Automation_Framework.PDF&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.logigear.com/resources/articles_lg/Automation_Framework.pdf"&gt; &lt;br&gt;www.logigear.com/resources/articles_lg/Automation_Framework.pdf&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-8415756300615484970?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=Ib5kvjXsuE4:rTtQ8tNjR8k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/Ib5kvjXsuE4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/8415756300615484970/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=8415756300615484970" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/8415756300615484970?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/8415756300615484970?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/Ib5kvjXsuE4/choosing-test-automation-framework.html" title="Choosing a test automation framework" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2007/12/choosing-test-automation-framework.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4BRH0zeyp7ImA9WxVRGEo.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-2133288975704794007</id><published>2007-11-23T03:22:00.000-08:00</published><updated>2009-01-25T01:15:55.383-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-25T01:15:55.383-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation Framework" /><category scheme="http://www.blogger.com/atom/ns#" term="E-books" /><title>QTP E-books</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vfT7NyonyyV_K0ZqtW6ZkwQQjeA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vfT7NyonyyV_K0ZqtW6ZkwQQjeA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vfT7NyonyyV_K0ZqtW6ZkwQQjeA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vfT7NyonyyV_K0ZqtW6ZkwQQjeA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;You can download the QTP E-books and related material from here.&lt;br /&gt;Just click on the links to download..&lt;br /&gt;&lt;ul&gt;&lt;li style="color: rgb(51, 51, 255);"&gt;&lt;a href="http://media.twango.com/m1/original/0103/c1f59dffdae147199c98df4f8cc7c485.doc"&gt;What you Study in QTP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="color: rgb(51, 51, 255);" href="http://media.twango.com/m1/original/0103/6010dae508eb401983bcc812c77ecb17.doc"&gt;Descriptive Programming&lt;/a&gt; in QTP&lt;/li&gt;&lt;li&gt;&lt;a style="color: rgb(51, 51, 255);" href="http://media.twango.com/m1/original/0103/b9b4b06f84a6482da514d634ff33e50b.doc"&gt;QTP Framework&lt;/a&gt; - II&lt;/li&gt;&lt;li&gt;&lt;a style="color: rgb(51, 51, 255);" href="http://media.twango.com/m1/original/0103/c4d487a760d64cdbba03f9a14953a3e2.doc"&gt;Winrunner Vs QTP&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;check more infomation about &lt;a href="http://qtp9.blogspot.com/search/label/Automation%20Framework"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;AUTOMATION FRAMEWORKS&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-2133288975704794007?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=Njyc4FuNthc:c5G1IBT8_7Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/Njyc4FuNthc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/2133288975704794007/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=2133288975704794007" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/2133288975704794007?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/2133288975704794007?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/Njyc4FuNthc/qtp-e-books.html" title="QTP E-books" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2007/11/qtp-e-books.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUACRHo8cSp7ImA9WxZSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-5724383227361110624</id><published>2007-11-09T09:36:00.000-08:00</published><updated>2008-01-23T05:09:25.479-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-23T05:09:25.479-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Functions" /><title>Using Database Functions </title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Eca8v4kOtJjh5YyHB-Zy7LdVFdA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Eca8v4kOtJjh5YyHB-Zy7LdVFdA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Eca8v4kOtJjh5YyHB-Zy7LdVFdA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Eca8v4kOtJjh5YyHB-Zy7LdVFdA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=Section1&gt;  &lt;p class=pregtext&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;The code below contains a set of useful functions that can be used in QuickTest Professional. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25187&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;'Example of how to use functions. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25188&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25189&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Example of how to use DSN created for the database of sample Flight application. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28388&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25191&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;SQL=&amp;quot;SELECT * FROM ORDERS&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25192&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;connection_string=&amp;quot;QT_Flight32&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25193&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;isConnected = db_connect ( curConnection ,connection_string ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25194&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;If isConnected = 0 then &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25195&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Execute the basic SQL statement &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25196&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set myrs=db_execute_query( curConnection , SQL ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25197&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Report the query and the connection string &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25198&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter.ReportEvent micInfo ,&amp;quot;Executed query and created recordset &amp;quot;,&amp;quot;Connection_string is ==&amp;gt; &amp;quot; &amp;amp; connection_string &amp;amp; &amp;quot; SQL query is ===&amp;gt; &amp;quot; &amp;amp; SQL &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25199&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Show the number of rows in the table using a record set &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25200&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;msgBox &amp;quot; Quantity of rows in queried DB ( db_get_rows_count )==&amp;gt; &amp;quot; &amp;amp; db_get_rows_count( myrs ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25201&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Show the number of rows in the table using a new SQL statement &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25202&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;msgBox &amp;quot; Quantity of rows in queried DB (db_get_rows_count_SQL ) ==&amp;gt; &amp;quot; &amp;amp; db_get_rows_count_SQL( curConnection , &amp;quot;SELECT COUNT(*) FROM ORDERS&amp;quot; ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25203&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Change a value of a field in an existing row &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25204&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rc = db_set_field_value (curConnection, &amp;quot;ORDERS&amp;quot; , &amp;quot;Agents_Name&amp;quot; , &amp;quot;test&amp;quot;, &amp;quot;Agents_Name&amp;quot;, &amp;quot;AGENT_TESTER&amp;quot;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30115&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Examples of how to retrieve values from the table &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25206&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;msgBox &amp;quot;val row 0 col 0: &amp;quot; &amp;amp; db_get_field_value( myrs , 0 , 0 ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25207&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;msgBox &amp;quot;val row 0 col 1: &amp;quot; &amp;amp; db_get_field_value( myrs , 0 , 1 ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25208&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;msgBox &amp;quot;val row 1 col Name: &amp;quot; &amp;amp; db_get_field_value( myrs , 1 , &amp;quot;Agents_Name&amp;quot; ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25209&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;msgBox &amp;quot;val SQL row 1 col Name: &amp;quot; &amp;amp; db_get_field_value_SQL( curConnection , &amp;quot;ORDERS&amp;quot; , 1 , &amp;quot;Agents_Name&amp;quot; ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30116&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;db_disconnect curConnection &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25211&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End If &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28392&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25213&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Database Functions library &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28396&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25215&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;'db_connect &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25216&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' --------------- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25217&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' The function creates a new connection session to a database. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25218&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' curSession - The session name (string) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25219&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' connection_string - A connection string &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25220&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' for example the connection_string can be &amp;quot;DSN=SQLServer_Source;UID=SA;PWD=abc123&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28400&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25222&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Function db_connect( byRef curSession ,connection_string) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25223&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim connection &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25224&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;on error Resume next &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25225&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Opening connection &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25226&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set connection = CreateObject(&amp;quot;ADODB.Connection&amp;quot;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25227&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If Err.Number &amp;lt;&amp;gt; 0 then &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25228&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;db_connect= &amp;quot;Error # &amp;quot; &amp;amp; CStr(Err.Number) &amp;amp; &amp;quot; &amp;quot; &amp;amp; Err.Description &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25229&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;err.clear &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25230&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Exit Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25231&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End If &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25232&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;connection.Open connection_string &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25233&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If Err.Number &amp;lt;&amp;gt; 0 then &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25234&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;db_connect= &amp;quot;Error # &amp;quot; &amp;amp; CStr(Err.Number) &amp;amp; &amp;quot; &amp;quot; &amp;amp; Err.Description &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25235&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;err.clear &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25236&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Exit Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25237&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End If &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25238&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set curSession=connection &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28341&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;db_connect=0 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28342&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30119&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25242&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' db_disconnect &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25243&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' --------------------- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25244&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' The function disconnects from the database and deletes the session. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25245&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' curSession - the session name (string) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28408&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25247&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Function db_disconnect( byRef curSession ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25248&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;curSession.close &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25249&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set curSession = Nothing &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25250&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30120&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25252&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' db_execute_query &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25253&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' --------------------------- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25254&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' The function executes an SQL statement. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25255&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Note that a db_connect for (arg1) must be called before this function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25256&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' curSession - The session name (string) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25257&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' SQL - An SQL statement &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28416&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25259&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Function db_execute_query ( byRef curSession , SQL) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25260&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set rs = curSession.Execute( SQL ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25261&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set db_execute_query = rs &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25262&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28420&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25264&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' db_get_rows_count &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25265&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ---------------------------- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25266&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' The function returns the number of rows in the record set &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25267&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' curRS - Variable, containing a record set, that contains all values that retrieved from the database by query execution &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28424&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25269&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Function db_get_rows_count( byRef curRS ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25270&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim rows &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25271&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rows = 0 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25272&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;curRS.MoveFirst &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25273&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Do Until curRS.EOF &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25274&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rows = rows+1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25275&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;curRS.MoveNext &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25276&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;st1:place w:st="on"&gt;Loop&lt;/st1:place&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25277&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;db_get_rows_count = rows &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25278&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30121&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25280&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' db_get_rows_count_SQL &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25281&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ------------------------------------ &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25282&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' The function returns the number of rows that are the result of a given SQL statement &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25283&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' curSession - The session name (string) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25284&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' CountSQL - SQL statement &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28432&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25286&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Function db_get_rows_count_SQL( byRef curSession ,CountSQL ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25287&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim cur_rs &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25288&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set cur_rs = curSession.Execute( CountSQL ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25289&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;db_get_rows_count_SQL = cur_rs.fields(0).value &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25290&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28436&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25292&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' db_get_field_value_SQL &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25293&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ----------------------------------- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25294&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' curSession - Variable that denotes the current active connection &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25295&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' tableName - Name of the table, from which the value should be retrieved &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25296&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' rowIndex - Row number &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25297&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' colName - The column name &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28440&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25299&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Function db_get_field_value_SQL( curSession , tableName , rowIndex , colName ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25300&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim rs &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25301&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SQL = &amp;quot; select &amp;quot; &amp;amp; colName &amp;amp; &amp;quot; from &amp;quot; &amp;amp; tableName &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25302&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set rs = curSession.Execute( SQL ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25303&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rs.move rowIndex &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25304&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;db_get_field_value_SQL = rs.fields(colName).value &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25305&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30123&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25307&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' db_get_field_value &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25308&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' -------------------------- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25309&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' The function returns the value of a single item of an executed query. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25310&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Note that a db_execute_query for (arg1) must called before this function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25311&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' curRecordSet - Variable, containing a record set, that contains all values retrieved from the database by query execution &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25312&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' rowIndex - The row index number (zero-based) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25313&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' colIndex - The column index number (zero-based) or the column name. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25314&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' returned values &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25315&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' -1 - Requested field index more than exists more than once in record set &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28448&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25317&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Function db_get_field_value( curRecordSet , rowIndex , colIndex ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25318&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim curRow &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30124&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;curRecordSet.MoveFirst &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25320&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;count_fields = curRecordSet.fields.count-1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25321&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If ( TypeName(colIndex)&amp;lt;&amp;gt; &amp;quot;String&amp;quot; ) and ( count_fields &amp;lt; colIndex ) then &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25322&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;db_get_field_value = -1 'requested field index exists more than once in recordset &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25323&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Else &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25324&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;curRecordSet.Move rowIndex &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25325&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;db_get_field_value = curRecordSet.fields(colIndex).Value &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25326&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End If &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25327&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30125&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25329&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' db_set_field_value &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25330&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' --------------------------- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25331&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' The function changes the value of a field according to a search criteria. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25332&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' We search for a certain row according to a column name and the desired vale, then we change a value in that row according &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25333&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' to a desired columns &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25334&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' curConnection - The session name (string) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25335&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' tableName - Name of the table from which the value should be retrieved &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25336&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' colFind - The column which to search for the criteria &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25337&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' colFindValue - The value for which to search in the column &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25338&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' colChange - The column in which we want to change the value &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25339&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' colChangeValue - The new value &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25340&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' returned values &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25341&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' -1 - Requested field index that does not exist in the recordset &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28456&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25343&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Function db_set_field_value(curConnection, tableName , colFind , colFindValue, colChange, colChangeValue) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25344&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim curRow &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25345&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim updateSQL &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25346&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim checkSQL &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30126&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkSQL = &amp;quot;select * from Details&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25348&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set myrs1 = db_execute_query( curConnection , SQL ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25349&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;myrs1.MoveFirst &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25350&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;count_fields = myrs1.fields.count &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25351&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If ( TypeName(colFind)&amp;lt;&amp;gt; &amp;quot;String&amp;quot; ) or ( TypeName(colChange)&amp;lt;&amp;gt; &amp;quot;String&amp;quot; ) then &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25352&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;db_set_field_value = -1 'requested field index that does not exists in the record set &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25353&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Else &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25354&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updateSQL = &amp;quot;UPDATE &amp;quot; &amp;amp; tableName &amp;amp; &amp;quot; SET &amp;quot; &amp;amp; colChange &amp;amp; &amp;quot;='&amp;quot; &amp;amp; colChangeValue &amp;amp; &amp;quot;' WHERE &amp;quot; &amp;amp; colFind &amp;amp; &amp;quot;='&amp;quot; &amp;amp; colFindValue &amp;amp; &amp;quot;'&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25355&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set myrs1 = db_execute_query( curConnection , updateSQL ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25356&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;db_set_field_value = 1 'operation suceeded &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28336&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End If &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28337&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30127&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25360&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' db_add_row &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25361&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ----------------- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25362&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' The function adds a new row to the desired table &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25363&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' curConnection - Variable, containing a recordset, that contains all the values to be retrieved from the database by query execution &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25364&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' tableName - Name of the table, from which the value should be retrieved &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25365&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' values - Array that contains values to be entered in a new row to the table &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25366&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Note: The function must receive values for all the columns in the table. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25367&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' returned value. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25368&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' -1 - The number of values to be entered to the table does not match the number of columns &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25369&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' 1 - Execution of the query succeed and the data was entered to the table &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28464&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25371&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Function db_add_row(curConnection, tableName , byRef values) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25372&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim i &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25373&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim updateSQL &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25374&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim myrs1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30128&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updateSQL = &amp;quot;INSERT INTO &amp;quot; &amp;amp; tableName &amp;amp; &amp;quot; VALUES (&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25376&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;arrLen = UBound (values) - LBound (values) + 1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30129&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set myrs1=db_execute_query( curConnection , SQL ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25378&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;myrs1.MoveFirst &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25379&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;count_fields = myrs1.fields.count &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25380&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Check whether the number of values match the number of columns &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25381&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If arrLen &amp;lt;&amp;gt; count_fields then &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25382&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;db_add_row = -1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25383&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Else &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25384&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;For i = 0 to arrLen-1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25385&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updateSQL = updateSQL &amp;amp; values (i) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25386&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If i &amp;lt;&amp;gt; arrLen-1 then &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25387&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updateSQL = updateSQL &amp;amp; &amp;quot;,&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25388&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End If &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25389&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Next &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25390&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updateSQL = updateSQL &amp;amp; &amp;quot;)&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25391&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set myrs1 = db_execute_query( curConnection , updateSQL ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25392&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;db_add_row = 1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25393&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End If &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25394&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30133&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28333&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' represent_values_of_RecordSet &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25397&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' --------------------------------------------- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25398&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' The function reports all the values of fields in a record set &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25399&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' curRS - Variable, containing the recordset, that contains all the values that were retrieved from the database by the query execution &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28472&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28323&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Function represent_values_of_RecordSet( myrs) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25402&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim curRowString &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25403&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;myrs.MoveFirst &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25404&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reporter.ReportEvent 4,&amp;quot;Fields quantity&amp;quot; , myrs.fields.count &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25405&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;count_fields = myrs.fields.count-1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25406&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;curRow=0 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25407&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Do Until myrs.EOF &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25408&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;curRowString= &amp;quot;&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25409&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;curRow = curRow+1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25410&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;For ii=0 to count_fields &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25411&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;curRowString = curRowString&amp;amp; &amp;quot;Field &amp;quot; &amp;amp;&amp;quot;==&amp;gt; &amp;quot; &amp;amp; myrs.fields(ii).Name &amp;amp;&amp;quot; : Value ==&amp;gt;&amp;quot; &amp;amp; myrs.fields(ii).Value &amp;amp; vbCrLf &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25412&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Next &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25413&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;myrs.MoveNext &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25414&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reporter.ReportEvent 4,&amp;quot;Current row&amp;quot;&amp;amp; curRow , curRowString &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25415&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;st1:place w:st="on"&gt;Loop&lt;/st1:place&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp26215&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 align=right  id=SummaryNotReq2&gt;  &lt;tr&gt;   &lt;td style='padding:0in 0in 0in 0in'&gt;   &lt;p class=MsoNormal align=right style='text-align:right;mso-element:frame'&gt;&lt;font   size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt'&gt;&lt;a   href="mk:@MSITStore:D:\_Personal\Renu%20Docs\renu\testing\QTP\qtp9\QuickTest\program%20files\Mercury%20Interactive\QuickTest%20Professional\CodeSamplesPlus\QTPCodeSamplesPlus.chm::/WebWorks1-3-27.htm"&gt;&lt;span   style='text-decoration:none'&gt;&lt;img border=0 width=32 height=32   id=LongDescNotReq3 src="cid:image001.gif@01C808D3.6FFA1080" alt=Previous&gt;&lt;/span&gt;&lt;/a&gt;&lt;a   href="mk:@MSITStore:D:\_Personal\Renu%20Docs\renu\testing\QTP\qtp9\QuickTest\program%20files\Mercury%20Interactive\QuickTest%20Professional\CodeSamplesPlus\QTPCodeSamplesPlus.chm::/WebWorks1-3-29.htm"&gt;&lt;span   style='text-decoration:none'&gt;&lt;img border=0 width=32 height=32   id=LongDescNotReq4 src="cid:image001.gif@01C808D3.6FFA1080" alt=Next&gt;&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/table&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-5724383227361110624?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=LW0x-BmEeds:S6WhAnQDaA0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/LW0x-BmEeds" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/5724383227361110624/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=5724383227361110624" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/5724383227361110624?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/5724383227361110624?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/LW0x-BmEeds/using-database-functions.html" title="Using Database Functions " /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2007/11/using-database-functions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUACRHozeCp7ImA9WxZSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-1934943789427271740</id><published>2007-11-09T09:24:00.001-08:00</published><updated>2008-01-23T05:09:25.480-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-23T05:09:25.480-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Functions" /><title>Using the File System Object (FSO)</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wW-ghISfC78D_3h5HDx-LGndvzw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wW-ghISfC78D_3h5HDx-LGndvzw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wW-ghISfC78D_3h5HDx-LGndvzw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wW-ghISfC78D_3h5HDx-LGndvzw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=Section1&gt;  &lt;p class=pregtext&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;The following code includes a set of complex and simple functions to serve as examples of the possible uses and applications of Microsoft FSO.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24950&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;dim oFSO &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24951&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Create the file system object &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24952&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;set oFSO = CreateObject (&amp;quot;Scripting.FileSystemObject&amp;quot;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24953&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;'Option Explicit &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24954&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24955&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Create a new txt file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24956&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Parameters: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24957&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' FilePath - location of the file and its name &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24958&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24959&gt;&lt;/a&gt;&lt;b&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt;font-weight:bold'&gt;Function CreateFile (FilePath) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24960&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Variable that will hold the new file object &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24961&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim NewFile &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24962&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Create the new text ile &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24963&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set NewFile = oFSO.CreateTextFile(FilePath, True) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24964&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set CreateFile = NewFile &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24965&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30083&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24967&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Check if a specific file exist &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30084&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Parameters: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24969&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' FilePath - Location of the file and its name &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24970&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24971&gt;&lt;/a&gt;&lt;b&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt;font-weight:bold'&gt;Function CheckFileExists (FilePath) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24972&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Check if the file exists &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24973&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CheckFileExists = oFSO.FileExists(FilePath) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24974&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30085&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24976&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Write data to file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30086&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Parameters: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24978&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' FileRef - Reference to the file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28354&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' str - Data to be written to the file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28355&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24981&gt;&lt;/a&gt;&lt;b&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt;font-weight:bold'&gt;Function WriteToFile (byref FileRef,str) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24982&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Write str to the text file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24983&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileRef.WriteLine(str) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24984&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30087&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24986&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Read line from file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24987&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Parameters: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24988&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' FileRef - reference to the file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24989&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24990&gt;&lt;/a&gt;&lt;b&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt;font-weight:bold'&gt;Function ReadLineFromFile (byref FileRef) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24991&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Read line from text file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24992&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ReadLineFromFile = FileRef.ReadLine &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24993&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24994&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24995&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Closes an open file. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24996&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Parameters: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24997&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' FileRef - Reference to the file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24998&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24999&gt;&lt;/a&gt;&lt;b&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt;font-weight:bold'&gt;Function CloseFile (byref FileRef) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28346&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileRef.close &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28347&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28348&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;'****************************************************************************************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25003&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Opens a specified file and returns an object that can be used to &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25004&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' read from, write to, or append to the file. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25005&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Parameters: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25006&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' FilePath - Location of the file and its name &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25007&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' mode options are: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25008&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ForReading - 1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25009&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ForWriting - 2 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25010&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ForAppending - 8 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25011&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25012&gt;&lt;/a&gt;&lt;b&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt;font-weight:bold'&gt;Function OpenFile (FilePath,mode) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25013&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Open the txt file and return the File object &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25014&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;set OpenFile = oFSO.OpenTextFile(FilePath, mode, True) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25015&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28364&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25017&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Closes an open file. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25018&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Parameters: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25019&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' FilePathSource - Location of the source file and its name &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25020&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' FilePathDest - Location of the destination file and its name &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28368&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25022&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Sub FileCopy ( FilePathSource,FilePathDest) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25023&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' copy source file to destination file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25024&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;oFSO.CopyFile FilePathSource, FilePathDest &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25025&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Sub &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30090&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25027&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Delete a file. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30091&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Parameters: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25029&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' FilePath - Location of the file to be deleted &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28376&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25031&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Sub FileDelete ( FilePath) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25032&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Copy source file to destination file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25033&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;oFSO.DeleteFile ( FilePath) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25034&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Sub &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30092&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp27410&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Compare two text files. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25037&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25038&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Parameters: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25039&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' FilePath1 - Location of the first file to be compared &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25040&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' FilePath2 - Location of the second file to be compared &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25041&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' FilePathDiff - Location of the differences file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25042&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ignoreWhiteSpace - Controls whether or ignore differences in white space characters &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25043&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' true - Ignore differences in white space &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25044&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' false - Do not ignore difference in white space &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25045&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Return Value: true if files are identical, false otherwise' &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp28384&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ******************************************************************************************* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25047&gt;&lt;/a&gt;&lt;b&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt;font-weight:bold'&gt;Function FileCompare (byref FilePath1, byref FilePath2, byref FilePathDiff, ignoreWhiteSpace) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30093&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim differentFiles &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25049&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;differentFiles = false &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30094&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim f1, f2, f_diff &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25051&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Open the files &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25052&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set f1 = OpenFile(FilePath1,1) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25053&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set f2 = OpenFile(FilePath2,1) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25054&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set f_diff = OpenFile(FilePathDiff,8) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30095&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim rowCountF1, rowCountF2 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25056&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rowCountF1 = 0 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25057&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rowCountF2 = 0 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30096&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim str &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25059&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Count how many lines there are in the first file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25060&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;While not f1.AtEndOfStream &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25061&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;str = ReadLineFromFile(f1) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25062&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rowCountF1= rowCountF1 + 1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25063&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Wend &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30097&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Count how many lines there are in the second file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25065&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;While not f2.AtEndOfStream &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25066&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;str = ReadLineFromFile(f2) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25067&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rowCountF2= rowCountF2 + 1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25068&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Wend &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30098&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Re-open the files to go back to the first line in the files &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25070&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set f1 = OpenFile(FilePath1,1) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25071&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set f2 = OpenFile(FilePath2,1) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30099&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' compare the number of lines in the two files. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25073&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' assign biggerFile - The file that contain more lines &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25074&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' assign smallerFile - The file that contain fewer lines &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25075&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim biggerFile, smallerFile &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25076&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set biggerFile = f1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25077&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set smallerFile = f2 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25078&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If ( rowCountF1 &amp;lt; rowCountF2) Then &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25079&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set smallerFile = f1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25080&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set biggerFile = f2 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25081&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End If &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25082&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dim lineNum,str1, str2 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25083&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lineNum = 1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25084&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;str = &amp;quot;Line&amp;quot; &amp;amp; vbTab &amp;amp; &amp;quot;File1&amp;quot; &amp;amp; vbTab &amp;amp; vbTab &amp;amp; &amp;quot;File2&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25085&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WriteToFile f_diff,str &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25086&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Loop on all the lines in the smaller file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25087&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;While not smallerFile.AtEndOfStream &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25088&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' read line from both files &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25089&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;str1 = ReadLineFromFile(f1) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25090&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;str2 = ReadLineFromFile(f2) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30101&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Check if we need to ignore white spaces, if yes, trim the two lines &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25092&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If Not ignoreWhiteSpace Then &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25093&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Trim(str1) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25094&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Trim(str2) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25095&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End If &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30102&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' If there is a difference between the two lines, write them to the differences file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25097&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If not (str1 = str2) Then &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25098&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;differentFiles = true &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25099&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;str = lineNum &amp;amp; vbTab &amp;amp; str1 &amp;amp; vbTab &amp;amp; vbTab &amp;amp; str2 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25100&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WriteToFile f_diff,str &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25101&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End If &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25102&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lineNum = lineNum + 1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25103&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Wend &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30103&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;' Loop through the bigger lines, to write its line to the different file &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25105&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;While not biggerFile.AtEndOfStream &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25106&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;str1 = ReadLineFromFile(biggerFile) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25107&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;str = lineNum &amp;amp; vbTab &amp;amp; &amp;quot;&amp;quot; &amp;amp; vbTab &amp;amp; vbTab &amp;amp; str2 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25108&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WriteToFile f_diff,str &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25109&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lineNum = lineNum + 1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25110&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Wend &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25111&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileCompare = Not differentFiles &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25112&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30104&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' ************** Example of using these functions ********************** &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25114&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;FilePath1 = &amp;quot;D:\temp\FSO\txt1.txt&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25115&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;FilePath2 = &amp;quot;D:\temp\FSO\txt2.txt&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25116&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;FilePathDiff = &amp;quot;D:\temp\FSO\txt_diff.txt&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30107&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;d = FileCompare(FilePath1,FilePath2,FilePathDiff,false) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30108&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;FilePath = &amp;quot;D:\temp\FSO\txt.txt&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30109&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;set fold = FolderCreate ( &amp;quot;D:\temp\FSO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25120&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;set f = OpenFile(FilePath,8) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25121&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' = WriteToFile(f,&amp;quot;test line&amp;quot;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25122&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;d = CloseFile(f) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30110&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;set f = CreateFile(FilePath) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30111&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Fexist= CheckFileExists(FilePath) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25125&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;d = WriteToFile(f,&amp;quot;first line&amp;quot;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25126&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;d = WriteToFile(f,&amp;quot;second line&amp;quot;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30112&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;d = CloseFile(f) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25128&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;FileCopy &amp;quot;D:\temp\FSO\txt.txt&amp;quot;,&amp;quot;D:\temp\FSO\txt1.txt&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp25129&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;FileDelete &amp;quot;D:\temp\FSO\txt1.txt&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-1934943789427271740?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=UwIKcwtfh1k:ThpRif4YjYA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/UwIKcwtfh1k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/1934943789427271740/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=1934943789427271740" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/1934943789427271740?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/1934943789427271740?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/UwIKcwtfh1k/using-file-system-object-fso.html" title="Using the File System Object (FSO)" /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2007/11/using-file-system-object-fso.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EMR3s_cSp7ImA9WB9bEEg.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-2953381710438625686</id><published>2007-11-09T09:23:00.001-08:00</published><updated>2007-12-19T01:14:46.549-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-12-19T01:14:46.549-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VBscript" /><title>Using Microsoft Outlook to Send Email </title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RpkwnPZ3lUnz2KdVTw9N5JoRoBs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RpkwnPZ3lUnz2KdVTw9N5JoRoBs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RpkwnPZ3lUnz2KdVTw9N5JoRoBs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RpkwnPZ3lUnz2KdVTw9N5JoRoBs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=Section1&gt;  &lt;p class=pregtext&gt;&lt;font size=3 color=blue face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt;color:blue'&gt;The code below illustrates two methods for sending email using the VBScript code in QuickTest Professional, and two different COM objects. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24910&gt;&lt;/a&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;font size=3 color=blue face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt;color:blue; font-weight:bold;font-style:italic'&gt;' Example 1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24911&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Function SendMail(SendTo, Subject, Body, Attachment) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24912&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set ol=CreateObject(&amp;quot;Outlook.Application&amp;quot;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24913&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set Mail=ol.CreateItem(0) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24914&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Mail.to=SendTo &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24915&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Mail.Subject=Subject &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24916&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Mail.Body=Body &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24917&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If (Attachment &amp;lt;&amp;gt; &amp;quot;&amp;quot;) Then &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24918&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Mail.Attachments.Add(Attachment) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24919&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End If &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24920&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Mail.Send &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24921&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ol.Quit &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24922&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set Mail = Nothing &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24923&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set ol = Nothing &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24924&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30080&gt;&lt;/a&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;font size=3 color=blue face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt;color:blue; font-weight:bold;font-style:italic'&gt;' Example 2 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24926&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Function SendMail(SendFrom, SendTo, Subject, Body) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24927&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set objMail=CreateObject(&amp;quot;CDONTS.Newmail&amp;quot;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24928&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ObjMail.From = SendFrom &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24929&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ObjMail.To = SendTo &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24930&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ObjMail.Subject = Subject &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24931&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ObjMail.Body = Body &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24932&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ObjMail.Send &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24933&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set objMail = Nothing &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp26196&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-2953381710438625686?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=VMFO2EkaPu0:UERuC5czGrA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/VMFO2EkaPu0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/2953381710438625686/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=2953381710438625686" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/2953381710438625686?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/2953381710438625686?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/VMFO2EkaPu0/using-microsoft-outlook-to-send-email.html" title="Using Microsoft Outlook to Send Email " /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2007/11/using-microsoft-outlook-to-send-email.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUACRHozeCp7ImA9WxZSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5608444640718689345.post-3522441741246907838</id><published>2007-11-09T09:22:00.003-08:00</published><updated>2008-01-23T05:09:25.480-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-23T05:09:25.480-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Functions" /><title>Using Microsoft Word Spell Check </title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Cze61Qolc_uCkLpjQaazAAwroAo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Cze61Qolc_uCkLpjQaazAAwroAo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Cze61Qolc_uCkLpjQaazAAwroAo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Cze61Qolc_uCkLpjQaazAAwroAo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=Section1&gt;  &lt;p class=pregtext&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;The following code shows a function for checking the number of spelling and grammar errors in a string. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24846&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Function NumberOfSpellErrors(strText) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24847&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dim objMsWord &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24848&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set objMsWord = CreateObject(&amp;quot;Word.Application&amp;quot;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24849&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;objMsWord.WordBasic.FileNew &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24850&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;objMsWord.WordBasic.Insert strText &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24851&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NumberOfSpellErrors = objMsWord.ActiveDocument.SpellingErrors.Count &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24852&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;objMsWord.Documents.Close (False) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24853&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;objMsWord.Quit ' close the application &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24854&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set objMsWord = Nothing' Clear object memory &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24855&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30074&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' The following function uses the Spell errors function to check a specific property &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24857&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' of all the objects with a given description which are under a given parent &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24858&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Sub CheckAllObjects(ParentObj, ObjDesc, PropName) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24859&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dim ObjCol, idx, PropValue, OldReportMode &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24860&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OldReportMode = Reporter.Filter &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24861&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter.Filter = 2 ' Report only errors &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24862&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If (IsNull(ParentObj)) Then &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24863&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set ObjCol = Desktop.ChildObjects(ObjDesc) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24864&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Else &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24865&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set ObjCol = ParentObj.ChildObjects(ObjDesc) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24866&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End If &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30075&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;For idx=0 to ObjCol.count-1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24868&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PropValue = ObjCol.Item(idx).GetROProperty(PropName) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24869&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RetVal = NumberOfSpellErrors(PropValue) ' The actual spell check result &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24870&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If (RetVal &amp;gt; 0) Then &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24871&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ReportText = &amp;quot;Object #&amp;quot; &amp;amp; idx+1 &amp;amp; &amp;quot;: The '&amp;quot; &amp;amp; PropName &amp;amp; &amp;quot;' Property has &amp;quot; &amp;amp; RetVal &amp;amp; &amp;quot; spell errors (&amp;quot; &amp;amp; PropValue &amp;amp; &amp;quot;)&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24872&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter.ReportEvent 1, &amp;quot;Spell Check&amp;quot;, ReportText &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24873&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End If &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24874&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Next &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24875&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter.Filter = OldReportMode &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24876&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;End Sub &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30076&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''''''''''''''''''''''''''''''''''''' &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24878&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' An example of usage: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24879&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Go over all the static objects in the Login window of the Flight Application &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24880&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' and for each object check the text for spelling and grammatical errors &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24881&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;''''''''''''''''''''''''''''''''''''' &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30077&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Go over all the links in the page and report all the ones that fail the spellcheck &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24883&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Set Desc = Description.Create() &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24884&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Desc(&amp;quot;nativeclass&amp;quot;).Value = &amp;quot;Static&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30078&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;Set Obj = Dialog(&amp;quot;nativeclass:=#32770&amp;quot;, &amp;quot;text:=Login&amp;quot;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp30079&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;' Invoke the Flight Application before calling the function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=pexample&gt;&lt;a name=wp24887&gt;&lt;/a&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span lang=EN style='font-size:12.0pt'&gt;CheckAllObjects Obj, Desc, &amp;quot;text&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0295516612280876";
/* 200x90, Link Box - Right */
google_ad_slot = "8553761792";
google_ad_width = 200;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5608444640718689345-3522441741246907838?l=qtp9.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/QuicktestProFundas?a=bwSFIymBI6w:lObr7JSvK4s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/QuicktestProFundas?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/QuicktestProFundas/~4/bwSFIymBI6w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://qtp9.blogspot.com/feeds/3522441741246907838/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5608444640718689345&amp;postID=3522441741246907838" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/3522441741246907838?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5608444640718689345/posts/default/3522441741246907838?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/QuicktestProFundas/~3/bwSFIymBI6w/using-microsoft-word-spell-check.html" title="Using Microsoft Word Spell Check " /><author><name>Puneet</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://qtp9.blogspot.com/2007/11/using-microsoft-word-spell-check.html</feedburner:origLink></entry></feed>

