<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DkUMSH8_cCp7ImA9WxBWFEw.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170</id><updated>2010-02-05T16:58:09.148-07:00</updated><title>Views from an Advantage Evangelist</title><subtitle type="html">My perspective on Advantage Database Server and other programming topics.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.advantageevangelist.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>238</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/ViewsFromAnAdvantageEvangelist" /><feedburner:info uri="viewsfromanadvantageevangelist" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;DkUMSH8-cCp7ImA9WxBWFEw.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-4280129562080353351</id><published>2010-02-05T07:00:00.000-07:00</published><updated>2010-02-05T16:58:09.158-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-05T16:58:09.158-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="User Interface" /><title>Who Does the Testing</title><content type="html">&lt;p&gt;As I discussed in my &lt;a title="The Power of Testing" href="http://blog.advantageevangelist.com/2010/02/power-of-testing.html" target="_blank"&gt;last post&lt;/a&gt; there are many types of testing, but who should be doing the testing? This depends on what type of test is being conducted. Unit tests, regression tests and integration tests can be automated in many cases. They were probably written by the developers during development or by the QA department.&lt;/p&gt;  &lt;p&gt;Automated tests are extremely good at demonstrating that the features and functionality work correctly. They can also be used to measure performance. By always running the same tests regressions can be identified quickly and we can be assured that existing features continue to work as new features are added.&lt;/p&gt;  &lt;p&gt;However, there are many tests that simply cannot be automated, especially if your application contains a lot of UI elements. Sure there are programs that click buttons in a specific sequence and can &amp;quot;observe&amp;quot; the results. But, this isn't the same as a person interacting with the product. When a real person is clicking the buttons they an also evaluate how good the workflow is, how easy it is to move through the steps of the task and most importantly provide &lt;em&gt;qualitative&lt;/em&gt; feedback.&lt;/p&gt;  &lt;p&gt;These types of testers are a rare find. A good QA person needs to be someone who enjoys working on repetitive tasks or at the very least configuring several complex environments. The tester needs to be able to evaluate not only that the software is performing correctly but that it is doing the job in a usable way. Joel Spolsky has some advice on choosing &lt;a title="Joel On Software - Why testers?" href="http://www.joelonsoftware.com/items/2010/01/26.html" target="_blank"&gt;testers&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;If your program has a significant user interface you should include some Usability Testing into your schedule. These tests should be conducted in a semi-controlled environment with little direction. A user should be given a task to complete with the software and the session should be observed and/or recorded. This allows the developer(s) to see how easy their interface is to use. It can also identify places where additional error handling or explanation is necessary.&lt;/p&gt;  &lt;p&gt;These kinds of tests should not be conducted by the engineer who built the interface. Let's face it, the interface that I build may make perfect sense to me because I know what it is supposed to do and how it does it. Using the form may not be as obvious to someone else working with the product. A sequence of actions to perform a task that is quite natural to me may be frustrating for many users. Jeff Atwood made a similar point in his article &amp;quot;&lt;a title="Coding Horror - Open Source Software, Self Service Software" href="http://www.codinghorror.com/blog/archives/001215.html" target="_blank"&gt;Open Source Software, Self Service Software&lt;/a&gt;&amp;quot; when discussing self-service checkout.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;There are certain rituals to using the self-service checkout machines. And we know that. We programmers fundamentally grok the hoops that the self-service checkout machines make customers jump through. They are, after all, devices designed by our fellow programmers. Every item has to be scanned, then carefully and individually placed in the bagging area which doubles as a scale to verify the item was moved there. One at time. In strict sequence. Repeated exactly the same every time. We live this system every day; it's completely natural for a programmer. But it isn't natural for average people. I've seen plenty of customers in front of me struggle with self-service checkout machines, puzzled by the workings of this mysterious device that seems so painfully &lt;i&gt;obvious&lt;/i&gt; to a programmer. I get frustrated to the point that I almost want to rush over and help them myself. Which would defeat the purpose of a.. self-service device.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I related to this example right away. It seems very natural to me to do things step by step since that is the way we have to write programs. Most people don't break tasks down into these small chunks. A good tester can identify where these steps seem onerous which allows the developers to streamline the task. &lt;/p&gt;  &lt;p&gt;Finally if you need some convincing on hiring testers take a look at &lt;a title="Joel on Software" href="http://www.joelonsoftware.com/articles/fog0000000067.html" target="_blank"&gt;Top Five (Wrong) Reasons You Don't Have Testers&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-4280129562080353351?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=8dfOVzu8qmc:UQTkTY328z0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=8dfOVzu8qmc:UQTkTY328z0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=8dfOVzu8qmc:UQTkTY328z0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=8dfOVzu8qmc:UQTkTY328z0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=8dfOVzu8qmc:UQTkTY328z0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=8dfOVzu8qmc:UQTkTY328z0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=8dfOVzu8qmc:UQTkTY328z0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/8dfOVzu8qmc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/4280129562080353351/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=4280129562080353351&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/4280129562080353351?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/4280129562080353351?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/8dfOVzu8qmc/who-does-testing.html" title="Who Does the Testing" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2010/02/who-does-testing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EEQnY4cSp7ImA9WxBWEk0.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-2736761960322978724</id><published>2010-02-03T07:00:00.000-07:00</published><updated>2010-02-03T07:00:03.839-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-03T07:00:03.839-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Troubleshooting" /><title>The Power of Testing</title><content type="html">&lt;p&gt;Testing is an often dreaded but very necessary part of the development process. It can be a tedious task but it can really pay off in the long run. I think this (de)Motivational poster sums it up nicely.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_pJ4HkzTKiOA/S2iRyUbC4nI/AAAAAAAAD4Y/VJX8kg_T3z4/s1600-h/Testing18.jpg"&gt;&lt;img title="Testing1" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="324" alt="Testing1" src="http://lh5.ggpht.com/_pJ4HkzTKiOA/S2iRy1_h13I/AAAAAAAAD4c/GniTQCyT-NU/Testing1_thumb4.jpg?imgmax=800" width="404" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I realize that there isn't time to test everything. Like all programming tasks they need to be added into the schedule. Therefore, you need to choose the tests that best suit your situation. Here are a few examples.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Unit Testing &lt;/li&gt;    &lt;li&gt;Regression Testing &lt;/li&gt;    &lt;li&gt;Integration Testing &lt;/li&gt;    &lt;li&gt;Usability Testing &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Unit testing was brought to the forefront with the concept of Test-driven Development (TTD). TTD encourages developers to write a unit test first then create the method. This ensures that every method has a test written for it. If you are trying to apply this to an existing project it can be a very large task. For new projects there are many tools available which which help automate the process.&lt;/p&gt;  &lt;p&gt;Creating unit tests for every function can be a time consuming process and needs to be balanced with generating the code that actually does the work. This can be further complicated since you need a positive and negative test in many cases. You need to ensure your function returns the correct results for valid input as well as proper handling of invalid input. Achieving the right amount of unit tests can be a somewhat daunting task.&lt;/p&gt;  &lt;p&gt;Two types of tests which are almost always used are regression and integration tests. Regression testing ensures that changes to the code don't break any existing functionality. This is a step up from unit level tests in that it demonstrates that all of the units work together properly. Testing of new features is generally referred to as Integration Testing since it tests the addition of new features with the old. &lt;/p&gt;  &lt;p&gt;When you are developing a program that will be used by people frequently Usability Testing is a valuable tool. Many people think that this can be a very time consuming and expensive type of testing to do. However, it doesn't have to be. You can conduct informal usability tests by simply grabbing someone in the hall and asking them to look at a form or web page that you just completed. If they can use the form then your on the right track. &lt;/p&gt;  &lt;p&gt;Other simple usability tests can be conducted in a few hours using screen sharing software and a little help from your customers. This allows your developers to watch a user work with the program and identify good and bad aspects of the interface. I believe this kind of feedback is invaluable, it will lead to improvements and is well worth the time investment.&lt;/p&gt;  &lt;p&gt;There are many other categories of tests that can be run and ultimately the level of tests you perform is going to depend on many factors. Although testing is very important delivering a product to market is just as important. Do enough testing to ensure that your product will work correctly and effectively then get it out to your best testers; your customers.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-2736761960322978724?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=vd6ShafBd0k:nd45PEQ5c1c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=vd6ShafBd0k:nd45PEQ5c1c:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=vd6ShafBd0k:nd45PEQ5c1c:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=vd6ShafBd0k:nd45PEQ5c1c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=vd6ShafBd0k:nd45PEQ5c1c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=vd6ShafBd0k:nd45PEQ5c1c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=vd6ShafBd0k:nd45PEQ5c1c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/vd6ShafBd0k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/2736761960322978724/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=2736761960322978724&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/2736761960322978724?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/2736761960322978724?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/vd6ShafBd0k/power-of-testing.html" title="The Power of Testing" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2010/02/power-of-testing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8FQXg8cCp7ImA9WxBWEE4.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-8209983121144611625</id><published>2010-02-01T07:00:00.000-07:00</published><updated>2010-02-01T07:00:10.678-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-01T07:00:10.678-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="FAQ" /><title>FAQs – January 2010</title><content type="html">&lt;h3&gt;Client Communication Errors&lt;/h3&gt;  &lt;p&gt;Clients can get disconnected from Advantage in many ways. The network connection could fail, the client could loose power or the user could simply close the program abnormally. If the server detects that the client has been disconnected it will log a &lt;a title="Advantage Error Guide - 7020 User Logged Out" href="http://devzone.advantagedatabase.com/dz/webhelp/Advantage9.1/mergedProjects/adserror/err7xxx/7020_user_logged_out.htm" target="_blank"&gt;7020&lt;/a&gt; error.&lt;/p&gt;  &lt;p&gt;However, there are some communication errors that can generate an error on the server. In rare cases a &lt;a title="Advantage Error Guide - 9094 Cursor is still active" href="http://devzone.advantagedatabase.com/dz/webhelp/Advantage9.1/mergedProjects/adserror/err9xxx/9094_the_operation_cannot_be_performed_on_the_statement_because_the_cursor_is_still_active.htm" target="_blank"&gt;9094&lt;/a&gt; error, which will also generate a crash dump file, can be caused by a client communication failure. This should be resolved in version 9.10.0.20 which added a new error code 7213 which does not generate a crash dump file. This error is logged when the client gets a temporary or non-fatal communication error when sending a request to the server. &lt;/p&gt;  &lt;p&gt;Two knowledge base articles that address this issue have been posted: &lt;a href="http://devzone.advantagedatabase.com/dz/Content.aspx?Key=17&amp;amp;RefNo=100113-2242"&gt;7213 Error Logged in the Advantage Error Log&lt;/a&gt; and &lt;a href="http://devzone.advantagedatabase.com/dz/Content.aspx?Key=17&amp;amp;RefNo=100111-2241"&gt;Error 9094 Logged and Dump File Generated&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;&amp;quot;Empty&amp;quot; Date Fields in VFP Tables&lt;/h3&gt;  &lt;p&gt;When a date field is empty in a Visual FoxPro (VFP) table the Advantage ODBC Driver will return 12/30/1899 as the date. This is the default return value when an Xbase field contains an empty value. &lt;/p&gt;  &lt;p&gt;You can avoid this situation in one of two ways. VFP allows fields to be created to support NULLs. When the field is created this way Advantage will return NULL if a value has not been defined. &lt;/p&gt;  &lt;p&gt;Alternately you can check the field for an empty value by using the EMPTY() function. This is available as both an SQL scalar function as well as a filter expression. The EMPTY() function will return true if the field contains the Xbase empty value for the given field type.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;SELECT * FROM MyTable WHERE EMPTY(MyDate) = TRUE&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;Can a Server Replicate to Itself?&lt;/h3&gt;  &lt;p&gt;Yes, an Advantage server with replication enabled can replicate to itself. You simply have to create another database on the server and configure it as the subscriber. This could be very useful in keeping an up to the minute backup of your data. Create the second database on another drive within the server so if the primary drive failed you would have a current backup immediately available.&lt;/p&gt;  &lt;p&gt;You could also replicate to an external drive or to a Network Attached Storage (NAS) device for an additional measure of security.&lt;/p&gt;  &lt;h3&gt;Creating a Mini-Dump for a Specific Error Code&lt;/h3&gt;  &lt;p&gt;Advantage automatically creates a crash dump file whenever a 9000 class error occurs. These files assist the R&amp;amp;D team in determining what is going on with the server when the error occurred. Generally this allows us to quickly determine the problem and recommend solutions.&lt;/p&gt;  &lt;p&gt;You can also create a mini-dump when you want more information about why a specific error code is being generated. This is done by adding some additional keys to the registry. Create registry entries named MINIDUMPERROR, MINIDUMPFILE, and MINIDUMPLINE in the ADS registry location of HKLM\SYSTEM\CurrentControlSet\Services\Advantage\Configuration. &lt;/p&gt;  &lt;p&gt;To generate the log file just find the Error Number, File Name and Error Line you wish to create the dump for in the Advantage Error Log (ADS_ERR.adt). Then do whatever operation that caused the error again. Advantage should generate a file named adsdump*.gz on the root of the C drive, or the location configured in the error log path.&lt;/p&gt;  &lt;p&gt;For more information about this process see this knowledge base &lt;a title="Minidump Cheat Sheet" href="http://devzone.advantagedatabase.com/dz/Content.aspx?Key=17&amp;amp;RefNo=091119-2229" target="_blank"&gt;article&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-8209983121144611625?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=nFP8ibOPuKs:5us9HMvMh1Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=nFP8ibOPuKs:5us9HMvMh1Y:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=nFP8ibOPuKs:5us9HMvMh1Y:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=nFP8ibOPuKs:5us9HMvMh1Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=nFP8ibOPuKs:5us9HMvMh1Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=nFP8ibOPuKs:5us9HMvMh1Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=nFP8ibOPuKs:5us9HMvMh1Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/nFP8ibOPuKs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/8209983121144611625/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=8209983121144611625&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/8209983121144611625?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/8209983121144611625?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/nFP8ibOPuKs/faqs-january-2010.html" title="FAQs – January 2010" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2010/02/faqs-january-2010.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEESHo8fSp7ImA9WxBXF0o.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-425052704189531377</id><published>2010-01-29T07:00:00.000-07:00</published><updated>2010-01-29T07:00:09.475-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-29T07:00:09.475-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="New Technologies" /><category scheme="http://www.blogger.com/atom/ns#" term="Gadgets" /><title>The Apple iPad</title><content type="html">&lt;p&gt;I am always amazed at how good a show Apple puts on. They do a spectacular job at releasing just enough information and rumor to whip everyone into a frenzy. Take the iPad announcement this week it has generated a avalanche of blog posts and tweets (twitters?) over the past two days. It ranked second on Twitter to Haiti on the 27th when it was announced. What would it be like to generate that kind of interest in your product?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_pJ4HkzTKiOA/S2J4-AbmWuI/AAAAAAAAD4A/PgCWrrLA_mU/s1600-h/ipad4.jpg"&gt;&lt;img title="ipad" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="240" alt="ipad" src="http://lh4.ggpht.com/_pJ4HkzTKiOA/S2J4_GUZo2I/AAAAAAAAD4E/kCZV_GdW0_s/ipad_thumb2.jpg?imgmax=800" width="191" align="right" border="0" /&gt;&lt;/a&gt; So, I'll admit it I am interested in this new device. I have really enjoyed using my &lt;a title="The Best Cell Phone Ever?" href="http://blog.advantageevangelist.com/2009/06/best-cell-phone-ever.html" target="_blank"&gt;iPhone&lt;/a&gt; and I must admit the &lt;a title="Apple iPad" href="http://www.apple.com/ipad/" target="_blank"&gt;iPad&lt;/a&gt; looks like a really cool and fun device. Apple's multi-touch interface is the most intuitive interface that I have ever used. It is very easy to learn and it makes the device easy to use for just about everyone. It is so quick to learn how to navigate around and use the applications. I believe that this device will be very well received and Apple will sell millions of them.&lt;/p&gt;  &lt;p&gt;The iPad is essentially a giant iPod Touch, which will be great for surfing the Web and watching movies but not so good at fitting in your pocket. The standard applications like calendar, contacts and photos have all been enhanced to make use of the larger screen size. It also adds the capability to read books. I think this is a great selling feature and it will appeal to a wide audience.&lt;/p&gt;  &lt;p&gt;Since I already have an iPhone and a &lt;a href="http://blog.advantageevangelist.com/2010/01/amazon-kindle.html" target="_blank"&gt;Kindle&lt;/a&gt; I don't see this as a necessary device for me. The iPhone is more portable, provides Internet access virtually everywhere and is my phone. I also think reading on an electronic ink screen instead of an LCD is much easier on the eyes. I really enjoy reading on my Kindle and I find it almost exactly the same as reading ink on paper. &lt;/p&gt;  &lt;p&gt;If I didn't already have the other devices I would be much more interested in purchasing an iPad. I really like the instant on capability and it is large enough to comfortably surf the web. Books are also a great feature and I must admit the product video made the photo browser look really fun. &lt;/p&gt;  &lt;p&gt;For all of the good/great things about the iPad I do see some drawbacks. It runs the iPhone OS which means no multi-tasking. On a device this big I would want to be able to have a few apps open at the same time. There are no cameras on the iPad, which I found surprising since this would be a perfect video chat device. It may be a bit awkward as a camera or camcorder though.&lt;/p&gt;  &lt;p&gt;I found a couple of great articles on Gizmodo discussing the iPad. The best one &amp;quot;&lt;a title="Wilson Rothman from Gizmodo" href="http://gizmodo.com/5458531/the-ipad-is-the-gadget-we-never-knew-we-needed" target="_blank"&gt;The iPad is the Gadget We Never Knew We Needed&lt;/a&gt;&amp;quot; has some great points and is well worth the read. For the downside to the iPad take a look at &amp;quot;&lt;a title="Adam Frucci on Gizmodo" href="http://gizmodo.com/5458382/8-things-that-suck-about-the-ipad" target="_blank"&gt;8 Things That Suck About the iPad&lt;/a&gt;&amp;quot;. Stephen Fry also had some great points in his &lt;a href="http://www.stephenfry.com/2010/01/28/ipad-about/" target="_blank"&gt;article&lt;/a&gt;. I thought his comment to naysayers was quite good:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;There are many issues you could have with the iPad. No multitasking, still no Flash. No camera, no GPS. They all fall away the minute you use it. I cannot emphasize enough this point: “Hold your judgment until you’ve spent five minutes with it”. No YouTube film, no promotional video, no keynote address, no list of features can even hint at the extraordinary feeling you get from actually using and interacting with one of these magical objects.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I would love to have a chance to use the iPad but I am sure it would make me really want to have one. I think this first generation will be good but will have its share of issues. However, I wouldn't turn one down if it was offered to me. I'm just not sure I'm ready to spend $500 on a device that has some glaring limitations. For now I would rather surf the web with my laptop at home or on my iPhone when I am mobile.&lt;/p&gt;  &lt;p&gt;All that said I am sure Apple will sell millions of these and they are always very good at responding to their critics. I bet the next generation iPad will be a must have.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-425052704189531377?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=PH9neuPm548:_o6Kaot1HLQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=PH9neuPm548:_o6Kaot1HLQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=PH9neuPm548:_o6Kaot1HLQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=PH9neuPm548:_o6Kaot1HLQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=PH9neuPm548:_o6Kaot1HLQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=PH9neuPm548:_o6Kaot1HLQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=PH9neuPm548:_o6Kaot1HLQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/PH9neuPm548" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/425052704189531377/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=425052704189531377&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/425052704189531377?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/425052704189531377?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/PH9neuPm548/apple-ipad.html" title="The Apple iPad" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2010/01/apple-ipad.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YMRng_eSp7ImA9WxBXF0w.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-7250497942298622597</id><published>2010-01-27T17:24:00.001-07:00</published><updated>2010-01-28T15:53:07.641-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-28T15:53:07.641-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>January Advantage News</title><content type="html">&lt;p&gt;The January edition of the Advantage Newsletter was sent out today. If you didn't get one you can view it &lt;a title="Advantage Database January Newsletter" href="http://www.sybase.com/detail?id=1067089" target="_blank"&gt;here&lt;/a&gt; or you can &lt;a title="Advantage Newsletter Subscription" href="http://www.sybase.com/newsletter_advantage" target="_blank"&gt;sign-up&lt;/a&gt; and get it right when it is published. You can see a complete archive of the newsletter &lt;a title="Advantage Newsletter Archive" href="http://www.sybase.com/detail_list?id=9796&amp;amp;pageNum=1&amp;amp;multi=true&amp;amp;show=30254&amp;amp;show2=-1&amp;amp;timeframe=-1" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Some of the exciting things announced in the newsletter include&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Advantage Database Server 10 | Pure &amp;amp; Simple webcast series – this three part series will introduce you to all the new features and improvements for the latest version of Advantage. This series begins in February and you can sign up &lt;a title="Webcast Registration" href="http://marketing.ianywhere.com/forms/Advantage10PS?elq=f503d31501314585a93f58bf7a573121" target="_blank"&gt;here&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;The next Advantage Technical Summit will be held in Boise, Idaho on April 28th and 29th. This is a great opportunity to learn more about Advantage and network with other Advantage users. More information about this event will be sent out soon. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Keep watching for more event announcements. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-7250497942298622597?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=kZ2M3z0gUWI:-VGBOOFR0A8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=kZ2M3z0gUWI:-VGBOOFR0A8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=kZ2M3z0gUWI:-VGBOOFR0A8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=kZ2M3z0gUWI:-VGBOOFR0A8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=kZ2M3z0gUWI:-VGBOOFR0A8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=kZ2M3z0gUWI:-VGBOOFR0A8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=kZ2M3z0gUWI:-VGBOOFR0A8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/kZ2M3z0gUWI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/7250497942298622597/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=7250497942298622597&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/7250497942298622597?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/7250497942298622597?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/kZ2M3z0gUWI/january-advantage-news.html" title="January Advantage News" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2010/01/january-advantage-news.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIARng-eSp7ImA9WxBXGE0.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-2996398946198792957</id><published>2010-01-13T07:00:00.000-07:00</published><updated>2010-01-29T16:25:47.651-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-29T16:25:47.651-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Books" /><title>My 2010 Reading List</title><content type="html">&lt;p&gt;As I mentioned in my first book review of the year I am going back to basics. I thought it was time to review some of the basic database theory along with solid design principals. With that in mind here are the titles that I have identified so far.&lt;/p&gt;  &lt;p&gt;Database Stuff&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0201752840?ie=UTF8&amp;amp;tag=viewfromanadv-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0201752840"&gt;Database Design for Mere Mortals&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0201752840" width="1" border="0" /&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0126445516?ie=UTF8&amp;amp;tag=viewfromanadv-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0126445516"&gt;Data Modeling Essentials&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0126445516" width="1" border="0" /&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0596100124?ie=UTF8&amp;amp;tag=viewfromanadv-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596100124"&gt;Database in Depth: Relational Theory for Practitioners&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0596100124" width="1" border="0" /&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0596523068?ie=UTF8&amp;amp;tag=advantageevangelist-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596523068"&gt;SQL and Relational Theory: How to Write Accurate SQL Code&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0596523068" width="1" border="0" /&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0596008945?ie=UTF8&amp;amp;tag=advantageevangelist-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596008945"&gt;The Art of SQL&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0596008945" width="1" border="0" /&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;User interface design and usability&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0465051367?ie=UTF8&amp;amp;tag=viewfromanadv-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0465051367"&gt;Emotional Design: Why We Love (or Hate) Everyday Things&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0465051367" width="1" border="0" /&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0465002285?ie=UTF8&amp;amp;tag=advantageevangelist-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0465002285"&gt;The Design of Future Things&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0465002285" width="1" border="0" /&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0470084111?ie=UTF8&amp;amp;tag=advantageevangelist-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0470084111"&gt;About Face 3: The Essentials of Interaction Design&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0470084111" width="1" border="0" /&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0321657292?ie=UTF8&amp;amp;tag=advantageevangelist-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321657292"&gt;Rocket Surgery Made Easy: The Do-It-Yourself Guide to Finding and Fixing Usability Problems&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0321657292" width="1" border="0" /&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0201702258?ie=UTF8&amp;amp;tag=advantageevangelist-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0201702258"&gt;Writing Effective Use Cases&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0201702258" width="1" border="0" /&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Miscellaneous&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0201657880?ie=UTF8&amp;amp;tag=advantageevangelist-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0201657880"&gt;Programming Pearls (2nd Edition)&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0201657880" width="1" border="0" /&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0201118890?ie=UTF8&amp;amp;tag=advantageevangelist-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0201118890"&gt;More Programming Pearls: Confessions of a Coder&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0201118890" width="1" border="0" /&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1430219483?ie=UTF8&amp;amp;tag=advantageevangelist-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1430219483"&gt;Coders at Work&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1430219483" width="1" border="0" /&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0596519788?ie=UTF8&amp;amp;tag=advantageevangelist-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596519788"&gt;The Productive Programmer (Theory in Practice (O'Reilly))&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0596519788" width="1" border="0" /&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0201734850?ie=UTF8&amp;amp;tag=advantageevangelist-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0201734850"&gt;Peer Reviews in Software: A Practical Guide&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=advantageevangelist-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0201734850" width="1" border="0" /&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;A fairly ambitious list but I hope to get through them all this year. Stay tuned for book reviews as I get them read.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-2996398946198792957?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=noK1rcve-Pw:8Jtvz16CfV8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=noK1rcve-Pw:8Jtvz16CfV8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=noK1rcve-Pw:8Jtvz16CfV8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=noK1rcve-Pw:8Jtvz16CfV8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=noK1rcve-Pw:8Jtvz16CfV8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=noK1rcve-Pw:8Jtvz16CfV8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=noK1rcve-Pw:8Jtvz16CfV8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/noK1rcve-Pw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/2996398946198792957/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=2996398946198792957&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/2996398946198792957?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/2996398946198792957?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/noK1rcve-Pw/my-2010-reading-list.html" title="My 2010 Reading List" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2010/01/my-2010-reading-list.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4GRHg6cSp7ImA9WxBXGE0.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-1490967778250660826</id><published>2010-01-11T07:00:00.000-07:00</published><updated>2010-01-29T16:32:05.619-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-29T16:32:05.619-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Books" /><title>Book Review – Beginning Database Design</title><content type="html">&lt;p&gt;&lt;a href="http://www.amazon.com/gp/product/1590597699?ie=UTF8&amp;amp;tag=advantageevangelist-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1590597699"&gt;&lt;img style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 5px; border-right-width: 0px" height="160" src="http://lh5.ggpht.com/_pJ4HkzTKiOA/S2Nujz7qybI/AAAAAAAAD4U/IXZ7avYWyWs/BeginningDatabaseDesignChurcher_thum.jpg?imgmax=800" width="130" align="right" border="0" /&gt;&lt;/a&gt;I wanted to take some time and go back to some database basics so I looked for some introductory books on database design. I decided on Beginning Database Design From Novice to Professional by Clare Churcher. This is a well written book with decent examples but a bit too introductory for a database programmer. I think it would be a very good book for someone who is looking to move from spreadsheets into databases though.&lt;/p&gt;  &lt;p&gt;The book is relatively short at 240 pages. It contains twelve chapters along with a conclusion and index. It is truly aimed at the casual computer user who has a need to track data. Most of the examples pertain to education and research. Each of the examples are well thought out and clearly demonstrate the concepts she is discussing.&lt;/p&gt;  &lt;p&gt;I thought her approach to introducing the material was well organized. She made some excellent points in her first chapter &amp;quot;What can go wrong&amp;quot;, it demonstrated the importance of good design quickly. Chapter 2 is a brief introduction into the development process. I was happy to see some discussion of use cases in this chapter. I think this is a very important step in the design and development process.&lt;/p&gt;  &lt;p&gt;Chapter 3 examines use cases more thoroughly showing how the process of working with the users and identifying how they will use the data is a fundamental requirement for designing a good database. Chapters 4 and 5 dive into creating a data model. This includes considerations of data types and logical grouping of data. These chapters also spend a lot of time discussing data relationships.&lt;/p&gt;  &lt;p&gt;Chapters 6 discusses looking at data as classes. This provides a good way to demonstrate when it is appropriate to create subclasses that have some common data but also include specific information of their own. Chapters 7 through 9 discuss the relational database model. This is where all of the concepts introduced in the first half of the book come together. There is a lot of discussion about primary keys, normalization and constraints. Each of these concepts include simple and effective examples.&lt;/p&gt;  &lt;p&gt;Chapter 10 is a very quick overview of SQL queries. It demonstrates how to create simple queries to get the data out of the database. If you have worked with SQL before you won't see anything new here. Chapter 11 discusses some user interface issues. I liked how she brought the UI design back to the use cases she discussed in the beginning of the book. All of the UI examples were done in MS Access and are very simple.&lt;/p&gt;  &lt;p&gt;The book concludes with some discussion of object-oriented databases and using data within a spreadsheet. Probably very useful for a casual computer user but not something a programmer really needs. The conclusion does a good job of summarizing the material in the book as well as offering recommendations for more information.&lt;/p&gt;  &lt;p&gt;The bottom line: this book is well written for its intended audience casual users to possibly IT professionals. As a database programmer you will want to invest in something more focused on a programmer's prospective. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-1490967778250660826?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=jBxu81XzzjM:Gu5FH70i87E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=jBxu81XzzjM:Gu5FH70i87E:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=jBxu81XzzjM:Gu5FH70i87E:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=jBxu81XzzjM:Gu5FH70i87E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=jBxu81XzzjM:Gu5FH70i87E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=jBxu81XzzjM:Gu5FH70i87E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=jBxu81XzzjM:Gu5FH70i87E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/jBxu81XzzjM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/1490967778250660826/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=1490967778250660826&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/1490967778250660826?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/1490967778250660826?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/jBxu81XzzjM/book-review-beginning-database-design.html" title="Book Review – Beginning Database Design" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2010/01/book-review-beginning-database-design.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcHSH47eCp7ImA9WxBXF0k.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-5990982312367869854</id><published>2010-01-08T07:00:00.000-07:00</published><updated>2010-01-28T22:47:19.000-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-28T22:47:19.000-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Gadgets" /><title>Amazon Kindle</title><content type="html">&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_pJ4HkzTKiOA/S2J2YLjz-wI/AAAAAAAAD3w/nigce-2_giI/s1600-h/kindle2_front%5B4%5D.jpg"&gt;&lt;img title="kindle2_front" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="240" alt="kindle2_front" src="http://lh3.ggpht.com/_pJ4HkzTKiOA/S2J2Yj7G_5I/AAAAAAAAD30/u5g3p6ZiA78/kindle2_front_thumb%5B2%5D.jpg?imgmax=800" width="240" align="right" border="0" /&gt;&lt;/a&gt; I was fortunate enough to get a Kindle 2 for Christmas this year. I guess my wife was listening when I kept talking about how cool and useful I thought the device would be. So far I haven't been disappointed it is everything I expected and I am really enjoying the device.&lt;/p&gt;  &lt;p&gt;The best feature is how easy it is to read on the device. The electronic ink screen is almost like reading from ink and paper it doesn't strain your eyes at all. I also love the wireless delivery of books to the device. I have been using the Kindle application for my iPhone for a few months and all the books I had downloaded to my iPhone I had instant access to them on my new Kindle. It even keeps track of where I am at in books between the two devices.&lt;/p&gt;  &lt;p&gt;Another great feature is the ability to download previews of books. This is like browsing a book in the bookstore, you usually get a couple of chapters. If you like the book there is a link to get the rest of the book downloaded directly to the device. There are also lots of free books available from Amazon. Many of them are classics but if you check you can usually find some good bargains. I was able to get Magic Kingdom for Sale, Sold! for free.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_pJ4HkzTKiOA/S2J2Y5tjqkI/AAAAAAAAD34/SYmkRYwNcYU/s1600-h/Latitude%20Jacket%5B4%5D.jpg"&gt;&lt;img title="Latitude Jacket" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="171" alt="Latitude Jacket" src="http://lh4.ggpht.com/_pJ4HkzTKiOA/S2J2ZSaktzI/AAAAAAAAD38/1mG3iqjFNvg/Latitude%20Jacket_thumb%5B2%5D.jpg?imgmax=800" width="240" align="left" border="0" /&gt;&lt;/a&gt; There are a few drawbacks to the device though. The form factor is nice but I think it is a bit too thin and perhaps a bit slick on the back. I felt like I might drop it the first few times I was reading. Although I got used to it I still bought a protective case which adds a bit more bulk making it easier for me to grip it. &lt;/p&gt;  &lt;p&gt;I went with the latitude jacket from M Edge. It zips up securing the Kindle and provides some protection when traveling. It also folds completely back making it easy to hang onto the Kindle. It also has a pouch in the front that is big enough to hold the charging cable which keeps everything together.&lt;/p&gt;  &lt;p&gt;Although the screen is easy to read you do need a good light source. It would be nice if the Kindle included some lights around the screen making it easier to read in low light. However, this would probably significantly reduce the battery life and there are many lights available. &lt;/p&gt;  &lt;p&gt;Another slight downside is the screen refresh. Once the screen is rendered it displays in crisp clear grayscale. Some of the screen saver images are really detailed. However, there is a very noticeable flicker when turning pages and sometimes when navigating through menus. &lt;/p&gt;  &lt;p&gt;Overall I love the device. It will be nice to be able to take several books along with me and have access to others just about everywhere. Amazon is also coming out with an SDK for the Kindle. It will be very interesting to see what kinds of applications become available.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-5990982312367869854?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=STc0WOaowO0:ORUe3gLCPvE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=STc0WOaowO0:ORUe3gLCPvE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=STc0WOaowO0:ORUe3gLCPvE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=STc0WOaowO0:ORUe3gLCPvE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=STc0WOaowO0:ORUe3gLCPvE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=STc0WOaowO0:ORUe3gLCPvE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=STc0WOaowO0:ORUe3gLCPvE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/STc0WOaowO0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/5990982312367869854/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=5990982312367869854&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/5990982312367869854?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/5990982312367869854?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/STc0WOaowO0/amazon-kindle.html" title="Amazon Kindle" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2010/01/amazon-kindle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UGQX44eyp7ImA9WxBXF0w.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-1499211369907736591</id><published>2010-01-04T07:00:00.000-07:00</published><updated>2010-01-28T15:53:40.033-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-28T15:53:40.033-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><category scheme="http://www.blogger.com/atom/ns#" term="Advantage 10" /><title>An Exciting New Year</title><content type="html">&lt;p&gt;2010 will be an exciting year for the Advantage team. We will be releasing version 10 of Advantage in the first half of the year. As you might expect we will be providing many opportunities for you to see what will be in the latest version of Advantage in the coming months. &lt;/p&gt;  &lt;p&gt;Here is just a quick peek at what will be available&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Version 10 webcast series – begins in February &lt;/li&gt;    &lt;li&gt;Version 10 launch events – Stay tuned for more information &lt;/li&gt;    &lt;li&gt;Version 10 Beta – First half of 2010 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Along with these major events I will be doing several blog posts and tech tips when the beta is released. You can view the official list of version 10 features on the &lt;a title="Enhancements in Upcoming Releases" href="http://devzone.advantagedatabase.com/dz/content.aspx?key=47" target="_blank"&gt;Advantage Developer Zone&lt;/a&gt;. You can also provide feedback and see which features the R&amp;amp;D team is currently working on by visiting our &lt;a title="Customer Feedback &amp;amp; Ideas for Advantage" href="http://feedback.advantagedatabase.com" target="_blank"&gt;feedback site&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Also stay tuned for the schedule for the next Advantage Technical Summit. This is a great opportunity for you to learn more about Advantage, meet the team and network with other Advantage users.&lt;/p&gt;  &lt;p&gt;I'm looking forward to seeing a lot of Advantage users this year.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-1499211369907736591?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=H3-6Le-od0Y:yZeFEeKuzWU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=H3-6Le-od0Y:yZeFEeKuzWU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=H3-6Le-od0Y:yZeFEeKuzWU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=H3-6Le-od0Y:yZeFEeKuzWU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=H3-6Le-od0Y:yZeFEeKuzWU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=H3-6Le-od0Y:yZeFEeKuzWU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=H3-6Le-od0Y:yZeFEeKuzWU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/H3-6Le-od0Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/1499211369907736591/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=1499211369907736591&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/1499211369907736591?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/1499211369907736591?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/H3-6Le-od0Y/exciting-new-year.html" title="An Exciting New Year" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2010/01/exciting-new-year.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUGR3o9eSp7ImA9WxBXF0U.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-8878503174247188070</id><published>2010-01-01T07:00:00.000-07:00</published><updated>2010-01-29T11:03:46.461-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-29T11:03:46.461-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="FAQ" /><title>FAQs – December 2009</title><content type="html">&lt;h3&gt;Advantage Data Architect Command Line&lt;/h3&gt;  &lt;p&gt;You can open a table or data dictionary using a command line argument for Advantage Data Architect. ARC will open and use the default connection settings to connect to Advantage and open the specified object. You will be prompted for your credentials if they are required when a data dictionary is specified. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_pJ4HkzTKiOA/S2Mi_2Lg-lI/AAAAAAAAD4I/hsvaIHrxeK0/s1600-h/ARCCmdLine5.jpg"&gt;&lt;img title="ARC Command Line Arguement" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="202" alt="ARC Command Line Arguement" src="http://lh4.ggpht.com/_pJ4HkzTKiOA/S2MjAXGTYQI/AAAAAAAAD4M/UObid6QOYpw/ARCCmdLine_thumb3.jpg?imgmax=800" width="400" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Clipper with Windows 7&lt;/h3&gt;  &lt;p&gt;Although Windows 7 is not yet officially supported by Advantage, you may need to run an existing Clipper based application on a Windows 7 client. This can be done using Windows 7 XP Mode, which is a virtual Windows XP environment.&lt;/p&gt;  &lt;p&gt;You can get detailed instructions from this knowledgebase &lt;a title="Clipper and Windows 7" href="http://devzone.advantagedatabase.com/dz/Content.aspx?Key=17&amp;amp;RefNo=091216-2239" target="_blank"&gt;article&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;Setting NOT NULL Constraints With a CREATE TABLE Statement &lt;/h3&gt;  &lt;p&gt;You can specify constraints on data dictionary bound tables with a CREATE TABLE statement. To do this you must use the CONSTRAINT keyword when specifying the constraint. Some servers support defining constraints without using the CONSTRAINT keyword. In the case of specifying whether or not a field can be NULL there are some slight differences. &lt;/p&gt;  &lt;p&gt;Many data modeling tools generate DDL statements to create a database based on the model. These statements may look like the following.&lt;/p&gt;  &lt;blockquote&gt;CREATE TABLE MyTable ( PK Integer NOT NULL, Name Char(50) NULL, HireDate Date NULL, Salary Money NULL ) &lt;/blockquote&gt;  &lt;p&gt;This query would create a table with four fields and the PK field must contain a value. Some small modifications to the statement are required to work with Advantage. The default is to allow NULL for all fields in a table, therefore you do not need to specify the NULL. Additionally you must use the CONSTRAINT keyword when specifying the NOT NULL constraint. The following statement will create the same table in Advantage.&lt;/p&gt;  &lt;blockquote&gt;CREATE TABLE MyTable ( PK Integer CONSTRAINT NOT NULL, Name Char(50), HireDate Date, Salary Money ) &lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-8878503174247188070?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=gxXrLWYDpWo:DACfxpZcgrI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=gxXrLWYDpWo:DACfxpZcgrI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=gxXrLWYDpWo:DACfxpZcgrI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=gxXrLWYDpWo:DACfxpZcgrI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=gxXrLWYDpWo:DACfxpZcgrI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=gxXrLWYDpWo:DACfxpZcgrI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=gxXrLWYDpWo:DACfxpZcgrI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/gxXrLWYDpWo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/8878503174247188070/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=8878503174247188070&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/8878503174247188070?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/8878503174247188070?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/gxXrLWYDpWo/faqs-december-2009.html" title="FAQs – December 2009" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2010/01/faqs-december-2009.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAHSH46eSp7ImA9WxNbEU4.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-8743407467455442314</id><published>2009-11-13T07:00:00.000-07:00</published><updated>2009-11-13T11:42:19.011-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-13T11:42:19.011-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>Madison PC Users Group</title><content type="html">&lt;p&gt;We visited the &lt;a href="http://www.mpcug.org" target="_blank"&gt;Madison PC Users Group&lt;/a&gt; meeting on Wednesday night. There was a good turnout at the meeting and we were able to discuss Advantage Database Server with them. I would like to thank Eric Selje of &lt;a href="http://saltydogllc.com/" target="_blank"&gt;Salty Dog Solutions&lt;/a&gt; for getting us on the schedule. You can get his summary of the meeting &lt;a title="Sybase Advantage Database Server @ MPCUG" href="http://saltydogllc.com/?p=155" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This meeting had a diverse mix of PC users and developers. We trimmed down our presentation to highlight the Advantage features and we did a lot more discussion of general database topics than usual. However, the group was very friendly and had many good questions during the presentation. &lt;/p&gt;  &lt;p&gt;If your interested in the information that we presented to the Madison user group check out the &lt;a href="http://marketing.ianywhere.com/forms/advantagegettingstartedwebcast" target="_blank"&gt;Getting Started with Advantage&lt;/a&gt; screen cast we did earlier this month.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-8743407467455442314?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=LeVKftEEiW8:lMI87BN4aUU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=LeVKftEEiW8:lMI87BN4aUU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=LeVKftEEiW8:lMI87BN4aUU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=LeVKftEEiW8:lMI87BN4aUU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=LeVKftEEiW8:lMI87BN4aUU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=LeVKftEEiW8:lMI87BN4aUU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=LeVKftEEiW8:lMI87BN4aUU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/LeVKftEEiW8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/8743407467455442314/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=8743407467455442314&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/8743407467455442314?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/8743407467455442314?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/LeVKftEEiW8/madison-pc-users-group.html" title="Madison PC Users Group" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/11/madison-pc-users-group.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcFRnc_cSp7ImA9WxNbEU4.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-5456237967035886180</id><published>2009-11-11T09:33:00.000-07:00</published><updated>2009-11-13T09:33:37.949-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-13T09:33:37.949-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>Chicago FoxPro User Group Meeting</title><content type="html">&lt;p&gt;Last night we presented at the &lt;a href="http://www.chicagofudg.com/"&gt;Chicago FoxPro Users and Developers Group&lt;/a&gt;. We got a great turnout and the meeting lasted nearly three hours. There were many questions about replication and encryption during the meeting. It was great to have such an interactive group to present to.&lt;/p&gt;  &lt;p&gt;We did take a short break during the meeting to have some authentic Chicago style pizza. Which made for a great break during the meeting.&lt;/p&gt;  &lt;p&gt;With everyone energized after the pizza we finished up the meeting by showing some demonstrations of our CloneDBC utility and using Advantage from FoxPro. Again we had great interaction and good questions during the demos and we were able to discuss several use cases and scenarios.&lt;/p&gt;  &lt;p&gt;All of the attendees received a flash drive which included all of the screen casts we have produced for FoxPro developers. You can view these screencasts all together using this &lt;a title="Using Advantage with Visual FoxPro" href="http://devzone.advantagedatabase.com/dz/screencasts/FoxPro/FoxPro.html" target="_blank"&gt;link&lt;/a&gt;. Many other screen casts about Advantage are available on the &lt;a title="Advantage Developer Zone" href="http://Devzone.AdvantageDatabase.com" target="_blank"&gt;Devzone&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;We will be in Madison, WI tonight for another user group meeting.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-5456237967035886180?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=X8o269hWd2E:JxR1FF0XLys:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=X8o269hWd2E:JxR1FF0XLys:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=X8o269hWd2E:JxR1FF0XLys:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=X8o269hWd2E:JxR1FF0XLys:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=X8o269hWd2E:JxR1FF0XLys:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=X8o269hWd2E:JxR1FF0XLys:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=X8o269hWd2E:JxR1FF0XLys:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/X8o269hWd2E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/5456237967035886180/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=5456237967035886180&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/5456237967035886180?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/5456237967035886180?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/X8o269hWd2E/chicago-foxpro-user-group-meeting.html" title="Chicago FoxPro User Group Meeting" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/11/chicago-foxpro-user-group-meeting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAAQ387eyp7ImA9WxNUGEw.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-3116590658756281652</id><published>2009-11-09T17:59:00.001-07:00</published><updated>2009-11-09T17:59:02.103-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-09T17:59:02.103-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>Chicago FoxPro User Group</title><content type="html">&lt;p&gt;I will be presenting at the &lt;a href="http://www.chicagofudg.com/" target="_blank"&gt;Chicago FoxPro Users and Developers Group&lt;/a&gt; on Tuesday night the 10th of November. We will be discussing using Advantage Database Server with FoxPro. If you are in the Chicago area feel free to drop in. THe meetings are held at &lt;a href="http://www.chicagotechnexus.com/" target="_blank"&gt;Tech Nexus&lt;/a&gt; on the 15th floor of 200 S. Wacker Drive. The meeting runs from 5:30PM until 8:00PM.&lt;/p&gt; &lt;iframe marginwidth="0" marginheight="0" src="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=200+S+Wacker+Dr,+Chicago,+Illinois+60606&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=49.624204,82.265625&amp;amp;ie=UTF8&amp;amp;om=1&amp;amp;hq=&amp;amp;hnear=200+S+Wacker+Dr,+Chicago,+Cook,+Illinois+60606&amp;amp;ll=41.879275,-87.637124&amp;amp;spn=0.011631,0.019248&amp;amp;z=16&amp;amp;output=embed" frameborder="0" width="425" scrolling="no" height="350"&gt;&lt;/iframe&gt;  &lt;br /&gt;&lt;small&gt;&lt;a style="color: #0000ff; text-align: left" href="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=200+S+Wacker+Dr,+Chicago,+Illinois+60606&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=49.624204,82.265625&amp;amp;ie=UTF8&amp;amp;om=1&amp;amp;hq=&amp;amp;hnear=200+S+Wacker+Dr,+Chicago,+Cook,+Illinois+60606&amp;amp;ll=41.879275,-87.637124&amp;amp;spn=0.011631,0.019248&amp;amp;z=16&amp;amp;source=embed"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;   &lt;p&gt;Here is the description from the Chicago FoxPro User Group Site&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;We have a couple of representatives of Sybase coming to Chicago to demonstrate their Fox-friendly data server -- Advantage; An alternative to pricey backends with an easy conversion route. It should be a good time -- another milestone in a long history of tech twists and turns. From their promotional material at http://www.sybase.com/products/databasemanagement/advantagedatabaseserver: * Flexible data access via either native relational SQL or direct navigational database commands. * Optimized data access for all development environments, including Delphi, Visual Studio, Visual Objects, Visual Basic and more. * Zero administration, easy to install and manage — does not require a database administrator, eliminating high administration costs. * Complete referential integrity support including primary/foreign key definition and cascaded updates and deletes. * Complete server-based transaction processing eliminates database corruption, drastically reducing support costs. * Database security and encryption support. * Fully scalable from local to peer-to-peer to client/server environments — with one set of source code If you have been wondering about a Fox friendly data backend that breaks the 2 GB barrier, come check out the Sybase presentation of Advantage Database Server. First meeting is free. From then on, $10 per meeting or $75 per year. The usual time and place: Tech Nexus 200 S. Wacker Drive, Suite 1500. Tuesday Nov. 10th at 5:30pm (chip in for Pizza and brown bottle beverage.) Here’s the RSVP link: http://bit.ly/3yOzIG As we have worked to keep the FoxPro Users and Developers group a vibrant and interesting colloqium over the years, we notice that new blood comes into the group based on one meeting or subject. I remember making contact with a future employer because he came to see what was up with Crystal Reports in 2002. See you there?&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-3116590658756281652?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=Au4Po6hmmxg:eTuiRH6ZBXE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=Au4Po6hmmxg:eTuiRH6ZBXE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=Au4Po6hmmxg:eTuiRH6ZBXE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=Au4Po6hmmxg:eTuiRH6ZBXE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=Au4Po6hmmxg:eTuiRH6ZBXE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=Au4Po6hmmxg:eTuiRH6ZBXE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=Au4Po6hmmxg:eTuiRH6ZBXE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/Au4Po6hmmxg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/3116590658756281652/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=3116590658756281652&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/3116590658756281652?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/3116590658756281652?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/Au4Po6hmmxg/chicago-foxpro-user-group.html" title="Chicago FoxPro User Group" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/11/chicago-foxpro-user-group.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYNQ3kzcCp7ImA9WxNbEU4.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-4424188657297072961</id><published>2009-11-02T07:00:00.000-07:00</published><updated>2009-11-13T11:16:32.788-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-13T11:16:32.788-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="FAQ" /><title>FAQs October 2009</title><content type="html">&lt;h3&gt;DSN less connection&lt;/h3&gt;  &lt;p&gt;There are two ways to connect to an ODBC driver, using a Data Source Name (DSN) or by providing a connection string. The latter is generally referred to as a DSN Less connection. A DSN Less connection can be useful because there is no need to create a DSN on every system your application is running on. &lt;/p&gt;  &lt;p&gt;A DSN connection string needs at least a Driver and a DataDirectory. When connecting to a data dictionary you will also have to specify a UID (Username) and PWD (Password). When working with free tables we recommend specifying the table type using the DefaultType keyword. See the example DSN connection strings below.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;span style="color: green"&gt;// Connection to an Advantage Data Dictionary&lt;/span&gt;       &lt;br /&gt;Driver=Advantage StreamlineSQL ODBC; DataDirectory=C:\Data\Demo\DemoDictionary.add; Uid=adsuser;Pwd=password;&lt;/p&gt;    &lt;p&gt;&lt;span style="color: green"&gt;// Connecting to a directory of Visual FoxPro tables&lt;/span&gt;       &lt;br /&gt;Driver=Advantage StreamlineSQL ODBC; DataDirectory=C:\Data\VFP ; DefaultType=FoxPro;       &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;All of the properties for an ODBC connection are listed in the&amp;#160; &lt;a title="Advantage ODBC Driver - ODBC Data Source Keys" href="http://devzone.advantagedatabase.com/dz/webhelp/Advantage9.1/mergedProjects/adsodbc/adsodbc/odbc_data_source_keys.htm" target="_blank"&gt;help file&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Permissions Required for Modifying RI Rules&lt;/h3&gt;  &lt;p&gt;You cannot assign rights to Referential Integrity objects within the database. RI rules can only be created in the database by an administrator. Users with ALTER permissions on the tables involved in the RI rule can modify the rule. RI Rules are not visible in the dictionary without the proper permissions. RI rules are enforced for every database user there is no way to exclude users from an RI rule.&lt;/p&gt;  &lt;h3&gt;Using the AdsCommandBuilder&lt;/h3&gt;  &lt;p&gt;The Advantage .NET Data Provider includes a AdsCommandBuilder class which is responsible for creating SQL commands to update, insert and delete data for an AdsDataAdapter. Any statements that are not set directly on the AdsDataAdapter will be generated by the AdsCommandBuilder.&lt;/p&gt;  &lt;p&gt;By default the command builder requires the table to have a primary key in order to generate the additional commands. Ideally you will have primary keys on all of the tables that you use within your application. In practice this is not always the case. If the table does not have a primary key assigned you must set the RequirePrimaryKey property to false.&lt;/p&gt;  &lt;p&gt;The following code demonstrates using the command builder to generate INSERT, UPDATE and DELETE commands for a given AdsDataAdapter.&lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;oCommand.CommandText = &lt;span style="color: #006080"&gt;&amp;quot;SELECT * FROM Customer&amp;quot;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;daTemp = &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; AdsDataAdapter(oCommand)&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;dtTemp = &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; DataTable()&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;daTemp.Fill(dtTemp)&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&amp;#160;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #008000"&gt;' build the INSERT, UPDATE and DELETE commands&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;cbAds = &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; AdsCommandBuilder(daTemp)&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;cbADS.RequirePrimaryKey = &lt;span style="color: #0000ff"&gt;False&lt;/span&gt;    &lt;span style="color: #008000"&gt;' Primary key not available on the table&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;daTemp.InsertCommand = cbAds.GetInsertCommand()&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;daTemp.UpdateCommand = cbAds.GetUpdateCommand()&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;daTemp.DeleteCommand = cbAds.GetDeleteCommand()&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;Error 7156&lt;/h3&gt;

