Fun with Microsoft SQL Server 4.21

First off I have this copy of SQL server 4.21 that I wanted to run on my new super fast Vista x64 box. Now it’s 32bit but completely unsupported…. And off the CD the setup doesn’t work..

But not to fear!

First from a Windows NT 4.0 CD I copy in the setupdll.dll file into the source path for SQL Server 4.21. Now the setup.exe will actually run.

So the first hint is to set the compatibility for the setup.exe to “run in 256 colors”. Now it’ll render stuff correctly, however it’ll barf because it wants to overwrite the file “dbnmpntw.dll” which won’t work. So simply editing the setup.inf file and commenting out the dbnmpntw.dll line.

Now the real pain is that it’ll run the setup, but it’ll crash when starting the sql server as a service… I still don’t know what’s crashing it.

Next grab service pack (#4) for Sql 4.21

You’ll need some kind of MS-DOS environment to extract the service pack… Either DOSBox or VirtualPC with MS-DOS will quickly do the job. I like DOSBox for this kind of thing as it can directly mount the native filesystem..

Anyways copy the DLL’s to c:\sql\dll & the exe to c:\sql\binn

Then add c:\sql\dll;c:\sql\binn to the system PATH environment….

From here you can run the sqlservr.exe in an administrator prompt, and it’ll run…

C:\SQL\sp>SQLSERVR.EXE
09/07/02 19:18:18.87 kernel SQL Server for Windows NT 4.21a.05 (Intel X86) Jun 28 1995 08:20:31
Copyright (c) 1988-1995 Microsoft Corporation; Copyright Sybase, Inc 1987-1995

09/07/02 19:18:18.88 kernel Copyright (C) 1988-1993 Microsoft Corporation.
09/07/02 19:18:18.88 kernel Copyright Sybase, Inc. 1987, 1993
09/07/02 19:18:18.88 kernel All rights reserved.
09/07/02 19:18:18.88 kernel Use, duplication, or disclosure by the United States Government is subject
09/07/02 19:18:18.88 kernel to restrictions set forth in FAR subparagraphs 52.227-19(a)-(d) for civilian
09/07/02 19:18:18.88 kernel agency contracts and DFARS 252.227-7013(c)(1)(ii)for Department of Defense
09/07/02 19:18:18.88 kernel contracts. Sybase reserves all unpublished rightsunder the copyright laws of
09/07/02 19:18:18.88 kernel the United States.
09/07/02 19:18:18.88 kernel Sybase, Inc. 6475 Christie Avenue, Emeryville, CA94608, USA.
09/07/02 19:18:18.88 kernel Logging SQL Server messages in file ‘C:\SQL\LOG\ERRORLOG’
09/07/02 19:18:18.90 kernel Maximum number of pages in batch io is limited to8
09/07/02 19:18:18.90 kernel initconfig: number of user connections limited to5
09/07/02 19:18:18.90 server SQL Server is starting at priority class ‘normal’with dataserver serialization
turned on.
09/07/02 19:18:18.90 kernel initializing virtual device 0, C:\SQL\DATA\MASTER.DAT
09/07/02 19:18:18.92 kernel Opening Master Database …
09/07/02 19:18:18.92 server Loading SQL Server’s default sort order and character set
09/07/02 19:18:18.92 server Recovering Database ‘master’
09/07/02 19:18:18.92 server Recovery dbid 1 ckpt (701,14)
09/07/02 19:18:18.94 server server is unnamed
09/07/02 19:18:18.99 server Recovering database ‘model’
09/07/02 19:18:18.99 server Recovery dbid 3 ckpt (132,26)
09/07/02 19:18:19.00 server Clearing temp db
09/07/02 19:18:19.28 kernel Using ‘SQLEVENT.DLL’ version ‘4.21.00’.
09/07/02 19:18:19.28 kernel Using ‘OPENDSNT.DLL’ version ‘4.21.09.02’.
09/07/02 19:18:19.29 kernel Using ‘NTWDBLIB.DLL’ version ‘4.21.00’.
09/07/02 19:18:19.29 ods Using ‘SSNMPNTW.DLL’ version ‘4.21.0.0’ to listenon ”.
09/07/02 19:18:21.28 server Recovery complete.
09/07/02 19:18:21.28 server SQL Server’s default sort order is:
09/07/02 19:18:21.29 server ‘bin_cp850’ (ID = 40)
09/07/02 19:18:21.29 server on top of default character set:
09/07/02 19:18:21.29 server ‘cp850’ (ID = 2)

Contrl+C will kill it… You can fire up the SQL Administrator (C:\Sql\Binn\Sqladmin.exe) but it’ll freak because the master database isn’t fully built. It’s very close to usable but so far the only way to get around the incomplete master is to copy one from an existing DB… Good thing you have that NT 4.0 CD & VirtualPC right? Just remember that SQL 4.21 will only install PRIOR to sp6. SO the install order is NT 4.0, SQL 4.21, SP6, VMadditions, SQL service pack, then copy the c:\sql directory to overrite the prior one. You may also want to export the registry keys from the Virtual NT 4.0 machine [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQLServer].

Ok now for the downside… For whatever reason it will *NOT* listen on TCP/IP. So it’ll only do named pipes… If you are only doing local stuff it’ll be just fine. The services don’t work, but the uptick is that it’s SMALL… A zip of the installed SQL is under 5 megabytes!

So in the end, it’s not terribly usefull, but I found it interesting that with a little hacking SQL Server 4.21a will run on Vista x64 sp2.

Microsoft SQL Server 4.21 on Vista x64

And here is a screenshot… I’ll have to do some quick benchmarks of 4.21 vs the 2008 Express stuff.

One thought on “Fun with Microsoft SQL Server 4.21

  1. VERY FUNNY INDEED! Because I have installed it on winnt3.1(486machine) and XP(new machine) long ago(ALL PURE OS,REAL MACHINE).It works well! I love small software,I hate gigantic! Your experience taught me more about Sql 4.21,Thank U very much!!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.