Monday, May 7, 2012

xSQL Comparison Bundle – new build available

A new build of xSQL Comparison bundle containing a few minor fixes is available for download: http://www.xsql.com/download/package.aspx?packageid=10
Issues addressed by this build include:
  1. Schema Compare tool (xSQL Object)  - fixes an issue with check constraints that depend on user-defined functions. Symptom:  database schema comparison fails with the error “Failed to generate check constraints synchronization script. Object reference not set to an instance of an object”; 
  2. Schema Compare tool (xSQL Object)  - fixes an issue with default constraints that depend on user-defined functions. Symptom: database schema comparison fails with the error “Failed to generate check constraints synchronization script. Object reference not set to an instance of an object”;
  3. SQL Data Compare tool - fixes a problem that occurs when the first column of the chosen data comparison key is created as a descending column. Symptom: SQL Data Compare tool fails to identify the rows that exist in both tables being compared. 
  4. SQL Data Compare tool - fixes a problem with the data candidate index defined on columns that allow NULL values. Symptom: Data Compare prepares update queries with where clause as “and fieldname = null” in cases when the key used includes a nullable column.

Thursday, April 19, 2012

Today's free product code

Today's free license code will appear on one of the product pages at 12 noon (valid for that product only). As explained in the email the code will appear at the end of the product description at the top of the product page.  Time zone: (UTC-05:00) Eastern Time (US & Canada)

Wednesday, April 18, 2012

My database is a jungle, I need an intelligent search engine

Thousands of stored procedures and no good way to find the one you are looking for, so what do you do? You write your own stored procedure thus, not only wasting valuable hours but also contributing into increasing the “density of the jungle” making it even harder to find anything in the future. Multiply this by 260 days a year and 10 other people like you and you get the picture. My guess is that if one would do a complete inventory of the stored procedures in a database would likely find a lot of repetition – multiple stored procedures created by different people at different times doing exactly the same thing.

What if a google type search engine could take queries like “get all north-west region customers that purchased product  x during a given period of time”, search through the database schema and return all the stored procedures that potentially answer this query as well as the list of tables that would potentially be involved in answering such query? That would be beautiful, wouldn’t it?

However, the search engine would need some help to be able to do this. Adding extended properties was a great step in the right directions - at least someone that is diligent enough has a way to tag the objects with keywords and phrases that can later be used to efficiently locate those objects.  I would argue that it would be beneficial if there were at least two predefined mandatory extended properties: “description” and “keywords”. I know that many DBAs and developers might find such enforcement a bit annoying but in the long run I think most of them will be thankful.

Related products/tools:

SSMS - lets you filter objects based on the name, schema, owner and creation date but it does not provide for filtering based on the extended properties or the definition of the object. However, you can always query the system tables - not ideal but better than nothing.

xSQL Documenter:  will document the extended properties and the object definitions so you can technically go into the documentation and search for an object.  The drawback is that the documentation becomes outdated soon after it is generated. Of course you can refresh it but that means more time.

Object Search:  a free tool that allows you to search in the definition of the object using a regular expression as the matching criteria. Current version does not look into the extended properties.

Monday, March 26, 2012

10 days, 10 free Oracle Data Compare licenses each day

Starting today (March 26, 2012) we will be giving away 10 Oracle Data Compare licenses (a $349 value) for free, every day for 10 days. The promo code ODC10DAYS will be active for a few minutes each day. The starting time and the estimated time interval will be announced at least 2 hours in advance on twitter (www.twitter.com/xsqlsoftware) and facebook (www.facebook.com/xsqlsoftware) every day. Once the first 10 licenses are claimed the promo code will be de-activated and you will have to wait until the following day to get your free license.

In all, during the next 1o days we will give away 100 Oracle Data Compare licenses or $34,900 in free software.

Thursday, March 22, 2012

xSQL Builder – the tool for software publishers

If you publish software that uses SQL Server on the backend then you are familiar with the pain of upgrading your clients from one version of your software to another. Some of the most common challenges you face include:
  • The customers don't know and they don’t want to know anything about SQL Server or t-sql so sending them a set of scripts to execute on the target server is not going to help;
  • Different customers may be on different versions of your software so you need to provide multiple upgrade paths;
  • You may have customized your solution for certain clients so the "standard" upgrade won't work for those cases;
  • You do not have direct access to the customers' databases;
  • You have hundreds of customers you need to distribute your software to.