&lt;p&gt;The &lt;a title="7154 Index Automatically Rebuilt" href="http://devzone.advantagedatabase.com/dz/webhelp/Advantage9.1/mergedProjects/adserror/err7xxx/7154_index_automatically_rebuilt.htm" target="_blank"&gt;7156&lt;/a&gt; &amp;quot;Auto Index Rebuild Active&amp;quot; error appears in the error log it most likely occurred because the server was stopped abnormally. For performance reasons indexes are stored in cache and written to disk as necessary. If the Advantage service is stopped abnormally it is possible that all of the index updates have not been written to the index file. &lt;/p&gt;

&lt;p&gt;To correct this situation the Advantage server will automatically rebuild any indexes that it had in cache prior to the cache. This will ensure that the indexes are proper and up to date. It will lock the tables while the index is being rebuilt so you may need to wait a few minutes before connecting clients after restarting a server that has crashed.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-4424188657297072961?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=oemR0fYiswA:wrEO2iYhU5s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=oemR0fYiswA:wrEO2iYhU5s:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=oemR0fYiswA:wrEO2iYhU5s:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=oemR0fYiswA:wrEO2iYhU5s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=oemR0fYiswA:wrEO2iYhU5s:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=oemR0fYiswA:wrEO2iYhU5s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=oemR0fYiswA:wrEO2iYhU5s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/oemR0fYiswA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/4424188657297072961/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=4424188657297072961&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/4424188657297072961?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/4424188657297072961?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/oemR0fYiswA/faqs-october-2009.html" title="FAQs October 2009" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/11/faqs-october-2009.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IDQn0-eyp7ImA9WxNWGUw.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-7822897309986964002</id><published>2009-10-18T18:19:00.001-06:00</published><updated>2009-10-18T18:19:33.353-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-18T18:19:33.353-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>SWFox Final Day</title><content type="html">&lt;p&gt;The final day of Southwest Fox began at included repeats of sessions from the previous days. The conference schedules each session twice to give all the attendees plenty of opportunity to get to the sessions they want to hear. I really like this strategy, I have been to some conferences where there are two sessions that I want to see scheduled at the same time. Just another one of those nice touches that make this a really fun conference to attend.&lt;/p&gt;  &lt;p&gt;&lt;img title="SWFox_Giveaways" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 10px; border-right-width: 0px" height="180" alt="SWFox_Giveaways" src="http://lh6.ggpht.com/_pJ4HkzTKiOA/StuwjUy9t7I/AAAAAAAAD3I/Mehd61pUUUU/SWFox_Giveaways12.jpg?imgmax=800" width="240" align="right" border="0" /&gt;I haven't mentioned our giveaways for this year's conference yet. This year our excellent marketing department was able to get us several items to distribute from our booth. We had some great mini cars that include a spring so you can pull them back and have them zoom over any flat surface. We also had a bunch of nerf-like missiles/grenades which came in very handy for the ambush of Doug Hennig on Saturday. Finally we gave away 1GB flash drives which included a bunch of information about Advantage for FoxPro developers.&lt;/p&gt;  &lt;p&gt;&lt;img title="Kindle 2" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" height="240" alt="Kindle 2" src="http://lh6.ggpht.com/_pJ4HkzTKiOA/Stuwk6gn9jI/AAAAAAAAD3M/NjqwTbVC5pE/Kindle_AdsDev6.jpg?imgmax=800" width="189" align="left" border="0" /&gt;In addition to our free giveaways we also had an Amazon Kindle 2 to give away. We collected names during the conference and had Rick Schummer draw for the Kindle during the closing session. The lucky winner , was excited to take away his bran new Kindle 2 from the conference. Note that Advantage Database Server a Developer's guide is not available on the Kindle, however, it is included as a part of the 9.x help file. &lt;/p&gt;  &lt;p&gt;I would like to thank the Southwest Fox staff for once again putting on an excellent conference. I always enjoy talking with people from the FoxPro community and this is the biggest FoxPro event in North America. I am already thinking about what we can do for next year's conference.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-7822897309986964002?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=VFmmYO7P3tc:AmY_vxAgvd0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=VFmmYO7P3tc:AmY_vxAgvd0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=VFmmYO7P3tc:AmY_vxAgvd0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=VFmmYO7P3tc:AmY_vxAgvd0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=VFmmYO7P3tc:AmY_vxAgvd0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=VFmmYO7P3tc:AmY_vxAgvd0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=VFmmYO7P3tc:AmY_vxAgvd0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/VFmmYO7P3tc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/7822897309986964002/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=7822897309986964002&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/7822897309986964002?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/7822897309986964002?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/VFmmYO7P3tc/swfox-final-day.html" title="SWFox Final Day" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/10/swfox-final-day.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMMQX0-eyp7ImA9WxNWGU0.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-7935067070310588348</id><published>2009-10-17T22:01:00.000-06:00</published><updated>2009-10-18T17:28:00.353-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-18T17:28:00.353-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>Southwest Fox Day Two</title><content type="html">&lt;p&gt;Day two of Southwest Fox had a much lighter schedule than day one. There were only twenty nine sessions scheduled. As you can imagine attendance was down just a bit for the 8:30 am sessions but by 10 everyone was back into learning mode. The afternoon sessions were very well attended.&lt;/p&gt;  &lt;p&gt;I presented a session on Advantage Database Server right before lunch. My presentation was similar to the presentations that I have been giving at various FoxPro user groups over the past year. My presentation highlights the capabilities of the server along with demonstrations of using CloneDBC and concurrent access to the data. There were many good questions during the session and I got a lot of positive feedback about the product.&lt;/p&gt;  &lt;p&gt;One of the really fun parts of the conference is the family like atmosphere. On the final session of the day an attack was planned by Craig Boyd on Doug Hennig. All of the people attending Craig's session were issued Nerf guns and Sybase iAnywhere Nerf grenades. Craig then lead the charge into Doug's session. The fight was over quickly given that the only armed parties were from Craig's session. Although the scene was brutal, hundreds of Nerf darts were scattered around, order was quickly restored and the sessions continued. See the video here.&lt;/p&gt;  &lt;p&gt;Although there is no dinner provided on the second night of the conference many of the attendees look forward to the annual trip to &lt;a href="http://www.f1racefactory.com/drivers_lounge.php"&gt;F1 Race Factory&lt;/a&gt; here in Phoenix. There is a very intense rivalry between many of the regular speakers at the conference. It is the source of a lot of trash talk on Twitter prior to the conference and many hallway challenges during the conference. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-7935067070310588348?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=OleYE1yk-iQ:_EkIbKwN334:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=OleYE1yk-iQ:_EkIbKwN334:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=OleYE1yk-iQ:_EkIbKwN334:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=OleYE1yk-iQ:_EkIbKwN334:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=OleYE1yk-iQ:_EkIbKwN334:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=OleYE1yk-iQ:_EkIbKwN334:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=OleYE1yk-iQ:_EkIbKwN334:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/OleYE1yk-iQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/7935067070310588348/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=7935067070310588348&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/7935067070310588348?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/7935067070310588348?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/OleYE1yk-iQ/southwest-fox-day-two.html" title="Southwest Fox Day Two" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/10/southwest-fox-day-two.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIESHo7fCp7ImA9WxNWGEw.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-1907612807684442357</id><published>2009-10-16T22:29:00.000-06:00</published><updated>2009-10-17T16:11:49.404-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-17T16:11:49.404-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>SWFox Day One</title><content type="html">&lt;p&gt;Day one of Southwest Fox consisted of forty sessions that started at 8:30 am and ended at 9:30 pm. The organizers do an incredible job creating a schedule and providing lots of great content. Each session is presented twice so all the attendees have an opportunity to see all the sessions that they want to. I am impressed each year at how well everything works.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_pJ4HkzTKiOA/StpA9mIOEPI/AAAAAAAAD3A/XE8c0mVBiQ8/s1600-h/Booth_Setup%5B3%5D.jpg"&gt;&lt;img title="Booth_Setup" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 5px; border-right-width: 0px" height="184" alt="Booth_Setup" src="http://lh5.ggpht.com/_pJ4HkzTKiOA/StpA-nSMPOI/AAAAAAAAD3E/bmh3T4ItjaY/Booth_Setup_thumb%5B1%5D.jpg?imgmax=800" width="244" align="right" border="0" /&gt;&lt;/a&gt; I spent most of my day talking to the attendees at our booth in the exhibit area. Since this is our third year I have been seeing a lot of familiar faces. The FoxPro community is a very tight knit group and many of the attendees have been coming to this conference for years. It has been great chatting with people that we have met at various FoxPro User Group Meetings over the past year.&lt;/p&gt;  &lt;p&gt;I was able to break away from the booth to attend the session on Alaska Xbase++. The presentation was done by&amp;#160; , the chief architect and president of the company. Xbase++ has big plans to support the FoxPro community by adding support for the VFP language to the Xbase++ compiler. This could become another way for FoxPro developers to work with Advantage since Alaska provides a native Advantage Data Driver.&lt;/p&gt;  &lt;p&gt;Ken Levy presented a session on Advantage where he discussed the benefits of using Advantage with your FoxPro applications. Ken discussed the benefits of moving to client/server specifically using Advantage. He demonstrated the use of the bran new &lt;a href="http://blog.advantageevangelist.com/2009/10/clonedbc-available-with-advantage-oledb.html"&gt;CloneDBC&lt;/a&gt; utility to create an Advantage data dictionary. He then showed accessing the data concurrently from a simple Visual FoxPro application and a Visual Studio application.&lt;/p&gt;  &lt;p&gt;Ken also discussed some code samples which were produced by VFP Conversions. There are two samples one is a VFP9 application and the other is a C# application. The C# application uses the Advantage .NET Data provider to access the data concurrently with the native VFP application. You can download these samples using this &lt;a title="VFP Conversion Advantage Samples" href="http://www.vfpconversion.com/sybase.aspx"&gt;link&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;After the sessions we had a very nice dinner provided by the conference. During the dinner many giveaways were handed out to attendees. After dinner there was one last group of sessions for the hard core conference goers. Still one and a half days left in this year's conference. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-1907612807684442357?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=uQZLVPwfzgs:VoRS7KPzk00:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=uQZLVPwfzgs:VoRS7KPzk00:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=uQZLVPwfzgs:VoRS7KPzk00:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=uQZLVPwfzgs:VoRS7KPzk00:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=uQZLVPwfzgs:VoRS7KPzk00:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=uQZLVPwfzgs:VoRS7KPzk00:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=uQZLVPwfzgs:VoRS7KPzk00:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/uQZLVPwfzgs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/1907612807684442357/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=1907612807684442357&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/1907612807684442357?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/1907612807684442357?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/uQZLVPwfzgs/swfox-day-one.html" title="SWFox Day One" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/10/swfox-day-one.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04CSHY5eyp7ImA9WxNWF08.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-8422804568582501977</id><published>2009-10-15T22:15:00.001-06:00</published><updated>2009-10-16T15:52:49.823-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-16T15:52:49.823-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>SWFox Conference Begins</title><content type="html">&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_pJ4HkzTKiOA/StjlK9l-VLI/AAAAAAAAD24/dTcIYPWXQMA/s1600-h/SWFox_2009%5B3%5D.jpg"&gt;&lt;img title="Right before SWFox Keynote" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="244" alt="Right before SWFox Keynote" src="http://lh4.ggpht.com/_pJ4HkzTKiOA/StjlMjnZ2aI/AAAAAAAAD28/I2DK8yQDniM/SWFox_2009_thumb%5B1%5D.jpg?imgmax=800" width="184" align="right" border="0" /&gt;&lt;/a&gt; The 2009 Southwest Fox conference began with a great keynote presentation. The conference is organized by Geek Events which is a group of three Visual FoxPro MVPs; &lt;a href="http://www.swfox.net/TamarGranor.aspx"&gt;Tamar Granor&lt;/a&gt;, &lt;a href="http://www.swfox.net/DougHennig.aspx"&gt;Doug Hennig&lt;/a&gt; and &lt;a href="http://www.swfox.net/RickSchummer.aspx"&gt;Rick Schummer&lt;/a&gt;. Unlike most keynotes this one includes a bunch of personal touches. The conference statistics are discussed right up front. This year there are 88 attendees from 7 different countries, 19 speakers, 9 sponsors and only 2 additional staff people.&lt;/p&gt;  &lt;p&gt;Several awards are also presented to the community during the introductions. First off the &lt;a title="Visual FoxPro Community effort" href="http://vfpx.codeplex.com/"&gt;VFPX&lt;/a&gt; Outstanding Service award went to &lt;a href="http://weblogs.foxite.com/vfpimaging/"&gt;Cesar Chalom&lt;/a&gt; who contributes to the GDI Plus X and FoxCharts projects. Next up was the Ceil Silver Ambassador award which goes to an international member of the community and pays for them to come to the conference. This is the inaugural award and it went to Emerson Santon Reed from Brazil. Finally the award for most popular speaker for the 2008 conference, as determined by the attendee evaluations, was &lt;a href="http://www.swfox.net/CathyPountney.aspx"&gt;Cathy Pountney&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;After all the conference business the keynote speaker &lt;a href="http://blogs.msdn.com/saraford/default.aspx"&gt;Sara Ford&lt;/a&gt; from Microsoft was introduced. Sara is the project manager for &lt;a href="http://www.codeplex.com/"&gt;CodePlex&lt;/a&gt; which is Microsoft's open source community. The title of the keynote &amp;quot;Towards a Stronger Open Source Ecosystem on Codeplex.com&amp;quot;. Sara is the self-titled &amp;quot;Queen of Open Source at Microsoft&amp;quot; and she has made a lot of effort into understanding how the Open Source community works. &lt;/p&gt;  &lt;p&gt;Sara is a high energy and dynamic speaker and she covered many topics using many stories. She discussed the process of bringing more open source awareness to Microsoft which she discussed in detail in this &lt;a title="Lessons from OSCON: The Power Toys Team Learns How To Go &amp;quot;Open&amp;quot;" href="http://tinyurl.com/5qz5jy"&gt;video&lt;/a&gt;. Overall I found her discussion of open source very interesting and it is great to see that Microsoft is supporting open source development. Just as interesting though was her discussion of how the CodePlex site is developed. They use agile development processes so a release is done every three weeks. This was a big change for her since she came from the Visual Studio team which has an 18 – 24 month release cycle. The entire keynote was broadcast live over UStream and you can view the recording &lt;a title="Southwest Fox 2009 Keynote" href="http://www.ustream.tv/recorded/2360825"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Sessions begin at 8:30 on Friday and I will be attending a few of the sessions. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-8422804568582501977?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=WSeH1q3d8dU:Liu2PJ5xh8E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=WSeH1q3d8dU:Liu2PJ5xh8E:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=WSeH1q3d8dU:Liu2PJ5xh8E:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=WSeH1q3d8dU:Liu2PJ5xh8E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=WSeH1q3d8dU:Liu2PJ5xh8E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=WSeH1q3d8dU:Liu2PJ5xh8E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=WSeH1q3d8dU:Liu2PJ5xh8E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/WSeH1q3d8dU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/8422804568582501977/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=8422804568582501977&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/8422804568582501977?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/8422804568582501977?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/WSeH1q3d8dU/swfox-conference-begins.html" title="SWFox Conference Begins" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/10/swfox-conference-begins.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AGRHw-fyp7ImA9WxNWFUk.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-8126041836974112746</id><published>2009-10-14T07:00:00.000-06:00</published><updated>2009-10-14T12:42:05.257-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-14T12:42:05.257-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>Ready for SWFox</title><content type="html">&lt;p&gt;&lt;a href="http://www.swfox.net/"&gt;&lt;img title="SWFox" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="71" alt="SWFox" src="http://lh3.ggpht.com/_pJ4HkzTKiOA/StYbfErwXHI/AAAAAAAAD20/yQ60UTlLl2s/SWFox%5B4%5D.jpg?imgmax=800" width="110" align="right" border="0" /&gt;&lt;/a&gt; Southwest Fox 2009 begins Thursday night, this is my third year at the conference. I am particularly excited to see the keynote by &lt;a title="Sara Ford&amp;#39;s WebLog" href="http://blogs.msdn.com/saraford/default.aspx"&gt;Sara Ford&lt;/a&gt; from Microsoft. I am sure she will put on a good show as well as provide some good information.&lt;/p&gt;  &lt;p&gt;This year there will be two presentations on Advantage during the conference. Ken Levy will be doing a session on Friday at 3:30 PM and I will be doing a session at 11:30 on Saturday. The session descriptions are below.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Using Advantage Database Server with FoxPro – Ken Levy&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;This session is an overview with useful scenario samples of using VFP with Sybase's Advantage Database Server (Advantage), as well as the free Advantage Local Server, OLE DB Provider, ODBC Driver and .NET Data Provider. Advantage can be used with Visual FoxPro as a database system, but its unique functionality is its data dictionary wrapping and using existing DBF data. This allows .NET and other technologies to use DBF based data of VFP applications while not requiring VFP applications to be modified. Advantage will play a key role in modernizing VFP applications with DBF data into the next decade. Ken will present a series of useful scenarios of using VFP DBF data with .NET, Office, and other products and technologies by leveraging Advantage tools and products, many of which are free for both development and deployment.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Advantage Database Server Have We Met? – Chris Franz&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;As companies store more and more data the need to organize and retrieve this data becomes critical. Use of a client/server database system provides secure storage of large amounts of data while providing high performance. Advantage Database Server provides a unique client/server solution for Visual FoxPro development while making data conversion unnecessary.      &lt;br /&gt;This session will provide an overview of Advantage Database Server's key features and demonstrate those features that are unique to FoxPro. You will learn:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;How to connect to Advantage from FoxPro using remote views, cursor adapters and SQL pass-through. &lt;/li&gt;      &lt;li&gt;Concurrent access to data from a FoxPro application and an ASP.NET website &lt;/li&gt;      &lt;li&gt;Data security through restricted access and encryption &lt;/li&gt;      &lt;li&gt;Accessing very large DBF tables ( &amp;gt;2gb ) &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;I'll be doing daily posts from the conference and I may even post to &lt;a href="http://twitter.com/adsevangelist"&gt;Twitter&lt;/a&gt; as well. The FoxPro community are very avid users of twitter so you can get a real great perspective on the conference. Just take a look at what they are saying.&lt;/p&gt;  &lt;div class=" twtr-widget" id="twtr-search-widget"&gt;   &lt;div class="twtr-doc" style="width: 600px"&gt;     &lt;div class="twtr-hd"&gt;       &lt;h3&gt;What's being said about SWFox&lt;/h3&gt;        &lt;h4&gt;Southwest Fox 2009&lt;/h4&gt;        &lt;div class="twtr-spinner twtr-inactive"&gt;&lt;/div&gt;     &lt;/div&gt;      &lt;div class="twtr-bd"&gt;       &lt;div class="twtr-timeline" style="height: 300px"&gt;         &lt;div class="twtr-tweets"&gt;           &lt;div class="twtr-reference-tweet"&gt;&lt;/div&gt;            &lt;div class="twtr-tweet" id="tweet-id-15" style="filter: alpha(opacity=100); height: 53px; opacity: 1"&gt;             &lt;div class="twtr-tweet-wrap"&gt;               &lt;div class="twtr-avatar"&gt;                 &lt;div class="twtr-img"&gt;&lt;a href="http://twitter.com/kevincully"&gt;&lt;img src="http://a1.twimg.com/profile_images/334651202/kevin2009-2-tiltshift_normal.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;               &lt;/div&gt;                &lt;div class="twtr-tweet-text"&gt;                 &lt;p&gt;&lt;a class="twtr-user" href="http://twitter.com/kevincully"&gt;kevincully&lt;/a&gt; Later folks. Shutting down to head to &lt;a class="twtr-hashtag" href="http://search.twitter.com/search?q=%23SWFox"&gt;#SWFox&lt;/a&gt;. &lt;i&gt;&lt;a href="http://twitter.com/kevincully/status/4862852093"&gt;4 hours ago&lt;/a&gt; &lt;a class="twtr-reply" href="http://twitter.com/?status=@kevincully%20&amp;amp;in_reply_to_status_id=4862852093&amp;amp;in_reply_to=kevincully" target="_blank"&gt;reply&lt;/a&gt; &lt;/i&gt;&lt;/p&gt;               &lt;/div&gt;             &lt;/div&gt;           &lt;/div&gt;            &lt;div class="twtr-tweet" id="tweet-id-14" style="filter: alpha(opacity=100); height: 53px; opacity: 1"&gt;             &lt;div class="twtr-tweet-wrap"&gt;               &lt;div class="twtr-avatar"&gt;                 &lt;div class="twtr-img"&gt;&lt;a href="http://twitter.com/mroof"&gt;&lt;img src="http://a1.twimg.com/profile_images/431819758/0213081853_normal.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;               &lt;/div&gt;                &lt;div class="twtr-tweet-text"&gt;                 &lt;p&gt;&lt;a class="twtr-user" href="http://twitter.com/mroof"&gt;mroof&lt;/a&gt; Heading to the airport... See ya'll at &lt;a class="twtr-hashtag" href="http://search.twitter.com/search?q=%23swfox"&gt;#swfox&lt;/a&gt; &lt;i&gt;&lt;a href="http://twitter.com/mroof/status/4863294357"&gt;3 hours ago&lt;/a&gt; &lt;a class="twtr-reply" href="http://twitter.com/?status=@mroof%20&amp;amp;in_reply_to_status_id=4863294357&amp;amp;in_reply_to=mroof" target="_blank"&gt;reply&lt;/a&gt; &lt;/i&gt;&lt;/p&gt;               &lt;/div&gt;             &lt;/div&gt;           &lt;/div&gt;            &lt;div class="twtr-tweet" id="tweet-id-13" style="filter: alpha(opacity=100); height: 67px; opacity: 1"&gt;             &lt;div class="twtr-tweet-wrap"&gt;               &lt;div class="twtr-avatar"&gt;                 &lt;div class="twtr-img"&gt;&lt;a href="http://twitter.com/mikefeltman"&gt;&lt;img src="http://a3.twimg.com/profile_images/380738249/me_normal.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;               &lt;/div&gt;                &lt;div class="twtr-tweet-text"&gt;                 &lt;p&gt;&lt;a class="twtr-user" href="http://twitter.com/mikefeltman"&gt;mikefeltman&lt;/a&gt; Uninstalling VFP from my notebook on the day I leave for &lt;a class="twtr-hashtag" href="http://search.twitter.com/search?q=%23SWFOX"&gt;#SWFOX&lt;/a&gt; - keep your fingers crossed for me! &lt;i&gt;&lt;a href="http://twitter.com/mikefeltman/status/4863397273"&gt;3 hours ago&lt;/a&gt; &lt;a class="twtr-reply" href="http://twitter.com/?status=@mikefeltman%20&amp;amp;in_reply_to_status_id=4863397273&amp;amp;in_reply_to=mikefeltman" target="_blank"&gt;reply&lt;/a&gt; &lt;/i&gt;&lt;/p&gt;               &lt;/div&gt;             &lt;/div&gt;           &lt;/div&gt;            &lt;div class="twtr-tweet" id="tweet-id-12" style="filter: alpha(opacity=100); height: 53px; opacity: 1"&gt;             &lt;div class="twtr-tweet-wrap"&gt;               &lt;div class="twtr-avatar"&gt;                 &lt;div class="twtr-img"&gt;&lt;a href="http://twitter.com/frontier2000"&gt;&lt;img src="http://a1.twimg.com/profile_images/392961774/Cathy_Sq_normal.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;               &lt;/div&gt;                &lt;div class="twtr-tweet-text"&gt;                 &lt;p&gt;&lt;a class="twtr-user" href="http://twitter.com/frontier2000"&gt;frontier2000&lt;/a&gt; @&lt;a class="twtr-atreply" href="http://twitter.com/MikeFeltman"&gt;MikeFeltman&lt;/a&gt; /uninstalling VFP/ Check your email! &lt;a class="twtr-hashtag" href="http://search.twitter.com/search?q=%23SWFOX"&gt;#SWFOX&lt;/a&gt; &lt;i&gt;&lt;a href="http://twitter.com/frontier2000/status/4863567495"&gt;3 hours ago&lt;/a&gt; &lt;a class="twtr-reply" href="http://twitter.com/?status=@frontier2000%20&amp;amp;in_reply_to_status_id=4863567495&amp;amp;in_reply_to=frontier2000" target="_blank"&gt;reply&lt;/a&gt; &lt;/i&gt;&lt;/p&gt;               &lt;/div&gt;             &lt;/div&gt;           &lt;/div&gt;            &lt;div class="twtr-tweet" id="tweet-id-11" style="filter: alpha(opacity=100); height: 53px; opacity: 1"&gt;             &lt;div class="twtr-tweet-wrap"&gt;               &lt;div class="twtr-avatar"&gt;                 &lt;div class="twtr-img"&gt;&lt;a href="http://twitter.com/psherwood"&gt;&lt;img src="http://a1.twimg.com/profile_images/73793312/Phil_Close_normal.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;               &lt;/div&gt;                &lt;div class="twtr-tweet-text"&gt;                 &lt;p&gt;&lt;a class="twtr-user" href="http://twitter.com/psherwood"&gt;psherwood&lt;/a&gt; Trying to finish up several projects before I head out to &lt;a class="twtr-hashtag" href="http://search.twitter.com/search?q=%23swfox"&gt;#swfox&lt;/a&gt; this evening. &lt;i&gt;&lt;a href="http://twitter.com/psherwood/status/4863872124"&gt;3 hours ago&lt;/a&gt; &lt;a class="twtr-reply" href="http://twitter.com/?status=@psherwood%20&amp;amp;in_reply_to_status_id=4863872124&amp;amp;in_reply_to=psherwood" target="_blank"&gt;reply&lt;/a&gt; &lt;/i&gt;&lt;/p&gt;               &lt;/div&gt;             &lt;/div&gt;           &lt;/div&gt;            &lt;div class="twtr-tweet" id="tweet-id-10" style="filter: alpha(opacity=100); height: 67px; opacity: 1"&gt;             &lt;div class="twtr-tweet-wrap"&gt;               &lt;div class="twtr-avatar"&gt;                 &lt;div class="twtr-img"&gt;&lt;a href="http://twitter.com/visutrac"&gt;&lt;img src="http://a1.twimg.com/profile_images/95572594/Andya_normal.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;               &lt;/div&gt;                &lt;div class="twtr-tweet-text"&gt;                 &lt;p&gt;&lt;a class="twtr-user" href="http://twitter.com/visutrac"&gt;visutrac&lt;/a&gt; &lt;a class="twtr-hashtag" href="http://search.twitter.com/search?q=%23SWFox"&gt;#SWFox&lt;/a&gt; Happy Trails to all heading off to AZ for the conference ! Enjoy , it is going to be way nicer than the nearly winter weather here. &lt;i&gt;&lt;a href="http://twitter.com/visutrac/status/4864640377"&gt;2 hours ago&lt;/a&gt; &lt;a class="twtr-reply" href="http://twitter.com/?status=@visutrac%20&amp;amp;in_reply_to_status_id=4864640377&amp;amp;in_reply_to=visutrac" target="_blank"&gt;reply&lt;/a&gt; &lt;/i&gt;&lt;/p&gt;               &lt;/div&gt;             &lt;/div&gt;           &lt;/div&gt;            &lt;div class="twtr-tweet" id="tweet-id-9" style="filter: alpha(opacity=100); height: 67px; opacity: 1"&gt;             &lt;div class="twtr-tweet-wrap"&gt;               &lt;div class="twtr-avatar"&gt;                 &lt;div class="twtr-img"&gt;&lt;a href="http://twitter.com/dfapam"&gt;&lt;img src="http://a3.twimg.com/profile_images/469715993/alien_normal.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;               &lt;/div&gt;                &lt;div class="twtr-tweet-text"&gt;                 &lt;p&gt;&lt;a class="twtr-user" href="http://twitter.com/dfapam"&gt;dfapam&lt;/a&gt; Something must be wrong. All packed but the airport shuttle isn't due to pick me up for another hour. &lt;a class="twtr-hashtag" href="http://search.twitter.com/search?q=%23SWFox"&gt;#SWFox&lt;/a&gt; &lt;i&gt;&lt;a href="http://twitter.com/dfapam/status/4865014083"&gt;2 hours ago&lt;/a&gt; &lt;a class="twtr-reply" href="http://twitter.com/?status=@dfapam%20&amp;amp;in_reply_to_status_id=4865014083&amp;amp;in_reply_to=dfapam" target="_blank"&gt;reply&lt;/a&gt; &lt;/i&gt;&lt;/p&gt;               &lt;/div&gt;             &lt;/div&gt;           &lt;/div&gt; &lt;!-- tweets show here --&gt;&lt;/div&gt;       &lt;/div&gt;     &lt;/div&gt;      &lt;div class="twtr-ft"&gt;       &lt;div&gt;&lt;a href="http://twitter.com/"&gt;&lt;img height="15" src="http://widgets.twimg.com/j/1/twitter_logo_s.gif" /&gt;&lt;/a&gt; &lt;span&gt;&lt;a class="twtr-join-conv" style="color: #ffffff" href="http://twitter.com/#search?q=-RT%20swfox"&gt;Join the conversation&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;     &lt;/div&gt;   &lt;/div&gt; &lt;/div&gt; &lt;script src="http://widgets.twimg.com/j/1/widget.js"&gt;&lt;/script&gt;&lt;link href="http://widgets.twimg.com/j/1/widget.css" type="text/css" rel="stylesheet" /&gt;&lt;script&gt;
new TWTR.Widget({
  search: 'swfox',
  id: 'twtr-search-widget',
  loop: true,
  title: 'What\'s being said about SWFox',
  subject: 'Southwest Fox 2009',
  width: 600,
  height: 300,
  theme: {
    shell: {
      background: '#3082af',
      color: '#ffffff'
    },
    tweets: {
      background: '#ffffff',
      color: '#444444',
      links: '#1985b5'
    }
  }
}).render().start();
&lt;/script&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-8126041836974112746?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=plBJ9GkJkQo:CLSWdjrldG4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=plBJ9GkJkQo:CLSWdjrldG4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=plBJ9GkJkQo:CLSWdjrldG4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=plBJ9GkJkQo:CLSWdjrldG4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=plBJ9GkJkQo:CLSWdjrldG4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=plBJ9GkJkQo:CLSWdjrldG4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=plBJ9GkJkQo:CLSWdjrldG4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/plBJ9GkJkQo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/8126041836974112746/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=8126041836974112746&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/8126041836974112746?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/8126041836974112746?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/plBJ9GkJkQo/ready-for-swfox.html" title="Ready for SWFox" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/10/ready-for-swfox.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIGQHw7eyp7ImA9WxNbEE4.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-3907219724342650511</id><published>2009-10-12T08:00:00.000-06:00</published><updated>2009-11-12T08:08:41.203-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-12T08:08:41.203-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Books" /><title>Book Review – A Guide to the SQL Standard</title><content type="html">&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_pJ4HkzTKiOA/Svwk9Oo32CI/AAAAAAAAD3Q/kxDgkdWcDt4/s1600-h/SQLStandardDate4.jpg"&gt;&lt;img style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 5px; border-right-width: 0px" height="160" src="http://lh6.ggpht.com/_pJ4HkzTKiOA/Svwk9w3GIPI/AAAAAAAAD3U/kIBCvfnc1bc/SQLStandardDate_thumb2.jpg?imgmax=800" width="110" align="right" border="0" /&gt;&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=viewfromanadv-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0201964260" width="1" border="0" /&gt;This will be a different type of review than I normally do, because this book is more of a reference guide rather than a book you would read cover to cover. A Guide to the SQL Standard Fourth Edition by C.J. Date with Hugh Darwen is an in-depth examination of the SQL standard. It breaks down nearly every aspect of the standard with good examples.&lt;/p&gt;  &lt;p&gt;I have used this book frequently as a reference or when I need more information about a particular aspect of SQL. The book is divided into five sections; Introduction, Some Preliminaries, Data Definition and Manipulation, Data Control and Advanced Topics. &lt;/p&gt;  &lt;p&gt;The introduction is a very good summary of SQL and it covers many of the features of the SQL language. For anyone new to SQL chapter 2 is a must read, it is also a good review for any SQL veteran. This chapter paints the entire picture of the overall functionality of the SQL standard.&lt;/p&gt;  &lt;p&gt;The preliminaries section is a pure reference section in my opinion. It provides lists of key words, operators and basic SQL concepts like schemas and transactions. This is a good section to refer to when you need to verify a keyword or look up a basic operator.&lt;/p&gt;  &lt;p&gt;The data definition and manipulation section is the real heart of the book. This section contains seven chapters which cover many aspects of working with data using SQL statements. In particular chapter 10, Data Manipulation: Cursor Operations includes several examples on working with a set of data in an SQL script. Chapter 11, Table Expressions, provides an in depth discussion of table joins. This section is very useful in demonstrating techniques for retrieving data from a highly normalized relational database. Chapter 12, Conditional Expressions, provides a tremendous amount of useful information about filtering data. &lt;/p&gt;  &lt;p&gt;The data control section provides discussions on data integrity and data security. The integrity section provides useful information about using constraints as well as referential integrity. The data security chapter covers information about the different types of operations which can be defined for database objects. This chapter includes information on the GRANT and REVOKE statements.&lt;/p&gt;  &lt;p&gt;The advanced topics section contains detailed information about various topics. I found chapter 16, Missing Information and Nulls, to be very interesting. It is very valuable to understand what a NULL really means and the authors do a very good job demonstrating the impact of NULLs. Other chapters go more in depth about data types such as date and time values as well as character data.&lt;/p&gt;  &lt;p&gt;The bottom line: this is a very good reference book. It provides a detailed look at the SQL standard which will give you a broader understanding of how SQL should be implemented. Keep in mind that not all database servers implement all aspects of the standard. If you are looking for a book that teaches you how to write SQL statements to retrieve your data there are better books. However, if you are looking for a better understanding of the SQL language this provides the in-depth view of how it works.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-3907219724342650511?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=73jX8Akh6iI:3dQirB5uItw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=73jX8Akh6iI:3dQirB5uItw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=73jX8Akh6iI:3dQirB5uItw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=73jX8Akh6iI:3dQirB5uItw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=73jX8Akh6iI:3dQirB5uItw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=73jX8Akh6iI:3dQirB5uItw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=73jX8Akh6iI:3dQirB5uItw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/73jX8Akh6iI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/3907219724342650511/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=3907219724342650511&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/3907219724342650511?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/3907219724342650511?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/73jX8Akh6iI/book-review-guide-to-sql-standard.html" title="Book Review – A Guide to the SQL Standard" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/10/book-review-guide-to-sql-standard.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMMRXk_cCp7ImA9WxNWEU8.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-7495679515153732945</id><published>2009-10-09T16:48:00.001-06:00</published><updated>2009-10-09T16:48:04.748-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-09T16:48:04.748-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Screencasts" /><title>CloneDBC Screencast</title><content type="html">&lt;p&gt;&lt;a title="Screencast - Using the CloneDBC Utility" href="http://devzone.advantagedatabase.com/dz/Screencasts/CloneDBC/ShowMovie.html"&gt;&lt;img title="Using the CloneDBC utility" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="182" alt="Using the CloneDBC utility" src="http://lh4.ggpht.com/_pJ4HkzTKiOA/Ss-9pPqgaiI/AAAAAAAAD2w/J46XaM-JGE4/CloneDBC_Screencast%5B9%5D.jpg?imgmax=800" width="242" align="right" border="0" /&gt;&lt;/a&gt; A new utility named &lt;a title="CloneDBC Available with Advantage OLE DB Update" href="http://blog.advantageevangelist.com/2009/10/clonedbc-available-with-advantage-oledb.html"&gt;CloneDBC&lt;/a&gt; is included with the latest Advantage OLE DB Provider (version 9.1.0.16) which replaces the DBCConvert.prg which was included in previous versions. The CloneDBC utility creates an Advantage Data Dictionary which contains references to the same tables as a FoxPro Database Container. This makes it easier for developers working with FoxPro data to access it through Advantage.&lt;/p&gt;  &lt;p&gt;This short screencast, about 7.5 minutes, highlights the features and limitations of the utility. It also walks through the conversion of a sample DBC. You can get more information about CloneDBC in this &lt;a title="OLE DB Provider Update (9.10.0.16) / CloneDBC Utility Now Available" href="http://devzone.advantagedatabase.com/dz/content.aspx?key=44&amp;amp;id=1f39764e-6def-2a4c-a841-6eb728f0b1d5"&gt;announcement&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-7495679515153732945?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=kCO7YWBFEJk:GBnAeOFemuY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=kCO7YWBFEJk:GBnAeOFemuY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=kCO7YWBFEJk:GBnAeOFemuY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=kCO7YWBFEJk:GBnAeOFemuY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=kCO7YWBFEJk:GBnAeOFemuY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=kCO7YWBFEJk:GBnAeOFemuY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=kCO7YWBFEJk:GBnAeOFemuY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/kCO7YWBFEJk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/7495679515153732945/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=7495679515153732945&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/7495679515153732945?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/7495679515153732945?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/kCO7YWBFEJk/clonedbc-screencast.html" title="CloneDBC Screencast" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/10/clonedbc-screencast.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cEQXs4fSp7ImA9WxNWEE4.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-7084198371699784177</id><published>2009-10-07T07:00:00.000-06:00</published><updated>2009-10-08T15:56:40.535-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-08T15:56:40.535-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="FoxPro" /><title>Translating DBC Views to Advantage</title><content type="html">&lt;p&gt;You can use the CloneDBC to create an Advantage Data Dictionary (ADD) from an existing FoxPro Database Container (DBC). This tool adds the tables, views and referential integrity rules to the ADD based on the information in the DBC. However, FoxPro allows several things within their views which are not allowed by Advantage.&lt;/p&gt;  &lt;p&gt;One of the most notable is the ability to order a view. Using an ORDER BY clause in a view is prohibited by the SQL standard and could result in poor performance. For example if you are using a view in another SQL statement that is ordered the server would have to order the data twice. The view would be ordered then the resulting join would be ordered.&lt;/p&gt;  &lt;p&gt;The CloneDBC utility has an option to remove the ORDER BY clause from all the views that it copies from the DBC. I highly recommend using this option and then ordering your views within your application.&lt;/p&gt;  &lt;p&gt;Another issue I ran into when cloning the Northwind sample database was the join order. The FoxPro view designer uses &amp;lt;prev join&amp;gt; when listing some of the joins that are used by the view. I found that this syntax sometimes does not translate well into Advantage. You may get errors stating that certain tables were not found. You can resolve this issue by removing and adding the joins again using your primary table as the first join. Below are two versions of the PRODUCT_SALES_FOR_1997 view. The top image shows the original view definition which gave me an &amp;quot;Table or alias not found : OrderDetails…&amp;quot; error.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_pJ4HkzTKiOA/Ss5gCOrFDTI/AAAAAAAAD2g/odNFFxlMtOY/s1600-h/FoxPro_ViewProblem1%5B4%5D.jpg"&gt;&lt;img title="FoxPro_ViewProblem1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="428" alt="FoxPro_ViewProblem1" src="http://lh6.ggpht.com/_pJ4HkzTKiOA/Ss5gDe6uEKI/AAAAAAAAD2k/xUitsrvYLp8/FoxPro_ViewProblem1_thumb%5B2%5D.jpg?imgmax=800" width="398" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In this case I deleted all of the joins and re-created them starting with the Orders to OrderDetails join. This did not change the results of the view but it did allow the view to be added to the ADD file correctly.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh3.ggpht.com/_pJ4HkzTKiOA/Ss5gEf9DVZI/AAAAAAAAD2o/fTGHMDFR49U/s1600-h/FoxPro_ViewSolution1%5B4%5D.jpg"&gt;&lt;img title="FoxPro_ViewSolution1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="424" alt="FoxPro_ViewSolution1" src="http://lh5.ggpht.com/_pJ4HkzTKiOA/Ss5gFvz4xAI/AAAAAAAAD2s/V1P3GEzNJSk/FoxPro_ViewSolution1_thumb%5B2%5D.jpg?imgmax=800" width="399" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Another issue with cloning is support for various FoxPro functions. If you are using functions in your View I recommend checking the &lt;a title="Advantage SQL Engine - Supported Scalar Functions" href="http://devzone.advantagedatabase.com/dz/webhelp/Advantage9.1/advantage_sql/supported_sql_grammar/supported_scalar_functions.htm"&gt;Supported Scalar Functions&lt;/a&gt; before cloning the DBC. Some of the functions I had to replace were ALLTRIM and NVL. The Advantage SQL Engine does not support ALLTRIM, however, it does support TRIM which provides the same functionality. The NVL command can be replaced with ISNULL which is supported in both FoxPro and Advantage.&lt;/p&gt;  &lt;p&gt;Finally be aware of &lt;a title="Advantage SQL Engine - Reserved Keywords" href="http://devzone.advantagedatabase.com/dz/webhelp/Advantage9.1/advantage_sql/supported_sql_grammar/reserved_keywords.htm"&gt;reserved keywords&lt;/a&gt; that may be used as column names or alias names. Use of these words will produce SQL syntax errors. The following example is the SQL Code for the SUMMARY_OF_SALES_BY_YEAR view.&lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #008000"&gt;-- Original view statement year cannot be used as an alias without a delimiter&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #0000ff"&gt;YEAR&lt;/span&gt;(Orders.shippeddate) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; &lt;span style="color: #0000ff"&gt;year&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;SUM&lt;/span&gt;(Order_subtotals.subtotal) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; total &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt; &lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt;  Orders  &lt;span style="color: #0000ff"&gt;INNER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;JOIN&lt;/span&gt; Order_Subtotals &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt; &lt;span style="color: #0000ff"&gt;ON&lt;/span&gt;  Orders.orderid = Order_subtotals.orderid &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;WHERE&lt;/span&gt;  Orders.shippeddate &lt;span style="color: #0000ff"&gt;IS&lt;/span&gt; &lt;span style="color: #0000ff"&gt;NOT&lt;/span&gt; &lt;span style="color: #0000ff"&gt;NULL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;GROUP&lt;/span&gt; &lt;span style="color: #0000ff"&gt;BY&lt;/span&gt; 1, 2&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&amp;#160;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #008000"&gt;-- Corrected view statement with year delimited with double quotes&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #0000ff"&gt;YEAR&lt;/span&gt;(Orders.shippeddate) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; &lt;span style="color: #ff0000"&gt;&amp;quot;year&amp;quot;&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;SUM&lt;/span&gt;(Order_subtotals.subtotal) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; total &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt; &lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt;  Orders  &lt;span style="color: #0000ff"&gt;INNER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;JOIN&lt;/span&gt; Order_Subtotals &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt; &lt;span style="color: #0000ff"&gt;ON&lt;/span&gt;  Orders.orderid = Order_subtotals.orderid &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;WHERE&lt;/span&gt;  Orders.shippeddate &lt;span style="color: #0000ff"&gt;IS&lt;/span&gt; &lt;span style="color: #0000ff"&gt;NOT&lt;/span&gt; &lt;span style="color: #0000ff"&gt;NULL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;GROUP&lt;/span&gt; &lt;span style="color: #0000ff"&gt;BY&lt;/span&gt; 1, 2&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;When cloning your DBC pay close attention to any reported errors after the conversion. Many times you can make a few simple changes to get the same functionality with Advantage.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-7084198371699784177?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=JAtI5mP_zjQ:KKYuJ6MwT8A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=JAtI5mP_zjQ:KKYuJ6MwT8A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=JAtI5mP_zjQ:KKYuJ6MwT8A:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=JAtI5mP_zjQ:KKYuJ6MwT8A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=JAtI5mP_zjQ:KKYuJ6MwT8A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=JAtI5mP_zjQ:KKYuJ6MwT8A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=JAtI5mP_zjQ:KKYuJ6MwT8A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/JAtI5mP_zjQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/7084198371699784177/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=7084198371699784177&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/7084198371699784177?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/7084198371699784177?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/JAtI5mP_zjQ/translating-dbc-views-to-advantage.html" title="Translating DBC Views to Advantage" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/10/translating-dbc-views-to-advantage.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUDRHszeip7ImA9WxNWEE4.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-1858449707382994931</id><published>2009-10-05T07:00:00.001-06:00</published><updated>2009-10-08T14:37:55.582-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-08T14:37:55.582-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="FoxPro" /><title>CloneDBC Available with Advantage OLEDB Update</title><content type="html">&lt;p&gt;With the release of Advantage 9 we added native support for the VFP 9 data types. Unfortunately we could not add support for the FoxPro database container (dbc). However, our Advantage data dictionary (ADD) provides the same functionality. With the initial release we included a program called DBCConvert which read the DBC and created an ADD which contained all the compatible features. The ADD could then be used to access the DBF data with an Advantage enabled application.&lt;/p&gt;  &lt;p&gt;With the latest update of the Advantage OLEDB provider we have replaced the DBCConvert program with a new utility called CloneDBC, read the announcement &lt;a title="OLE DB Provider Update (9.10.0.16) / CloneDBC Utility now available" href="http://devzone.advantagedatabase.com/dz/content.aspx?key=44&amp;amp;id=1f39764e-6def-2a4c-a841-6eb728f0b1d5"&gt;here&lt;/a&gt;. This is a VFP application which simplifies the process of creating an ADD that points to the same data as an existing DBC. The utility includes a graphical interface which allows users to browse for a DBC to convert. The new utility has also been enhanced enabling it to copy more objects from the DBC than before.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_pJ4HkzTKiOA/Ss5Mr0ACeNI/AAAAAAAAD2Y/N6wVLK5B5gI/s1600-h/CloneDBC%5B5%5D.jpg"&gt;&lt;img title="CloneDBC" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="215" alt="CloneDBC" src="http://lh3.ggpht.com/_pJ4HkzTKiOA/Ss5MsRiTA_I/AAAAAAAAD2c/aTlQmf72zsw/CloneDBC_thumb%5B3%5D.jpg?imgmax=800" width="400" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The chart below highlights the differences between the original utility and the new utility.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="5" width="600" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;th valign="top" width="300"&gt;DBCConvert.prg&lt;/th&gt;        &lt;th valign="top" width="300"&gt;CloneDBC.app&lt;/th&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;FoxPro program code, reads the DBC currently open in FoxPro&lt;/td&gt;        &lt;td valign="top" width="300"&gt;GUI based application allows for selection of DBC&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;Does not convert views with &amp;quot;ORDER BY&amp;quot; clause&lt;/td&gt;        &lt;td valign="top" width="300"&gt;Option to strip ORDER BY from views&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;Cannot create referential integrity rules if NOT DELETED() is not specified keys in the relation&lt;/td&gt;        &lt;td valign="top" width="300"&gt;Option to add NOT DELETED() to keys in relations&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;It is important to note that neither of these utilities make any changes to the DBC file or the tables. The utility simply reads the DBC and creates an ADD that contains all of the compatible objects. The new ADD will contain references to all the tables, views and referential integrity rules. We can not currently convert triggers or stored procedures.&lt;/p&gt;  &lt;p&gt;You can download the latest version of the Advantage OLE DB provider from the &lt;a title="Advantage OLE DB Provider Release 9.1" href="http://devzone.advantagedatabase.com/dz/content.aspx?key=20&amp;amp;Release=13&amp;amp;Product=15&amp;amp;Platform=6"&gt;Advantage Developer Zone&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-1858449707382994931?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=Xtt88tUgr1U:guognPps2sk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=Xtt88tUgr1U:guognPps2sk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=Xtt88tUgr1U:guognPps2sk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=Xtt88tUgr1U:guognPps2sk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=Xtt88tUgr1U:guognPps2sk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=Xtt88tUgr1U:guognPps2sk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=Xtt88tUgr1U:guognPps2sk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/Xtt88tUgr1U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/1858449707382994931/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=1858449707382994931&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/1858449707382994931?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/1858449707382994931?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/Xtt88tUgr1U/clonedbc-available-with-advantage-oledb.html" title="CloneDBC Available with Advantage OLEDB Update" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/10/clonedbc-available-with-advantage-oledb.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMER3ozcCp7ImA9WxNXFEU.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-7315044945440595115</id><published>2009-10-02T07:00:00.000-06:00</published><updated>2009-10-02T07:00:06.488-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-02T07:00:06.488-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="FAQ" /><title>FAQs – September 2009</title><content type="html">&lt;h3&gt;Local Server on a 64-bit OS&lt;/h3&gt;  &lt;p&gt;Although we introduced a 64-bit version of Advantage with version 9.0 it is only the Client-Server (Remote) Server version. The Advantage Local Server (ALS) is only available as a 32-bit version. Any application that will use ALS must be compiled as a 32-bit application. When using Visual Studio make sure you set the target platform to x86 to ensure that your application will be compiled as 32-bit.&lt;/p&gt;  &lt;h3&gt;Working with Backup Sets&lt;/h3&gt;  &lt;p&gt;Advantage online backup allows users to create a backup of their database or free tables while the tables are in use. You can then further protect the data by making a backup of this backup with your normal backup software or procedures. &lt;/p&gt;  &lt;p&gt;Any backup created using online backup must be restored prior to using it. The restore process copies the tables back to the specified location and verifies their integrity. It also rebuilds all of the indexes to ensure they are up to date. Attempting to open the backed up tables directly will result in errors.&lt;/p&gt;  &lt;p&gt;You can restore a backup using sp_RestoreDatbase, sp_RestoreFreeTables or the adsbackup utility with the –r option. &lt;/p&gt;  &lt;h3&gt;Error 75 on Entity Framework Model&lt;/h3&gt;  &lt;p&gt;You may receive an error when generating an ADO.NET Data Model if your primary key fields are allowed to be NULL. The error may look like the following.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Error 75: Key Part: 'Employee_Number' for the type EMPLOYEE is not valid. All parts of the key must be non nullable.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;All of the fields used in primary keys or as foreign keys must be set to be non nullable. The Null Valid property for all of these fields must be set to NO.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img title="Null Valid Option" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="415" alt="Null Valid Option" src="http://lh4.ggpht.com/_pJ4HkzTKiOA/SsJcw2ROKFI/AAAAAAAAD2I/0_-pX5g7dJ0/ARC_NullValid%5B13%5D.jpg?imgmax=800" width="397" border="0" /&gt; &lt;/p&gt;  &lt;h3&gt;Using the Entity Framework with Prism&lt;/h3&gt;  &lt;p&gt;Delphi Prism does not currently support the entity framework model wizard. There is no code generation for the oxygene language available for the wizard to utilize. You can manually map your tables, views and stored procedures into a model and write the code yourself. You could also generate the model using C# and access it from your Prism project.&lt;/p&gt;  &lt;p&gt;There is some additional information about using Prism with the entity framework on &lt;a title="Stack Overflow - Delphi Prism and LINQ to SQL / Entity Framework" href="http://stackoverflow.com/questions/362749/delphi-prism-and-linq-to-sql-entity-framework"&gt;Stack Overflow&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-7315044945440595115?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=zZckN3Yvmds:OR_wvd-VvU4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=zZckN3Yvmds:OR_wvd-VvU4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=zZckN3Yvmds:OR_wvd-VvU4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=zZckN3Yvmds:OR_wvd-VvU4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=zZckN3Yvmds:OR_wvd-VvU4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=zZckN3Yvmds:OR_wvd-VvU4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=zZckN3Yvmds:OR_wvd-VvU4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/zZckN3Yvmds" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/7315044945440595115/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=7315044945440595115&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/7315044945440595115?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/7315044945440595115?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/zZckN3Yvmds/faqs-september-2009.html" title="FAQs – September 2009" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/10/faqs-september-2009.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYERX06eCp7ImA9WxNXE04.&quot;"><id>tag:blogger.com,1999:blog-6658257106003248170.post-1770436977204612875</id><published>2009-09-30T07:00:00.000-06:00</published><updated>2009-09-30T11:51:44.310-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T11:51:44.310-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Announcements" /><title>Delphi 2010 Support</title><content type="html">&lt;p&gt;Embarcadero released &lt;a title="Embarcadero press release" href="http://etnaweb04.embarcadero.com/news/press_releases/Delphi_2010_with_Touch_and_Major_Upgrades_to_RAD_Studio_Product_Family.php"&gt;Delphi 2010&lt;/a&gt; in late August. In keeping with our commitment to supporting the latest version of Delphi we have updated the Advantage Delphi Components to support Delphi 2010.&lt;/p&gt;  &lt;p&gt;Both version 8.1 and 9.1 have been updated. You can download the updated components on the &lt;a title="Advantage Developer Zone" href="http://devzone.advantagedatabase.com/dz/content.aspx?Key=1"&gt;Advantage Developer Zone&lt;/a&gt;. The latest versions are 8.1.0.46 and 9.1.0.15.&lt;/p&gt;  &lt;p&gt;For the latest Advantage updates subscribe to the Advantage Announcements &lt;a href="http://devzone.advantagedatabase.com/adsannouncements.xml"&gt;feed&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6658257106003248170-1770436977204612875?l=blog.advantageevangelist.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=ORyodHP8A7o:JcpkFogPZfE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=ORyodHP8A7o:JcpkFogPZfE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=ORyodHP8A7o:JcpkFogPZfE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=ORyodHP8A7o:JcpkFogPZfE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=ORyodHP8A7o:JcpkFogPZfE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?a=ORyodHP8A7o:JcpkFogPZfE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ViewsFromAnAdvantageEvangelist?i=ORyodHP8A7o:JcpkFogPZfE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ViewsFromAnAdvantageEvangelist/~4/ORyodHP8A7o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.advantageevangelist.com/feeds/1770436977204612875/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=6658257106003248170&amp;postID=1770436977204612875&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/1770436977204612875?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6658257106003248170/posts/default/1770436977204612875?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ViewsFromAnAdvantageEvangelist/~3/ORyodHP8A7o/delphi-2010-support.html" title="Delphi 2010 Support" /><author><name>Chris</name><uri>http://www.blogger.com/profile/09097498077009855123</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03929810096958434633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.advantageevangelist.com/2009/09/delphi-2010-support.html</feedburner:origLink></entry></feed>
