<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7363605</id><updated>2024-09-05T09:45:27.486+08:00</updated><title type='text'>Kok Kiet&#39;s Blog</title><subtitle type='html'>About Programming, Visual FoxPro, .NET.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default?alt=atom'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default?alt=atom&amp;start-index=26&amp;max-results=25'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>244</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7363605.post-115874851382060218</id><published>2006-09-20T17:31:00.002+08:00</published><updated>2006-10-10T15:11:04.260+08:00</updated><title type='text'>I am moving ...</title><content type='html'>After blogging here for almost two years, I have decided to move my weblog to weblogs.foxite.com.&lt;br /&gt;&lt;br /&gt;The reason I do so is because I faced difficulty to create post here. It always take very long time to load, sometime even failed to load.&lt;br /&gt;&lt;br /&gt;Anyhow, thank you blogger.com for providing free weblogs services.&lt;br /&gt;&lt;br /&gt;My new weblog is at &lt;a href=&quot;http://weblogs.foxite.com/kkchan/&quot;&gt;http://weblogs.foxite.com/kkchan/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;See you there.</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/115874851382060218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/115874851382060218?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115874851382060218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115874851382060218'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/09/i-am-moving_115874851382060218.html' title='I am moving ...'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-115874664009573378</id><published>2006-09-20T17:31:00.001+08:00</published><updated>2006-09-20T18:04:00.123+08:00</updated><title type='text'>I am moving ...</title><content type='html'>After blogging at blogger.com for two years, I decided to move to new weblog service provider - weblogs.foxite.com.&lt;br /&gt;&lt;br /&gt;The main reason for this decision is, it is very slow while I try to create new post here. Sometime, I even unable to create one.&lt;br /&gt;&lt;br /&gt;Anyhow, thank you blogger.com for providing free weblog service.&lt;br /&gt;&lt;br /&gt;My new weblog is at &lt;a target=_top href=&quot;http://weblogs.foxite.com/kkchan/&gt;http://weblogs.foxite.com/kkchan/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;See you there ... :)</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/115874664009573378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/115874664009573378?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115874664009573378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115874664009573378'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/09/i-am-moving_20.html' title='I am moving ...'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-115874537805374100</id><published>2006-09-20T17:31:00.000+08:00</published><updated>2006-09-20T17:42:59.483+08:00</updated><title type='text'>I am moving ...</title><content type='html'>After blogging at blogger.com for two years, I decided to move to new weblog service provider - weblogs.foxite.com.&lt;br /&gt;&lt;br /&gt;The main reason for this decision is, it is very slow while I try to create new post here. Sometime, I even unable to create one.&lt;br /&gt;&lt;br /&gt;Anyhow, thank you blogger.com for providing free weblog service.&lt;br /&gt;&lt;br /&gt;My new weblog is at &lt;a target=_top href=&quot;http://weblogs.foxite.com/kkchan/&gt;http://weblogs.foxite.com/kkchan/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;See you there ... :)</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/115874537805374100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/115874537805374100?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115874537805374100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115874537805374100'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/09/i-am-moving.html' title='I am moving ...'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-115839742647008996</id><published>2006-09-16T16:34:00.000+08:00</published><updated>2006-09-16T21:36:04.376+08:00</updated><title type='text'>Extending Data Explorer</title><content type='html'>As &lt;a href=&quot;http://ckkiet.blogspot.com/2006/07/small-try-on-vfp-dataexplorer.html#comments&quot;&gt;mentioned&lt;/a&gt; in my previous blog, I have choosen VFP9 Data Explorer as data querying tool during testing.&lt;br /&gt;&lt;br /&gt;There are some features found in query analyzer but not in VFP data explorer.&lt;br /&gt;&lt;br /&gt;1. Execute highlighted script instead of all of them.&lt;br /&gt;2. Multi pages script editor.&lt;br /&gt;&lt;br /&gt;The more I use data explorer, the more I miss these features. Therefore, I decided to write a prototype as &quot;addin&quot; to enhance data explorer.&lt;br /&gt;&lt;br /&gt;Download the addin from &lt;a href=&quot;http://www.visualsolutions.com.my/blog/chankk/czui.zip&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To add this &quot;addin&quot; to data explorer is easy.&lt;br /&gt;&lt;br /&gt;1. Extract data explorer project from xsource. &lt;br /&gt;2. Modify runqery.scx.&lt;br /&gt;3. Drag and drop dataexplorerplugin class from czui.vcx to runquery form.&lt;br /&gt;4. Recompile dataexplorer project to .app.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://photos1.blogger.com/blogger/6205/449/1600/dropaddin.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;&quot; src=&quot;http://photos1.blogger.com/blogger/6205/449/320/dropaddin.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next, it is time to try it out.&lt;br /&gt;&lt;br /&gt;1. As usual, run the newly compiled dataexplorer.app from VFP IDE.&lt;br /&gt;2. Drill down to desired connection. List of databases will be shown.&lt;br /&gt;3. Select database, right click and select &quot;Run Query&quot; shortcut menu.&lt;br /&gt;(As figure1 shown)&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://photos1.blogger.com/blogger/6205/449/1600/runquery.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;http://photos1.blogger.com/blogger/6205/449/320/runquery.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Figure 1 Run Query shortcut menu&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. Query form will be shown as Figure 2.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://photos1.blogger.com/blogger/6205/449/1600/multipagequery.0.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;&quot; src=&quot;http://photos1.blogger.com/blogger/6205/449/320/multipagequery.0.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Figure 2 Query Form&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. As you can see the red rectangle area. It has multi pages. You can add/remove more pages by clicking the new page button and close page button at right top corner. (I just temporary use any icon at this moment)&lt;br /&gt;&lt;br /&gt;6. To remove particular page, select desired page and click close page button.&lt;br /&gt;&lt;br /&gt;7. To execute only part of script, highlight the script and press F5. You may notice that data explorer only have &lt;span style=&quot;font-weight:bold;&quot;&gt;ONE&lt;/span&gt; result returned.&lt;br /&gt;(As shown as Figure3)&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://photos1.blogger.com/blogger/6205/449/1600/selectedquery.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;&quot; src=&quot;http://photos1.blogger.com/blogger/6205/449/320/selectedquery.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Figure 3 Execute highlighted script&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This also applicable to existing query addin. For example, if you highlight a line of script and run &quot;clipboard as variable&quot; addin, only highlighted script will be copied to clipboard as variable.&lt;br /&gt;&lt;br /&gt;As mentioned it is just a prototype. There are a lot of enhancements required.&lt;br /&gt;&lt;br /&gt;1. Refactor the code to be move extendable.&lt;br /&gt;2. Each query page has its own result panel.&lt;br /&gt;&lt;br /&gt;The other thing have to be considered is how to add new feature as above using addin approach;without need to recompile data explorer.&lt;br /&gt;&lt;br /&gt;Any comments are welcomed.</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/115839742647008996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/115839742647008996?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115839742647008996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115839742647008996'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/09/extending-data-explorer.html' title='Extending Data Explorer'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-115787478066323128</id><published>2006-09-10T15:29:00.000+08:00</published><updated>2006-09-10T15:55:35.003+08:00</updated><title type='text'>TechEd2006 SEA</title><content type='html'>I just back from TechEd2006 SEA. Overally, I feel abit dissapointed on this year session. I attended Developer, Architecture or Enterprise Data Management tracks.&lt;br /&gt;&lt;br /&gt;I felt big dissapointed to developer track for this year because I didn&#39;t see any cool new features session. WPF is the one attract my interest mostly. However, it seem like more for UI designer rather than database developer like me. Topics on .NET 2.0 also are not new for me either (even though I didn&#39;t use it).&lt;br /&gt;&lt;br /&gt;I am big fan of Architeture track. However, all of the sessions are level 100-200. It just provides overview and couldn&#39;t help much in my job. I think presenter should provide more scenarios, when to use each approach, how to apply it and what is the best practise.&lt;br /&gt;&lt;br /&gt;The big new I get from here is IASA community is formed. It is community specially for anyone who interested on Software Architecture. It is run by IT industry expert, volunteery.&lt;br /&gt;&lt;br /&gt;This is my first time to attend EDM track session. Generally, I feel satisfy with it. I learnt a lot about new SQL Server 2005 features. For example, table partitioning, database snapshot, database encryption and database mirroring. I think Microsoft very focus on high availability feature in SQL Server 2005. It is covered in at least three sessions. Each of them provide deeper information. I am going to research more and observe how it could be applied in my job.&lt;br /&gt;&lt;br /&gt;Finally, I do feel the venue, facilities, crew services are good. But the foods .... hmmm... In fact, I never satisfy with TechEd food ever....&lt;br /&gt;&lt;br /&gt;Anyway, I will attend TechEd2007 (if any, and held in KL, Malaysia) either because it the the most affordable conference. See you again in TechEd2007.</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/115787478066323128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/115787478066323128?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115787478066323128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115787478066323128'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/09/teched2006-sea.html' title='TechEd2006 SEA'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-115787307071052567</id><published>2006-09-10T14:40:00.000+08:00</published><updated>2006-09-10T15:24:31.170+08:00</updated><title type='text'>Why must you (VFP) setfocus to it?</title><content type='html'>I have a Visual Promatrix framework based application. It has few simple forms that consist of label_, textbox_ and textbox_output control(It is a textbox control that set readonly and return false in when event)&lt;br /&gt;&lt;br /&gt;If user click new button followed by restore in some of my forms that contains more than ONE textbox_output controls, VFP will fall into &quot;infinite loop&quot;.&lt;br /&gt;&lt;br /&gt;There are many actions run while new and restore button clicked. Generally, it has common actions such as enable/disable controls during new/restore state.&lt;br /&gt;&lt;br /&gt;During debugging, I found that when restore button clicked, all texboxes are disabled. Current active control.lostfocus will be fired. VFP will then try to setfocus to other controls. If the target control is textbox_output (e.g. txtEmployee_Name), VFP will not able to do that since textbox_output.When() always  return False. Therefore, VFP would setfocus to next textbox_output control (if any). Of course VFP will fail to do that so. This action keeps happen to the rest of textbox_output controls and back to the txtEmployee_Name again and so on. VFP then falled into hang state.&lt;br /&gt;&lt;br /&gt;I debugged other forms that also contains more than one textbox_output controls also but never face this strange behavour. I found that they are fine because the control VFP tried to setfocus is not textbox_output.&lt;br /&gt;&lt;br /&gt;My current workaround is set all textbox_output.enabled = .F. However I feel curious on how VFP decide which control to setfocus? It doesn&#39;t follow tabindex nor record sequence in .scx.&lt;br /&gt;&lt;br /&gt;Anyone can give me some ideas?</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/115787307071052567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/115787307071052567?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115787307071052567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115787307071052567'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/09/why-must-you-vfp-setfocus-to-it.html' title='Why must you (VFP) setfocus to it?'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-115526453633068829</id><published>2006-08-11T10:01:00.000+08:00</published><updated>2006-08-16T16:02:16.170+08:00</updated><title type='text'>Procedure is not cleared!</title><content type='html'>I have three classes written in a single .prg file. An Asbtract class and two concrete classes.&lt;br /&gt;&lt;pre&gt;AbstractClass&lt;br /&gt;|&lt;br /&gt;-&gt;ClassA&lt;br /&gt;|&lt;br /&gt;-&gt;ClassB&lt;/pre&gt;I creates an instance of each concrete class in my test program. At the end of program, I clean up them by&lt;br /&gt;&lt;pre&gt;loClassA = .NULL.&lt;br /&gt;loClassB = .NULL.&lt;br /&gt;&lt;br /&gt;RELEASE loClassA, loClassB&lt;br /&gt;RELEASE PROCEDURE myPrg&lt;/pre&gt;&lt;br /&gt;Then, I open up my .prg and try to change some code. VFP prompted me &quot;Remove classes from memory?&quot; Why would VFP still prompt message even though I have cleaned up? It happens for NEWOBJECT() and CREATEOBJECT(). I got to use CLEAR ALL to release it.&lt;br /&gt;&lt;br /&gt;I did another tests again.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Test 1 - Only initiate classA&lt;/li&gt;&lt;li&gt;Test 2 - Initiate AbstractClass (ya, I know I shouldn&#39;t. It is just a test) and ClassA&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Huh, VFP doesn&#39;t prompt &quot;Remove classes from memory?&quot;!!&lt;br /&gt;I guess that VFP doesn&#39;t release abstractclass from memory if we initiate more than one concrete class which derived from same superclass. Anyway to solve it?&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;Update: Myron Kirby posted similar &lt;/span&gt;&lt;a style=&quot;color: rgb(255, 0, 0);&quot; href=&quot;http://www.west-wind.com/wwthreads/Message1VD17SND6.wwt&quot;&gt;question&lt;/a&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt; at &lt;/span&gt;&lt;a style=&quot;color: rgb(255, 0, 0);&quot; href=&quot;http://www.west-wind.com/wwthreads/&quot;&gt;west-wind.com forum&lt;/a&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;. Thank you Steven Black to provide the solution! :) It solved my problem too.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/115526453633068829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/115526453633068829?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115526453633068829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115526453633068829'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/08/procedure-is-not-cleared.html' title='Procedure is not cleared!'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-115267061525198491</id><published>2006-07-12T09:41:00.000+08:00</published><updated>2006-07-12T10:51:05.473+08:00</updated><title type='text'>Small try on VFP DataExplorer</title><content type='html'>DataExplorer (DE) is an addon tool come with VFP9. It allows us to access VFP/SQL database from single interface. It acts as same functionality as Server Explorer in VisualStudio.NET.&lt;br /&gt;&lt;br /&gt;I just have a small try on DE since last few days. The main reason I use it is, I want to check my data which stored in SQL Server 2005 for testing.&lt;br /&gt;&lt;br /&gt;I use Query Anaylyzer QA) for data checking in SQL Server 2000, and I like it so much. However, Query Analyzer (isqlw.exe) is no longer available in SQL Server 2005. It has been built-in to SQL Server Management Studio (SSMS). Loading time of SSMS is very slow  in my dual core processor, 1GB RAM machine. It becomes the reason for me to &quot;abondon&quot; SSMS and have a try with VFP DE.&lt;br /&gt;&lt;br /&gt;DE is not as powerful as Query Anaylzer nor SSMS. But it is enough for me to check data. Some features and suprises (at least for me) I found during my exploring : -&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Can use T-SQL such as USE myDatabase inside DataExplorer.&lt;br /&gt;&lt;li&gt;Supports F5 key to run &quot;script&quot;.&lt;br /&gt;&lt;li&gt;Supports multiple return result sets.&lt;br /&gt;&lt;li&gt;Supports parameterized SQL statement. For example, VFP will prompt for input if we include &quot;?mypara&quot; in SQL.&lt;br /&gt;&lt;li&gt;Query result is much faster than SSMS.&lt;br /&gt;&lt;li&gt;Copy result to clipboard. Extremely fast!!&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Although, most of the &quot;suprises&quot; mentioned above are part of VFP SPT functionality. That shouldn&#39;t be any suprise. However, when combine them to build a utility like DE, it gives me better perception of VFP. :)&lt;br /&gt;&lt;br /&gt;One wishlist for DE, make result set updatable would be wonderful world!</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/115267061525198491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/115267061525198491?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115267061525198491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115267061525198491'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/07/small-try-on-vfp-dataexplorer.html' title='Small try on VFP DataExplorer'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-115184120756392055</id><published>2006-07-02T19:48:00.000+08:00</published><updated>2006-07-02T19:53:27.576+08:00</updated><title type='text'>Project D.O.A</title><content type='html'>One more video &lt;a href=&quot;http://weblogs.foxite.com/kevinragsdale/archive/2006/07/01/1936.aspx&quot;&gt;posted&lt;/a&gt;, I was thinking it talks about how project manager would resolve their issues if they choose the wrong tool for their project.&lt;br /&gt;&lt;br /&gt;However, ... It suprises me!!! :))&lt;br /&gt;&lt;br /&gt;Direct link : &lt;a href=&quot;http://video.google.com/videoplay?docid=-5677850239779225290&quot;&gt;http://video.google.com/videoplay?docid=-5677850239779225290&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/115184120756392055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/115184120756392055?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115184120756392055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115184120756392055'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/07/project-doa.html' title='Project D.O.A'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-115183880487530721</id><published>2006-07-02T19:09:00.000+08:00</published><updated>2006-07-02T19:13:24.890+08:00</updated><title type='text'>VFPX promo video</title><content type='html'>After VFP promo video, Kevin Ragsdale shared &lt;a href=&quot;http://weblogs.foxite.com/kevinragsdale/archive/2006/07/01/1935.aspx&quot;&gt;VFPX promo video&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Direct link : &lt;a href=&quot;http://video.google.com/videoplay?docid=-8081999689198930750&quot;&gt;http://video.google.com/videoplay?docid=-8081999689198930750&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/115183880487530721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/115183880487530721?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115183880487530721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115183880487530721'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/07/vfpx-promo-video.html' title='VFPX promo video'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-115176709847434606</id><published>2006-07-01T23:15:00.000+08:00</published><updated>2006-07-01T23:18:18.490+08:00</updated><title type='text'>Another VFP Promo Video</title><content type='html'>&lt;a href=&quot;http://video.google.com/videoplay?docid=7938811193423029576&quot;&gt;Another VFP promo video&lt;/a&gt; posted by &lt;a href=&quot;http://weblogs.foxite.com/kevinragsdale/archive/2006/06/30/1930.aspx&quot;&gt;Kevin Ragsdale&lt;/a&gt; at Goodle Video.&lt;br /&gt;&lt;br /&gt;Thank you, Kevin.</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/115176709847434606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/115176709847434606?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115176709847434606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115176709847434606'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/07/another-vfp-promo-video.html' title='Another VFP Promo Video'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-115154800383205239</id><published>2006-06-29T09:51:00.000+08:00</published><updated>2006-06-29T10:26:43.856+08:00</updated><title type='text'>VFPX</title><content type='html'>&lt;a href=&quot;http://www.codeplex.com/Project/FileDownload.aspx?ProjectName=VFPX&amp;CountDownload=False&amp;DownloadId=343&quot;&gt;&lt;img src=&quot;http://www.codeplex.com/Project/FileDownload.aspx?ProjectName=VFPX&amp;CountDownload=False&amp;DownloadId=343&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.codeplex.com/Wiki/View.aspx?ProjectName=VFPX&quot;&gt;VFPX&lt;/a&gt; is now at CodePlex. Cool logo!</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/115154800383205239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/115154800383205239?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115154800383205239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/115154800383205239'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/06/vfpx.html' title='VFPX'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-114975132859884463</id><published>2006-06-08T14:35:00.000+08:00</published><updated>2006-06-08T16:34:26.140+08:00</updated><title type='text'>Application Loader, Self-Update</title><content type='html'>Upgrade is a very painful process for desktop application in multi-users environment. We got to update latest EXE, fxp, dbf and etc to ALL user machine by running upgrade program or xcopy them manually.&lt;br /&gt;&lt;br /&gt;Some time ago, VFP developers shared programs like &quot;Application Loader&quot; and &quot;Application Updater&quot; which automate the upgrade process. These programs check for any updated files available at LAN/Web server. If any, these files would be copied to local machine, register them if necessary.&lt;br /&gt;&lt;br /&gt;With this, users no longer launch our application. Instead, user only launch Application Loader. Application Loader would update files and launch the actual EXE.&lt;br /&gt;&lt;br /&gt;Application Loader should be a less maintainance program because we seldom change the logic. However, seldom change meant still got chance we need to change it. We may need to enhance or add more features to it. For example, current version doesn&#39;t support COM DLL registration. We wan to build this feature within next few months.&lt;br /&gt;&lt;br /&gt;OK, now we back to our old problem. How are we going to update our Application Loader?&lt;br /&gt;&lt;br /&gt;I borrowed Les Pinter idea to solve this problem.&lt;br /&gt;&lt;br /&gt;Below is the flowchart of my self-update Application Loader.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://photos1.blogger.com/blogger/6205/449/1600/apploader.jpg&quot;&gt;&lt;img src=&quot;http://photos1.blogger.com/blogger/6205/449/320/apploader.jpg&quot; alt=&quot;&quot; border=&quot;1&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I am using ShellExec API to launch instance of &quot;latest&quot; Application Loader so that &quot;older&quot; Application loader able to get back control and exit immediatelly.&lt;br /&gt;&lt;br /&gt;If you have any comments or suggestions, pls email me. Thank you</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/114975132859884463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/114975132859884463?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114975132859884463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114975132859884463'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/06/application-loader-self-update.html' title='Application Loader, Self-Update'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-114969856783542166</id><published>2006-06-08T00:06:00.000+08:00</published><updated>2006-06-08T00:45:00.670+08:00</updated><title type='text'>Make VFP cool!</title><content type='html'>There are couple of blogs show how to make VFP look cool! For example : -&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://weblogs.foxite.com/bernardbout/archive/2006/06/07/1704.aspx&quot;&gt;Recreating OneNoteTabs in VFP9&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://weblogs.foxite.com/vassilisaggelakos/archive/2006/05/18/1551.aspx&quot;&gt;What I have done with VFP, GDI+, and a ton of help from VFP Community (OR why VFP is COOL)&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.goyanet.com.ar/vfp/ctl32_statusbar/&quot;&gt;ctl32_statusbar - A Status Bar Control Class For Visual FoxPro 9&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Some of them are using &lt;span style=&quot;font-weight: bold;&quot;&gt;pure VFP code&lt;/span&gt;, and some make use of &lt;span style=&quot;font-weight: bold;&quot;&gt;WINAPI&lt;/span&gt;s call.&lt;br /&gt;&lt;br /&gt;It just remind me what I did two years ago. Image below is one of the screenshot of my application that make use of listbar control which can be downloaded from UT download section. I make some changes on it and use some bitmaps so that it look XP theme. It is just simple changes.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://photos1.blogger.com/blogger/6205/449/1600/Image6.jpg&quot;&gt;&lt;img src=&quot;http://photos1.blogger.com/blogger/6205/449/320/Image6.jpg&quot; alt=&quot;&quot; border=&quot;1&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Figure 1 Outlook bar&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://photos1.blogger.com/blogger/6205/449/1600/Image9.jpg&quot;&gt;&lt;img src=&quot;http://photos1.blogger.com/blogger/6205/449/320/Image9.jpg&quot; alt=&quot;&quot; border=&quot;1&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Figure 2 Mouse move over the option&lt;br /&gt;&lt;br /&gt;Does it really cool? Well, it may not as cool as other tool mentioned above. However,  at least, my customer impressed on it and asked : &quot;Are you sure you are using VFP to do this?&quot;&lt;g&gt;&lt;/g&gt;</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/114969856783542166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/114969856783542166?isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114969856783542166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114969856783542166'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/06/make-vfp-cool.html' title='Make VFP cool!'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-114934499952364993</id><published>2006-06-03T22:19:00.000+08:00</published><updated>2006-06-03T22:29:59.540+08:00</updated><title type='text'>Reason to use ViewDBC</title><content type='html'>In my prior post, I mentioned I hit error in multi instances environment. Failure that I hit in second instance will cause exception in first instance also. I am not sure how VFP handle connection using dbc. But I am sure VFP update something to DBC when open view (That is why our DBC date is always &quot;up-to-date&quot;).&lt;br /&gt;&lt;br /&gt;Use seperate copy of DBC for each instance would solve the issue. It has same reason of using ViewDBC in multi-user environment as recommded.</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/114934499952364993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/114934499952364993?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114934499952364993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114934499952364993'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/06/reason-to-use-viewdbc.html' title='Reason to use ViewDBC'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-114934432248376146</id><published>2006-06-03T21:37:00.000+08:00</published><updated>2006-06-03T22:18:42.500+08:00</updated><title type='text'>SQL Connection property reset!</title><content type='html'>Recently, my team is testing our application to make sure it works fine in multi instances and Terminal Server environment.&lt;br /&gt;&lt;br /&gt;Once launch second instance of our application, we hit show stopper errors.&lt;br /&gt;&lt;br /&gt;Firstly, we hit error &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;Invalid call issued while executing a SQLMORERESULTS( )  sequence.&quot;&lt;/span&gt; Thank you for UT member to give me hint. We set connection &quot;BatchMode&quot; in DBC to True and test the application. Hey, it still happen! After a lot of observations, trial and error we found that our connection property been reset by VFP.&lt;br /&gt;&lt;br /&gt;We are using remote view and SQL Passthrough to manipulate SQL Server data. We retrieve current view connection handle and use it in SPT to share connection among both. Don&#39;t know how VFP reset connection property. It causes BatchMode reset to False.&lt;br /&gt;&lt;br /&gt;OK, we add code to re-assign True to BatchMode after after retrieve remote view connection handle, before pass to SPT. Problem solved! We start to test our data entry form. Key in records, save them in both instance. Ooopss, we hit error &lt;span style=&quot;font-style:italic;&quot;&gt;&quot;ODBC error : Invalid transaction State&quot;&lt;/span&gt; What is this error all about??!?!?!&lt;br /&gt;&lt;br /&gt;Yes, both of these error has cause. Connection transaction mode is reset to &lt;span style=&quot;font-weight:bold;&quot;&gt;ZERO&lt;/span&gt;. By right, it should be 1 - AutoCommit or 2 - Manual.&lt;br /&gt;&lt;br /&gt;We tried to reproduce the bug in test project, but failed! We would report this to FoxTeam once we can reproduce it.</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/114934432248376146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/114934432248376146?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114934432248376146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114934432248376146'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/06/sql-connection-property-reset.html' title='SQL Connection property reset!'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-114934179469305681</id><published>2006-06-03T21:33:00.000+08:00</published><updated>2006-06-03T21:36:34.716+08:00</updated><title type='text'>VFP raise again in TIOBE index</title><content type='html'>Visual FoxPro is at position &lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 255);&quot;&gt;12&lt;/span&gt; on the &lt;a href=&quot;http://www.sweetpotatosoftware.com/SPSBlog/ct.ashx?id=32407483-6292-47e8-863e-c9100fc9bac0&amp;url=http%3a%2f%2fwww.tiobe.com%2ftpci.htm&quot;&gt;TIOBE Index&lt;/a&gt;. It is rate &quot;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;A&lt;/span&gt;&quot; now!</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/114934179469305681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/114934179469305681?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114934179469305681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114934179469305681'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/06/vfp-raise-again-in-tiobe-index.html' title='VFP raise again in TIOBE index'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-114933394003919218</id><published>2006-06-03T19:15:00.000+08:00</published><updated>2006-06-03T19:25:40.040+08:00</updated><title type='text'>Multi-Threading in VFP</title><content type='html'>Calvin Hsia posted sample code to run VFP in multi-threading mode.&lt;br /&gt;&lt;br /&gt;[Calvin Hsia :]&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/calvin_hsia/archive/2006/05/11/595562.aspx&quot;&gt;Sample program to create multiple threads&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/calvin_hsia/archive/2006/05/16/599108.aspx&quot;&gt;Create multiple threads from within your application&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/calvin_hsia/archive/2006/05/23/605465.aspx&quot;&gt;More Multithread capabilities: interthread synchronization, error checking&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Hopefully, this class would be enhanced to enable VFP to have robust multi-threading feature later.</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/114933394003919218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/114933394003919218?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114933394003919218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114933394003919218'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/06/multi-threading-in-vfp.html' title='Multi-Threading in VFP'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-114933325280909475</id><published>2006-06-03T19:04:00.000+08:00</published><updated>2006-06-03T19:14:12.826+08:00</updated><title type='text'>Simple steps, are they really simple?</title><content type='html'>Ted &lt;a href=&quot;http://radio.weblogs.com/0117767/2006/06/01.html#a1981&quot;&gt;pointed out&lt;/a&gt; a &lt;a href=&quot;http://www.flickr.com/photo_zoom.gne?id=151250154&amp;size=o&quot;&gt;link&lt;/a&gt; that show how to delete a desktop shortcut in &lt;span style=&quot;font-weight:bold;&quot;&gt;seven&lt;/span&gt; &lt;span style=&quot;font-style:italic;&quot;&gt;simple steps&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;It remind me one of the product installation procedure. In order to deploy the application to customer, it requires only &lt;span style=&quot;font-weight:bold;&quot;&gt;firty&lt;/span&gt; easy steps. Well, the steps are really easy, frankly.</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/114933325280909475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/114933325280909475?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114933325280909475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114933325280909475'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/06/simple-steps-are-they-really-simple.html' title='Simple steps, are they really simple?'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-114681590833119689</id><published>2006-05-05T15:08:00.000+08:00</published><updated>2006-05-05T15:58:28.360+08:00</updated><title type='text'>How to make Visual FoxPro cool from  Craig Bailey</title><content type='html'>Craig Bailey has an excellent post, &quot;&lt;a href=&quot;http://craigbailey.blogspot.com/2006/05/vfp-how-to-make-visual-foxpro-cool.html&quot;&gt;How to make Visual FoxPro cool&lt;/a&gt;&quot;.&lt;br /&gt;&lt;br /&gt;Totally agree with him, perception to VFP outside of VFP community is the main problem.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;How to make VFP cool&lt;/span&gt;&lt;br /&gt;Andrew MacNeill has couple of &lt;a href=&quot;http://craigbailey.blogspot.com/2006/05/vfp-how-to-make-visual-foxpro-cool.html&quot;&gt;suggestions&lt;/a&gt;, such as using ActiveX to improve UI, write custom tool to replace the native tools using MENUHIT and etc. &lt;br /&gt;&lt;br /&gt;My question are : -&lt;br /&gt;&lt;br /&gt;1. Why 3rd party tool? Remember most of them are not free. Why does .NET provide these tools natively but VFP got to use external tool?&lt;br /&gt;2. Why do VFP developers alway required to write tool for it? VFP is designed to be flexible, customizable, provide good function and hook to bind windows event. Does it meant developer got to write tool themselves?</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/114681590833119689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/114681590833119689?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114681590833119689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114681590833119689'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/05/how-to-make-visual-foxpro-cool-from.html' title='How to make Visual FoxPro cool from  Craig Bailey'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-114681286566631275</id><published>2006-05-05T15:00:00.000+08:00</published><updated>2006-05-05T15:07:45.683+08:00</updated><title type='text'>VFP at TIOBE</title><content type='html'>VFP has been staying in TIOBE top 20 list since January 2006. It is at the position 13th with status &#39;A-&#39;.&lt;br /&gt;&lt;br /&gt;It shows the influence of VFP community.</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/114681286566631275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/114681286566631275?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114681286566631275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/114681286566631275'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/05/vfp-at-tiobe.html' title='VFP at TIOBE'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-113880236925263731</id><published>2006-02-01T21:46:00.000+08:00</published><updated>2006-02-01T21:59:32.273+08:00</updated><title type='text'>Ken Levy goes Windows Live</title><content type='html'>Ken Levy, VS Data Group Product Manager announced to accept an offer to work be a product planner Windows Live division.&lt;br /&gt;&lt;br /&gt;Is it a good/bad news for VFP community?&lt;br /&gt;&lt;br /&gt;Anyway, congratulation Ken!</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/113880236925263731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/113880236925263731?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/113880236925263731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/113880236925263731'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/02/ken-levy-goes-windows-live.html' title='Ken Levy goes Windows Live'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-113689139234722167</id><published>2006-01-10T19:05:00.000+08:00</published><updated>2006-01-10T19:09:52.360+08:00</updated><title type='text'>Which is your favorite Fox head?</title><content type='html'>Craig Boyd - &lt;a href=&quot;http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,55eed756-353c-4086-9a2e-7c52ac926611.aspx&quot;&gt;Creating our own Fox logos&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/113689139234722167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/113689139234722167?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/113689139234722167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/113689139234722167'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2006/01/which-is-your-favorite-fox-head.html' title='Which is your favorite Fox head?'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-113523698610699715</id><published>2005-12-22T15:13:00.000+08:00</published><updated>2005-12-22T15:36:26.116+08:00</updated><title type='text'>SQLRollBack() reset error</title><content type='html'>Just found out that SQLRollBack() will reset error occured during SQL Server transaction. IOW, we would not able to get the error occured during transaction after rollback.&lt;br /&gt;I believe it is design of ODBC driver, nothing to do with VFP. (Is it true?)</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/113523698610699715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/113523698610699715?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/113523698610699715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/113523698610699715'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2005/12/sqlrollback-reset-error.html' title='SQLRollBack() reset error'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7363605.post-113463903210614173</id><published>2005-12-15T17:01:00.000+08:00</published><updated>2005-12-15T17:30:32.160+08:00</updated><title type='text'>Visual FoxPro is a Rising Star</title><content type='html'>A report from TIOBE Programming Community indicates that Visual FoxPro has raised its position from 51 to 20.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;Rising star this month is Visual FoxPro. It jumped in one year time from position 51 to 20! It is interesting to see that there is a whole bunch of &quot;new&quot; programming languages (such as Visual FoxPro, ColdFusion, Ruby, D, and ActionScript) trying to get in the major league, &lt;span style=&quot;font-weight:bold;&quot;&gt;but none of them is capable of holding a top 20 position for more than a couple of months&lt;/span&gt;.&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Huh? Is it a predication or what? Why can&#39;t VFP stay for more than couple of months?</content><link rel='replies' type='application/atom+xml' href='http://ckkiet.blogspot.com/feeds/113463903210614173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7363605/113463903210614173?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/113463903210614173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7363605/posts/default/113463903210614173'/><link rel='alternate' type='text/html' href='http://ckkiet.blogspot.com/2005/12/visual-foxpro-is-rising-star.html' title='Visual FoxPro is a Rising Star'/><author><name>Chan Kok Kiet (John Jones)</name><uri>http://www.blogger.com/profile/06724992491667347198</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>