Those were the challenges we set out to tackle when we decided to build the xSQL Builder. Here is how xSQL Builder works:
  1. A simple wizard guides you through a few steps that lead to the creation of an executable package that contains all the necessary information required to upgrade your customers’ databases. 
  2. When the customers executes the package the following happens:
    1. If applicable, a set of pre-synchronization scripts is executed against the target database;
    2. The schema of the target database is compared with the schema of the master database which has been embedded in the executable package;
    3. Synchronization script is generated and executed against the target;
    4. If applicable, a set of post-synchronization scripts  is executed against the target;
    5. A detailed log is emailed back to you so that you know exactly what happened at the customer's site.
The beauty of this is that the deployment package "does not care" what version of your database the customer is on.
 
Of course the wizard is quick and easy but what if you need to tweak something that the wizard does not provide for? We thought of that too – xSQL Builder comes with a set of customizable C# templates (C# classes) that contain the compare and synchronization code that runs on the client machine. xSQL Builder ships with a VS.NET 2005 C# project that you can run or modify as needed.
 
Download now and see for yourself what you have been missing all this time!

Monday, March 19, 2012

Paypal payment solutions - need improvement

Since Paypal (it’s parent eBay at the time) acquired Verisign’s payment gateway in 2005 we have been a Paypal customer and aside from a complete screw up a couple of years ago that left us without service for 3 days everything has gone smoothly. However, the experience of a few days ago when we decided to switch from payflow link to payflow pro prompted me to write this quick review.
Just to be fair let me say that the service we received from paypal tech support this time was outstanding, the reps we spoke with were knowledgeable and courteous, so Paypal is doing something right. However, as is often the case, satisfaction does not often motivate one to write about it, it is the unpleasant part that provides that motivation. So, here are my grudges:
  1. Since the acquisition of Verisign's gateway services Paypal has made no improvements whatsoever on the payflow link solution, which is what we were using. It was embarrassing to “hand the customer over” to paypal to finalize the payment – the customer was presented with an ugly form (the branding/customization capabilities were a joke) and an un-necessary two step process that left the customers with an un-easy feeling. I think Paypal should either put some serious effort on improving the solution or drop it altogether, it is just not serious to keep it the way it is right now. 
  2. We made the switch to Payflow Pro, or so we thought. A call to Paypal tech support helped us realize that the developer that worked on this instead of implementing Payflow Pro had implemented Website Payments Pro Payflow Edition! How did that happen? The answer is not hard to guess:
    1. Confusing solution names make it hard to tell which one is which
    2. Confusing documentation makes it even harder to distinguish one solution from the other;
  3. Lastly, while implementing all three solutions (we had Payflow Link, mistakenly implemented Website Payments Pro, and finally Payflow Pro) we were surprised by the inconsistent implementation on the paypal side, three solutions – three different sets of parameters even though we are passing basically the same set of data.
Of course we understand that Paypal has every incentive to push vendors like us away from those inherited “gateway only” solutions towards their “full service” solutions but frustrating vendors is not the way to do it.

Monday, March 12, 2012

xsqlsoftware.com is now xsql.com

We are very excited to announce that as of March 10, 2012 the primary domain for xSQL Software is http://www.xsql.com  Here are a few housekeeping items:
  • Email addresses: all email addresses have been changed to the new domain so sales@xsqlsoftware.com is now sales@xsql.com and so on. The old addresses have been forwarded to the corresponding new addresses. 
  • License activation: if you have an older build of any of our tools and you have acquired a license you might not be able to activate the license as the license activation services that were running under the xsqlsoftware.com are no longer available. In such case you can either download a new build of the tool or generate a license request file and email it to us (instructions are provided on the license activation window).
  • Links to our site: if you have linked to our website from your blog or your site we would be grateful if you would make the effort of updating the url with the new domain. The old url should work fine too but it would be very helpful to us if you did update the url.
Chronology for the curious: when we launched our first web site in 2004 our desire was to get the xsql.com domain but unfortunately we were not able to secure it then so we decided to go instead with x-sql.com. In 2007 after a complete revamp of our site and our key tools we decided that we did not like the dash in the url anymore and thought that it was better to have a longer url without dashes than a short one with dashes. Hence, our main domain became xsqlsoftware.com. Now, 8 years later we have what we wanted in the first place – the easy to remember, easy to type, elegant url: http://www.xsql.com. And yes, this is the end of our quest for the perfect domain - no more changes.
If you have any questions or concerns don't hesitate to contact us and don't forget to check out our tools: http://www.xsql.com/download/

Wednesday, March 7, 2012

RSS Reporter fails to install on machine with IIS 7

Installation of RSS Reporter V3 may fail with a generic message: “The installer was interrupted before RSS Reporter could be installed. You need to restart the installer and try again.” But, as you can easily guess, restarting the installer is not going to do any good. If you check the event viewer you will see an MsiInstaller event 1033 that misleadingly states that “Windows Installer installed the product…Installation success or error status: 1603”.

