SQL Server 2000 on Windows 10

I have to admit it, that when I first heard about this I was HIGHLY skeptical, but sure enough it actually works.

Enterprise Manager looking at the infamous PUBS database

Although I have gotten SQL Server 4.21a & 6.5 running on Windows 10 (The core from 6.0 works, but it’s pre-release COM objects for the Enterprise manager don’t like Windows 10) There were two stumbling blocks I never could get around.  The first one turned out to be something trivial, which is SQL 4.21 would never listen on TCPIP.

Fixing SQL 4.21

It turns out that this actually was a simple fix.

17/09/21 19:40:24.00 server server name is ‘JADERABBIT’
17/09/21 19:40:24.00 server Recovering database ‘model’
17/09/21 19:40:24.00 server Recovery dbid 3 ckpt (45,26)
17/09/21 19:40:24.00 server Clearing temp db
17/09/21 19:40:24.03 kernel Using ‘SQLEVENT.DLL’ version ‘4.21.00’.
17/09/21 19:40:24.83 kernel Using ‘OPENDSNT.DLL’ version ‘4.21.09.02’.
17/09/21 19:40:24.83 kernel Using ‘NTWDBLIB.DLL’ version ‘4.21.00’.
17/09/21 19:40:24.83 ods Using ‘SSNMPNTW.DLL’ version ‘4.21.0.0’ to listen on ‘\\.\pipe\sql\query’.
17/09/21 19:40:24.83 ods Using ‘SSMSSOCN.DLL’ version ‘4.21.0.0’ to listen on ‘1433’.
17/09/21 19:40:26.04 server Recovering database ‘pubs’
17/09/21 19:40:26.06 server Recovery dbid 4 ckpt (469,25)
17/09/21 19:40:26.06 server Recovering database ‘ultimate’
17/09/21 19:40:26.06 server Recovery dbid 5 ckpt (524295,12)
17/09/21 19:40:26.06 server Recovery complete.
17/09/21 19:40:26.12 server SQL Server’s default sort order is:
17/09/21 19:40:26.12 server ‘bin_cp850’ (ID = 40)
17/09/21 19:40:26.12 server on top of default character set:
17/09/21 19:40:26.12 server ‘cp850’ (ID = 2)

The DLL for TCP/IP is SSMSSOCN.DLL, and it turns out it really wants to be located in the C:\Windows\SysWOW64 directory (aka the system path for libraries).  Well that’s all great now, isn’t it?

Not really.

ODBC Hell

The ODBC drivers in Windows 10 finally made a magical cut off point that they will not talk to any old and ‘vulnerable’ SQL Servers.  This means that the oldest version you can connect to is SQL Server 2000.  Even SQL 7 didn’t make the cut.  Trying to connect to a SQL 7 server, you just get:

Attempting connection
[Microsoft][ODBC SQL Server Driver]Cannot generate SSPI context

And then I saw this post, about using FreeTDS to connect to MSSQL.  So I followed their instructions, and got nowhere fast just lots of crashing.  Turns out the bloodshed environment’s included G++ just fails 100% of the time for me, with a nice crash.  So I pointed it to the TDM GCC install, and then had to link the DLL manually and… nothing.  No configuration point.  In a fit of rage, I took the exist msvc project, opened it in Visual Studio 2015, and built it, except for one issue…

odbccp32.lib(dllload.obj) : error LNK2019: unresolved external symbol __vsnwprintf_s referenced in function _StringCchPrintfW

Seriously, it turns out that 2015 can’t just link to ODBC, that the libc thing that gave me SDL grief is deeply entrenched all over the place.  So in this case you need to link against legacy_stdio_definitions.lib. Fantastic.

I get my DLL, and yes, it’s a Windows 32bit ODBC driver!

FreeTDS Access failure

And yeah, lots of failure.

A red-herring was seeing this in the trace:

net.c:741:Sending packet
0000 01 01 00 2b 00 00 00 00-53 45 4c 45 43 54 20 43 |…+…. SELECT C|
0010 6f 6e 66 69 67 2c 20 6e-56 61 6c 75 65 20 46 52 |onfig, n Value FR|
0020 4f 4d 20 4d 53 79 73 43-6f 6e 66 |OM MSysC onf|

So I was thinking that SQL 4.21 & 6.5 are just too old to have this weird table, and as mentioned over here people would just create it, to get Access to shut up, and get on with their lives.

So, I put in some SQL

