App Server xp_ndo_enumusergroups

We are preparing to migrate to 4.0 and I am trying to get the 4.0 version of App Server running. I created the new extended sproc (xp_ndo_enumusergroups) in SQL but I get the following error when I try to start the app server. The following ODBC error occurred: Error: [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot find the function xp_ndo_enumusergroups in the library D:\Program Files\Microsoft SQL Server\MSSQL\Binn\xp_ndo_40.dll. Reason: 127(The specified procedure cou. I am using the only dll on the install disk I could find named xp_ndo.dll, it was in the Client\Microsoft Components\MSDE\ folder. I renamed it to xp_ndo_40.dll because we still have some 3.7 databases on the same server and I wasn’t sure that this dll was backwards compatible. I created the xp_ndo_enumusergroups extended sproc to point to the renamed dll and it seems to be finding it ok. Is it possible that this is not the correct version? If not, any suggestions where I can find the correct one? Any help is appreciated

Incase anyone else is looking for this dll, its on disk 1 of the install file under the SQL_ESP folder. It’s in a zip file, so performing a search on xp_ndo.dll will not find it, but searching on xp_ndo.* will.

Dont rename it. The one supplied with 4.0 is compatible with earlier versions.

Thanks Robert, that’s good to know. I recreated the extended stored procs with the dll in the zip file from the 4.0 cd but still get the same error: Cannot find the function xp_ndo_enumusergroups in the library D:\Program Files\Microsoft SQL Server\MSSQL\Binn\xp_ndo.dll. The error seems to be saying “Hey, you are using the wrong dll”, but I have checked and double checked.

What happens if you execute from Query Analyzer, when in the master database: exec xp_ndo_enumusergroups Is that giving an error?

Try running this from the SQL Query Analyzer. See if it works. USE master EXEC sp_addextendedproc xp_ndo_enumusergroups, ‘xp_ndo.dll’

When I run it in query analyzer I get basically the same error that I get from the App Server. Cannot find the function xp_ndo_enumusergroups in the library xp_ndo.dll. Reason: 127(The specified procedure could not be found.). When I run xp_ndo_enumusersids in query analyzer I get a list of users and groups, which seems like the output that would be expected. That sure makes it seem like I am still using the old version of the dll. I’ve double checked the date stamps to make sure I’m not using the old one; I will copy the new dll over from the install disk again just to make sure.

I just needed to restart SQL. Extended stored procs are loaded into memory the 1st time they are used, all subsequent calls to that extended sproc will use the dll in memory instead of going to disk. There were other developers using our test server so I had avoided restarting it.

You can also explicitly unload an extended stored procedure dll using DBCC UNLOAD (see the help for exact spec), without shutting down the server.