<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Virtage Developer &#187; SQL Server</title>
	<atom:link href="http://devel.virtage.com/category/sql-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://devel.virtage.com</link>
	<description>Blogging and tutorials on Ajax, Web 2.0, (X)HTML, CSS, JavaScript, Python and PHP</description>
	<lastBuildDate>Sun, 08 Aug 2010 13:42:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Microsoft database technologies Babylon: ODBC, OLE DB, ADO, Jet, ISAM, MDAC, LINQ</title>
		<link>http://devel.virtage.com/2009/02/microsoft-database-technologies-babylon-odbc-ole-db-ado-jet-isam-mdac-linq/</link>
		<comments>http://devel.virtage.com/2009/02/microsoft-database-technologies-babylon-odbc-ole-db-ado-jet-isam-mdac-linq/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 21:20:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://devel.virtage.com/?p=80</guid>
		<description><![CDATA[Welcome to Babylon of Microsoft database access technologies, APIs and tools! Why Babylon? Because all these technologies are designed to provide unified standardized language and communication way between data provider (of any kind) and consumer (application, developer, user).

But over years some technologies were more successful in their missions then others. In this article I would [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to Babylon of Microsoft database access technologies, APIs and tools! Why Babylon? Because all these technologies are designed to provide unified standardized language and communication way between data provider (of any kind) and consumer (application, developer, user).</p>
<p><span id="more-80"></span></p>
<p>But over years some technologies were more successful in their missions then others. In this article I would like to introduce you to world of Microsoft database technologies with target to help you to talk, develop, and use these technologies.</p>
<p>You may be wondered about form of table but a) I like tables and b) I think it&#8217;s great for gather overview and imagination how huge and extensive topic database technologies are.</p>
<p>Unfortunately is a result of my today and limited knowledge. I am still learning yet ADO.NET, and developer technologies LINQ, Entity Frameworks. Later, I will extend table for these buzz words.</p>
<p>Also, don&#8217;t miss general link section bellow!</p>
<h2>Encyclopedia</h2>
<h3>ODBC</h3>
<p>Status: retirement</p>
<p><strong>Open Database Connectivity. Low-level interface in C.</strong></p>
<p>Old industry standard for manipulating relational data using SQL query syntax across disparate data sources. ODBC is written in non-objective C language.</p>
<p>Should be replaced by OLE DB where possible.</p>
<p>Manageable through “Data Sources (ODBC)” applet in Administrative Tools.</p>
<p><cite>ODBC Data Source Administrator:<br />
</cite><cite><a href="http://msdn.microsoft.com/en-us/library/ms714024(VS.85).aspx">http://msdn.microsoft.com/en-us/library/ms714024(VS.85).aspx</a></cite></p>
<h3>OLE DB</h3>
<p>Status: vital</p>
<p><strong>Low-level interface. COM-based.</strong></p>
<p>OLE DB is build on the success of ODBC by providing an open standard for accessing all kinds of data. Unlike ODBC but not imposes specific limitation on either the query syntax, or the structure of the data exposed.</p>
<p>In actual OLE DB haven&#8217;t any relation to OLE (Object Linking and Embedding) and it&#8217;s a marketing name.</p>
<p>Is today&#8217;s industry standard of database access. If database haven&#8217;t OLE DB provider, use OLE DB Provider for ODBC Drivers, enables you to expose any ODBC Data Source to an OLE DB consumer (= to ADO, ADO is definitive consumer of OLE DB)</p>
<p>Haven&#8217;t any management GUI in Windows.</p>
<h3>ADO</h3>
<p>Status: retirement</p>
<p><strong>ActiveX Data Objects. High-level, easy-to-use and language-neutral API for accessing OLE DB databases.</strong></p>
<p>ADO is the single data interface you need to know for all database development in all kind of applications like n-tier client/server or Web-based data-driven solution development.</p>
<p>ADO consist of these several top-level objects like Connection, Recordset, Command, Error, Field.</p>
<p>Evolution of ADO with coming of .NET Framework is ADO.NET.</p>
<h3>ADOX</h3>
<p>Status: retirement</p>
<p><strong>ADO eXtension for Data Definition Language and Security</strong></p>
<p>Some but in plain English: with basic ADO you can&#8217;t create and modify schemas. Of course, same can be achieved by „CREATE/ALTER TABLE“ etc. SQL commands, but thanks to object-oriented approach you write one and same code for various data sources regardless of their native syntax differences. Not speaking that with ADO (and underlying OLE DB) you can access to non-relation (with no SQL language) sources.</p>
<h3>ADOMD</h3>
<p>Status: retirement</p>
<p><strong>ADO Multidimensional. Easy access to multidimensional data, schema, query a cube, and retrieve the results.</strong></p>
<p>Thanks to difficulty of multidimensional databases access cannot be unified. Refer to the documentation for your OLAP OLE DB provider for more detailed information on the specific syntax and behaviors supported by your provider.</p>
<h3>ADO.NET</h3>
<p>Status: vital</p>
<p><strong>Evolution of ADO in .NET platform.</strong></p>
<p>ADO.NET is a set of classes that expose data access services to the .NET programmer. ADO.NET provides functionality to developers writing managed code similar to the functionality provided to native COM developers by ADO. ADO.NET provides consistent access to data sources such as SQL Server, as well as data sources exposed through OLE DB and XML.</p>
<p>Elementary providers provides .NET application:</p>
<ul>
<li>SQL .NET Data Provider: access to SQL Server database directly.</li>
<li>OLE DB .NET Data Provider: databases by using their native OLE DB Providers.</li>
<li>ODBC .NET Data Provider: databases by using their ODBC drivers.</li>
</ul>
<p>Currently, I am a beginner in ADO.NET so better explanation will be here later.</p>
<p><cite>ADO.NET Overview:<br />
</cite><cite><a href="http://msdn.microsoft.com/en-us/library/h43ks021.aspx">http://msdn.microsoft.com/en-us/library/h43ks021.aspx</a></cite></p>
<h3><strong>JET</strong></h3>
<p>Status: dead</p>
<p><strong>Joint Engine Technology. Desktop database system.</strong></p>
<p>Default database engine for Visual Basic (prior VB.NET) as well as other Microsoft applications such as Microsoft Access, Microsoft Excel, Project (all prior &lt; Office 2007), and Microsoft Foundation Classes (MFC).</p>
<p>Last version was 4.0.</p>
<h3><strong>Access</strong></h3>
<p>Status: vital</p>
<p><strong>Database application designer. Not database engine!</strong></p>
<p>Access is GUI for creating DB-oriented application, not a database engine. Default database engine used in Access prior Access 2007 is JET. In other word Access &lt;&gt; JET. Default database engine of Access 2007 is ACE.</p>
<h3>ISAM</h3>
<p>Status: N/A</p>
<p><strong>Indexed Sequential Access Method. General algorithm for fast retrieval of sequential data, not specific implementation.</strong></p>
<p>For example MySQL implements and extends ISAM as MyISAM.</p>
<h3>Installable ISAM (IISAM)</h3>
<p>Status: dead</p>
<p><strong>Driver for JET engine based on ISAM algorithm.</strong></p>
<p>Best known for error message „Could not find installable ISAM“ when you import/export/link in Access or Excel.</p>
<p>List of my drivers under C:\Windows\System32 (Jet 4.0):</p>
<ul>
<li>Msexcl40.dll (Microsoft Excel)</li>
<li>Mstext40.dll (Text)</li>
<li>Msltus40.dll (Lotus 1-2-3)</li>
<li>Mspdox40.dll (Paradox)</li>
<li>Msxbse40.dll (Microsoft FoxPro)</li>
<li>Msxbse40.dll (dBase)</li>
</ul>
<h3>MDAC</h3>
<p>vital</p>
<p><strong>Microsoft Data Access Components. Distribution unit of Microsoft database technologies.</strong></p>
<p>MDAC or MDAC stack is name for distribution software package containing installation of Microsoft database technologies. Contains ADO, various ODBC Drivers and OLE DB Providers.</p>
<p>Current version is 2.8 SP1. Every computer with Windows XP SP2 or later has it.</p>
<p>From Windows Vista renamed to Windows Data Access Components (WDAC)</p>
<p><cite>MDAC homepage:<br />
</cite><cite><a href="http://msdn.microsoft.com/en-us/data/aa937729.aspx">http://msdn.microsoft.com/en-us/data/aa937729.aspx</a></cite></p>
<p><cite>MDAC roadmap (past, present, future):<br />
<a href="http://msdn.microsoft.com/en-us/library/ms810810.aspx">http://msdn.microsoft.com/en-us/library/ms810810.aspx</a></cite></p>
<p><cite>What is in what version of MDAC:<br />
</cite><cite><a href="http://support.microsoft.com/kb/190463">http://support.microsoft.com/kb/190463</a></cite></p>
<p><cite></cite><cite>Developer documentation:<br />
</cite><cite><a href="http://msdn2.microsoft.com/en-us/library/ms811910.aspx">http://msdn2.microsoft.com/en-us/library/ms811910.aspx</a></cite></p>
<h3>WDAC</h3>
<p>Status: vital</p>
<p><strong>Windows Data Access Components. Formerly MDAC. New name in Vista and further Windows. </strong></p>
<h3>SQLNCLI / SQL Native Client</h3>
<p>Status: vital</p>
<p><strong>New stand-alone for SQL Server 2005 and later. If you need all SQL Server 2005+ features not accessible through standard OLE DB/ODBC.</strong></p>
<p>It combines the SQL OLE DB Provider and the SQL ODBC Driver into one native dynamic-link library (DLL). Not necessary in .NET. Use SQL Server .NET Data Provider instead.</p>
<p>Not a part of MDAC package. Distributed separately.</p>
<p><cite>SQL Native Client Programming:<br />
</cite><cite><a href="http://msdn.microsoft.com/cs-cz/library/ms130892(en-us,SQL.90).aspx">http://msdn.microsoft.com/cs-cz/library/ms130892(en-us,SQL.90).aspx</a>.</cite></p>
<h3>DAO</h3>
<p>Status: dead</p>
<p><strong>Data Access Object. Designed for Visual Basic (VB) and Visual Basic for Application (VBA).</strong></p>
<p>Able connect only to JET. Successor is ADO.</p>
<h3>DSP</h3>
<p>Status: dead</p>
<p>Data Shape Provider. Deprecated. Forgot it completely.</p>
<h3>RDS</h3>
<p>Status: dead</p>
<p>Remote Data Service. Deprecated. Forgot it completely.</p>
<h3>LINQ</h3>
<p>Status: vital</p>
<p><strong>Language Integrated Query. What originally SQL should be &#8211; standardized query language against various data sources.</strong></p>
<p>Currently, I am beginner in LINQ. Explanation will be here later.</p>
<h3>DSN</h3>
<p>Status: retirement</p>
<p><strong>Data Source Name. Definition of ODBC data source.</strong></p>
<p>Is simply a name accessible from client application that define all necessary information to access data source thought ODBC.</p>
<ul>
<li><strong>file DSN </strong>– definition stored in text file (.dsn extension) in (usually) &#8220;c:\Program Files\Common Files\ODBC\Data Sources&#8221;. Shared among all users who has permissions to a file. Also passwords are save in plain text!</li>
<li><strong>system DSN</strong> – same as file DSN but stored in Windows registry. Visible to all users on this machine, including Windows (formerly NT) Services.</li>
<li><strong>user DSN </strong>– same as system DSN but visible only to you and on your machine.</li>
</ul>
<h3>UDL file/ Data Link File</h3>
<p>Status: vital</p>
<p><strong>Same like file file DSN (ODBC) but for ADO (it implies OLE DB).</strong></p>
<p>Because OLE DB haven&#8217;t visual GUI for managing you must create new file with .udl extension, then double-click to see configuration dialog. Or create content of UDL by hand.</p>
<p><cite>How To Use Data Link Files with ADO:<br />
</cite><cite><a href="http://support.microsoft.com/kb/q189680/">http://support.microsoft.com/kb/q189680/</a></cite></p>
<p><cite>Data Link API Overview:<br />
</cite><cite><a href="http://msdn.microsoft.com/en-us/library/ms718102(VS.85).aspx">http://msdn.microsoft.com/en-us/library/ms718102(VS.85).aspx</a></cite></p>
<h3>ODC file</h3>
<p>Status: I don&#8217;t know</p>
<p><strong>Office Data Connection. Connection information in stored in text file for Office 2003. Similar to file DSN and UDL file.</strong></p>
<p>I don&#8217;t understand the sense and future of ODC.</p>
<h3>ACE</h3>
<p>Status: vital</p>
<p><strong>Microsoft Access Engine (ACE Engine). Default database engine in Access 2007. Successor of Jet engine. </strong></p>
<p>The ACE engine is fully backward-compatible with previous versions of the Jet engine, so it reads and writes (.mdb) files from earlier Access versions. The new engine introduces a new default file format, (.accdb), that brings several improvements to Access, including complex data types such as multivalue fields, the attachment data type and history tracking in memo fields. It also brings security and encryption improvements.</p>
<h3>UDA</h3>
<p>Status: dead</p>
<p><strong>Universal Data Access. Microsoft marketing name.</strong></p>
<p>UDA is Microsoft&#8217;s strategy for providing high-performance access to all types of information (including relational and non-relational data) across an organization from the desktop to enterprise systems.</p>
<h2>Some useful Microsoft database links</h2>
<p><strong>Microsoft database technologies “guidepost”</strong><br />
<a href="http://msdn.microsoft.com/en-us/data/default(en-us).aspx">http://msdn.microsoft.com/en-us/data/default(en-us).aspx</a></p>
<p><strong>Internet&#8217;s greatest colletion fo connection strings</strong><br />
<a href="http://www.carlprothman.net/Default.aspx?tabid=81">http://www.carlprothman.net/Default.aspx?tabid=81</a></p>
<p><strong>How To Use ADO with Excel Data from Visual Basic or VBA</strong><br />
<a href="http://support.microsoft.com/kb/257819">http://support.microsoft.com/kb/257819</a></p>
<p><strong>Excel connection strings</strong><br />
<a href="http://www.connectionstrings.com/excel#20">http://www.connectionstrings.com/excel#20</a></p>
<p><strong>2007 Office System Driver: Data Connectivity Components</strong><br />
<a href="http://www.microsoft.com/downloads/details.aspx?familyid=7554F536-8C28-4598-9B72-EF94E038C891&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=7554F536-8C28-4598-9B72-EF94E038C891&amp;displaylang=en</a></p>
<p><strong>ExcelADO(.exe) demonstrates how to use ADO to read and write data in Excel workbooks</strong><br />
<a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;278973">http://support.microsoft.com/default.aspx?scid=kb;en-us;278973</a></p>
]]></content:encoded>
			<wfw:commentRss>http://devel.virtage.com/2009/02/microsoft-database-technologies-babylon-odbc-ole-db-ado-jet-isam-mdac-linq/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>en: Access linking/importing error: 3125:  is not a valid name. Make sure that it does not include invalid characters or punctuation and that it is not too long</title>
		<link>http://devel.virtage.com/2009/01/en-access-linkingimporting-error-3125-is-not-a-valid-name-make-sure-that-it-does-not-include-invalid-characters-or-punctuation-and-that-it-is-not-too-long/</link>
		<comments>http://devel.virtage.com/2009/01/en-access-linkingimporting-error-3125-is-not-a-valid-name-make-sure-that-it-does-not-include-invalid-characters-or-punctuation-and-that-it-is-not-too-long/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 12:36:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Access]]></category>

		<guid isPermaLink="false">http://devel.virtage.com/?p=75</guid>
		<description><![CDATA[Solution: Rename  object. Make it shorter, without special chars (_, -, .). Depends on your database from you are linking or importing from.
Unfortunatelly, SQL Server 2000 by default produce these Access unacceptable names for table&#8217;s primary keys (e.g. PK___master.PrioritaP___6AA6A67A).

I exprience this problem on SQL Server 2000 Standard and Access 2003. Complete error message if [...]]]></description>
			<content:encoded><![CDATA[<p>Solution: Rename  object. Make it shorter, without special chars (_, -, .). Depends on your database from you are linking or importing from.</p>
<p>Unfortunatelly, SQL Server 2000 by default produce these Access unacceptable names for table&#8217;s primary keys (e.g. PK___master.PrioritaP___6AA6A67A).</p>
<p><span id="more-75"></span></p>
<p>I exprience this problem on SQL Server 2000 Standard and Access 2003. Complete error message if you click on Help button:</p>
<p><em>&lt;Name&gt; is not a valid name. Make sure that it does not include invalid characters or punctuation and that it is not too long. (Error 3125)</em></p>
<p><em>The specified name does not follow standard naming conventions or is not a valid parameter or alias name. Check your entry to make sure you have not included invalid characters or punctuation and that the name is not too long.</em></p>
<p>I hadn&#8217;t time to more investigation. If you are really interrested, yahoo ( or google) for it.</p>
<p><img class="alignnone size-full wp-image-76" title="&lt;Name&gt; is not a valid name. Make sure that it does not include invalid characters or punctuation and that it is not too long. (Error 3125)" src="http://devel.virtage.com/wp-content/uploads/2009/01/access_error_3125.gif" alt="&lt;Name&gt; is not a valid name. Make sure that it does not include invalid characters or punctuation and that it is not too long. (Error 3125)" width="700" height="92" /></p>
]]></content:encoded>
			<wfw:commentRss>http://devel.virtage.com/2009/01/en-access-linkingimporting-error-3125-is-not-a-valid-name-make-sure-that-it-does-not-include-invalid-characters-or-punctuation-and-that-it-is-not-too-long/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>en: Crashing SQL Server 2005 Upgrade Advisor error</title>
		<link>http://devel.virtage.com/2009/01/en-crashing-sql-server-2005-upgrade-advisor-error/</link>
		<comments>http://devel.virtage.com/2009/01/en-crashing-sql-server-2005-upgrade-advisor-error/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 21:40:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://devel.virtage.com/?p=26</guid>
		<description><![CDATA[Great tool for migrating from SQL Server 7 or 2000 to new 2005 version can easily crash with strangeful mystery errors if you use Microsoft Update for being up-to-date with .NET Framework. If you have .NET Framework newer than 2.0, Upgrade Advisor failed to analyze database engine component.

If you encounter error with analyzing SQL Server [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Great tool for migrating from SQL Server 7 or 2000 to new 2005 version can easily crash with strangeful mystery errors if you use Microsoft Update for being up-to-date with .NET Framework. If you have .NET Framework newer than 2.0, Upgrade Advisor failed to analyze database engine component.</strong><br />
<span id="more-26"></span><br />
If you encounter error with analyzing SQL Server database engine without any description what happened, check what version of .NET Framework you have installed. Nowhere documented requirements is to have .NET Framework 2.0, any higher version will cause the Upgrade Advisor crash.</p>
<p><img class="alignnone size-full wp-image-61" title="Silly nothing saying error of Upgrade Advisor" src="http://devel.virtage.com/wp-content/uploads/2009/01/upgradeadvisor011.png" alt="Silly nothing saying error of Upgrade Advisor" width="493" height="440" /></p>
<p>My personal little investigation with debugger revelead that problem is related to crash of BPACMD.EXE commandline tool that is called by Upgrade Advisor.</p>
<p>By default, debugging is turned off. So run regedit, and create new key-value pair named „EnableLog“ of type DWORD with value „1“ under HKEY_LOCAL_MACHINEMICROSOFTFusion. Then you will see more details. It enables me to reveal true problem.</p>
<p><img class="alignnone size-full wp-image-53" title="Create new key-value pair named „EnableLog“ of type DWORD with value „1&quot;" src="http://devel.virtage.com/wp-content/uploads/2009/01/upgradeadvisor02.png" alt="Create new key-value pair named „EnableLog“ of type DWORD with value „1&quot;" width="576" height="401" /></p>
<p>Then re-run C:Program FilesMicrosoft SQL Server 2005 Upgrade AdvisorBPAbpacmd.exe again to see that you haven’t .NET Framework 2.0 machine configuration file. But I haven’t .NET Framework installed at all!! Volià! Stupid installer didn’t noticed me about this requirement! I suppose that if I have lastest .NET Framework (3.5), it will be backward compatible or Upgrade Advisor installer will warn be instead of such silly hard to troubleshoot error.</p>
<p>So uninstall all .NET Frameworks of all versions (2.x, 3.x) (including all .NET Service and Language Packs). Then <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&amp;displaylang=en">download</a>, install, re-run Upgrade Adviser again!</p>
<p><img class="alignnone size-full wp-image-54" title="bpacmd.exe crash" src="http://devel.virtage.com/wp-content/uploads/2009/01/upgradeadvisor03.png" alt="bpacmd.exe crash" width="665" height="328" /></p>
<p><em>Final note from practice: </em>Keep in mind that Upgrade Advisor cannot check crypted database objects (stored procedures, views, &#8230;). Thay can be rich source of many potencial incompatibilities. So uncrypt them first.</p>
]]></content:encoded>
			<wfw:commentRss>http://devel.virtage.com/2009/01/en-crashing-sql-server-2005-upgrade-advisor-error/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