CREATE TABLE MSysConf(CREATE TABLE MSysConf(Config   int NOT NULL,chValue  char(255) NULL,nValue   int NULL,Comments char(255) NULL)
GO
INSERT INTO MSysConf(Config,nValue,Comments)VALUES(101,1,’Prevent storage of the logon ID and password in linked tables.’)
GO

And yes, it creates the table, Access get’s it’s result then obviously doesn’t like it and up and dies.  Maybe I can burn more cycles on it later, or break down and ask.

SQL Server 2000 (Dev) on Windows 10

And then I saw this epic thread, Windows 10 & My SQL Server 2000 Personal.

I managed to install following these steps:

Extract SP4
Copy ..SP4\x86\other\sqlredis.exe to ..\originalinstallpath\x86\other
(this avoid mdac insall freezing)
Create this folder structure (any place):
Microsoft SQL Server\80\Tools\Binn
Microsoft SQL Server\MSSQL\Binn
Find out sqlunirl.dll on SP4 path and copy to Binn folder above
Copy dll files on ..SP4\x86\setup to Microsoft SQL Server\MSSQL\Binn (folder above)
Copy folder structure (created on step 3) to C:\Program Files (x86)
Give full access to user logged to **Microsoft SQL Server** folder
Change install compatiblity ..\originalinstallpath\x86\setup\setupsql.exe
XP SP2
Run as administrator

Could that really be it?  For some reason I had a file held in the Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\PendingFileRenameOperations registry key, preventing me from installing, but zapping the key & stub program, and I was able to follow the steps (I’m still not sure if you copy the dlls into the MSSQL\Binn or Tools\BInn directories, so I copied them to both!) and yes, it worked.  I even could run the SP4 update.

And now I can use Access 2016 with this fine ancient database.

Access 2016 with SQL 2000 via ODBC

And here we are.  As always there is no larger over reaching point to this.  I did have to create a linked SQL login for myself to get ODBC to login properly but it’s somewhat simple, and honestly if that sounds bizarre to you, why are you even thinking about something like this?

For me, I’m interested in the DTS of all things.  Sure the new ones are fancier, and all that jazz, but I paid good money back in the day for old MS dev tools, and being able to use them without any virtualization, aka running on bare iron is all the more appealing.

Office 4.2 for Windows NT

At some time during the whole Windows NT vs OS/2 thing in the workplace, one of the funny things is that we all had to use Win16 versions of office, which I think we all agreed kind of sucked. Even at the time I thought it was rather sad that here is Microsoft pushing this new and exciting operating system, and the only applications that are available is a program to talk to mainframes (SNA Server), and a database (SQL Server). Oh sure there was MSMail, but there was no Word & Excel that the world was rapidly moving to, away from WordPerfect & 123.

So was I ever surprised to find out that there was a version of Microsoft Office for NT, and it at least ran on both i386 & Dec Alpha. The box claims that the PowerPC and MIPS versions will be along, but I don’t know if they ever shipped. But at the same time, it’d be hard to be touting these ‘advanced’ RISC CPU’s and all their glory, but when it comes to day to day work, they are running Word/Excel in emulation. I have the box with the coupon to redeem but I suspect MS would just laugh if I called them up asking for Word/Excel for the MIPS so I can run it on Qemu…. But I digress.

Naturally because of the day & age, the requirements are kind of laughable, but it was targeted towards Windows NT 3.5, with:

  • Microsoft Windows NT(tm) operating system 3.5 or later
  • 486 or higher
  • 16MB of memory
  • 59MB of disk space (minimum) 84MB maximum

So playing around with Win32s, I figured if i were to install say word into a VM, then xcopy it out, and try to run it, would it work? Win32s 1.10 wouldn’t run as this version didn’t include the new OLE 2.0 stuff… Which is why I suspect it won’t run on NT 3.1. Win32s 1.30c crashed and burnt in the worst way possible. Even Lemmings died on this version. damn.

But Win32s 1.25 actually ran it, along with Lemmings & Doom!

Word for NT on Windows 3.1

I can’t say it’s terribly useful, but considering how flakey Word 6.0 was on Windows 3.1, hell back in the day it’d been really nice to have a Win32 version.

Now I guess I ought to dig thru my stuff and see how many versions of both retail & debug Win32s I can find.

Word for Windows 2.0 demo

Someone managed to save the Word 2.0 demo executable, and a few files to do with it, but not the install. It appears to work ONCE per session, and if you launch word twice it’ll destroy the install… Very strange.

But for anyone looking for a demo copy of Word 2.0, along with Excel, Powerpoint & Schedule, it’s right here.

It runs great in DOSBox, and really if you use these for a few minutes, then try the later ones, what are you really missing?

Early Windows applications

With the dawn of Windows 2.x there was some push to make Windows a ‘runtime kit’ or basically Microsoft would let vendors ship a stripped down version of windows with their application to get people used to the idea of Windows. Back in the 1.x & 2.x days nobody really used it full time, but it was more so for the one or two applications of the time that needed it.

Adobe Pagemaker was the first application to take advantage of this runtime version of windows, but with the introduction of Windows 3.0 it was the end of the runtime version.

However Microsoft did have a ‘working demo’ version of Windows 3.0 . I still haven’t been able to track this down, however I have been able to find working demos of Power Point, Excel and Schedule.

So let’s take a look at this little thing, shall we?

For anyone who want’s to check it out, you can download this file, which has the whole thing setup. If you want to install it yourself, you can find what I’ve found so far here.

I’m running this under DOSBox, so I don’t have to worry about copying files in & out, or redistributing any operating system, like MS-DOS.

As you can see from the MS-DOS setup, it looks pretty similar to the Windows 3.0/3.1 setup that we all know.

And just like 3.0 / 3.1 there is also a graphical phase.

Once the setup is complete we run this demo as ‘windemo’.

As you can see it looks just like Windows 3.0. Well for the most part it is Windows 3.0 .

And as you can see, the demo executes in 286 protected mode, giving us the maximum 16mb of ram.. Not to bad for a demo.

So we get a limited version of Excel 2, that is good enough to test out some basic stuff.. Or for basic people it’s really all you would ever need. And yes the model will let you save, print, and do a simple graph. I think that is what the bulk of people with Office 2010 do anyways, here you go, and for FREE!

Next is Powerpoint 2.0 I’ve never been one for presentations myself, but here is a ‘hand tiger’.. I’ve never gotten why the clipart is so .. clipped, but there you go. Sorry no Ligers.

And finally Microsoft Project 1.0 The tutorial is lubriciously missing. Perhaps there should have been some kind of written pamphlet that accompanied the disk? Also see the conventional memory? This screams Windows 2.0 application.

Of course the working model of Windows 3.0 will not let you run ‘normal’ applications. But exiting, and copying the application to ‘progman.exe’ will get you there.

This is my f2c port of dungeon (zork) to win16, running on this minimal environment without issues.

Who knows there may be enough windows there to host QuickC for Windows. I haven’t tried, I have a real copy of 3.0 so I’ve not worried. But for you other people……

If anyone has a working model of Word, let me know…