The cause of the problem is a missing IIS component (Metabase) that by default is not installed in IIS7 but, the Visual Studio installer that we use for RSS Reporter requires it. In  IIS7 this feature can be found in setup under Internet Information Services->Web Management Tools -> IIS 6.0 Management Capability Feature. Check the “IIS MEtabase and IIS6 configuration compatibility”.

Once the installation of the metabase component is finished re-run the RSS Reporter installation package and it should install successfully.
RSS Reporter is a simple tool that generates standard rss feeds from SQL Server. Predefined SQL job feeds allow you to monitor SQL jobs on multiple servers from a single rss feed. Ad-hoc query feeds allow you to generate rss feeds containing the data that the query returns.

RSS Reporter is free for a single SQL Server instance and very inexpensive for multiple SQL Server instances. You can download your copy here.

Tuesday, March 6, 2012

Lookup table changes

Whenever you publish a new version of your application chances are that in addition of the database schema changes you also need to publish changes you have made on your lookup tables. xSQL Object makes the publishing of the schema changes a breeze but how about the values on those lookup tables? The answer is xSQL Data Compare which allows you to:
  • Select the tables you need to compare and sync
  • Filter out the rows that you might not want to sync
  • Review the differences 
  • Generate the sync script 
  • Execute the sync script (this step in the process will publish all the data changes you made on development into the production database).
In addition of the granular control over the process there are three features that make xSQL Data Compare the ideal sql tool for the job:
  1.  “Configure once”: xSQL Data Compare saves all your comparison configuration settings in a comparison “session” so that next time you can launch the comparison with one click and complete the whole data synchronization process with two more clicks (one to generate the sync script and one to execute the sync script).
  2. Command line utility: allows you to run the comparison and synchronization in one step from the command line. 
  3. It is completely free for SQL Server Express without any limitations and it is also free for other editions of SQL Server as long as the number of objects in your database does not exceed certain limits.
Download your copy today and discover for yourself why thousands of users around the world swear by this simple but extremely helpful sql tool.

Wednesday, February 29, 2012

How to publish database changes – SQL Tools

Here is a scenario that database developers face on regular bases: the implementation of application changes is often accompanied by changes in the database(s) that support the application. Some of the most common database changes required are:
  • Changing table column types to accommodate bigger values;
  • Adding new columns to tables;
  • Adding whole new tables;
  • Creating new views and / or modifying existing views
  • Creating new stored procedures and / or modifying existing stored procedures
You have completed your work and are now ready to publish the new build of your application. The challenge is that those database changes must be published together with the new build of the application otherwise your application will not work the way it is supposed to.
Here is how we managed those database changes prior to building xSQL Object: the developer who were working on the project would have to script out every change they were making on the database side (the use of the GUI tools to make changes on the database schema was prohibited other than for executing those change scripts), and diligently organize those change scripts which would then be submitted to the DBA who was responsible for reviewing and deploying those scripts. The issues we faced with this approach were:
  • Missed changes – some change scripts would not make it to the script repository. Those missed database changes would only be discovered when the application would error out because an object was missing or a type didn’t match etc. Those missed changes would results in many wasted hours and frustration. 
  • Failure to execute – some scripts would fail to execute successfully because of dependencies. Ordering the scripts is a painful, time consuming process especially when multiple developers are involved. 
  • Significant amount of time consumed in creating rollback scripts that would make it possible to reverse the changes if something went wrong.
Overall, this was a very expensive and error prone process, and that was the motivation for us to build a tool that would completely automate this process and eliminate the problems. The result was the release of version 1 of xSQL Object some 8 years ago. Here is how xSQL Object solves this problem:
  1. The developers can make the changes they need to make on the database without having to worry about keeping track of those changes and creating change scripts and rollback scripts. 
  2. When it is time to publish changes to staging or production environments you do the following:
    1. Launch xSQL Object and instruct it to compare the schema of the development database where those changes were made with the target database where you want to publish those changes. 
    2. xSQL Object will compare the schemas and show you exactly what changes have been made. It will then generate a synchronization script that when executed will make all those changes into the target database in the proper order. It will also generate the “rollback” script that will allow you to reverse those changes if necessary. 
    3. Review the script and execute against the target. 
    4. Done!
From many hours of tedious work with questionable results we have automated the process and brought the time required to complete the task down to a few minutes of easy work with guaranteed results.
Download your copy of xSQL Object today and see for yourself what you have been missing. There is no better way to spend the next 5 minutes of your time than downloading and installing a tool that will save you many valuable hours and for which you will likely not have to pay anything since the free lite edition is probably all you need.