Microsoft KB Archive/294956

= FIX: Enterprise Manager May Cause Access Violation When You Edit a DTS Package with Long User Name =

Article ID: 294956

Article Last Modified on 11/5/2003

-

APPLIES TO


 * Microsoft SQL Server 2000 Standard Edition

-



This article was previously published under Q294956



BUG #: 353109 (SHILOH_BUGS)



SYMPTOMS
When you edit Data Transformation Services (DTS) package properties by using the SQL Server Enterprise Manager, and you specify SQL Server Authentication for logging package execution, setting a user name larger than 16 K allows the package properties to be saved but generates the following error message: SQL Enterprise Manager :mmc.exe Application error The instruction at  referenced memory at . The memory could not be &quot;read&quot;.



RESOLUTION
To resolve this problem, obtain the latest service pack for SQL Server 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

290211 INF: How to Obtain the Latest SQL Server 2000 Service Pack



WORKAROUND
To work around this problem you can either:
 * Avoid the use of user names that are larger than 16 K for logging package execution to SQL Server for DTS packages.

-or-


 * Use Windows Authentication instead of SQL Server Authentication.



STATUS
Microsoft has confirmed that this is a problem in SQL Server 2000. This problem was first corrected in SQL Server 2000 Service Pack 1.



MORE INFORMATION
This only happens when you enter a very long string (greater than 16 K) as the user name. A user name that is smaller than 16 K does not cause the error message and allows you to save the package.

Steps to Reproduce Behavior

 * 1) Open SQL Enterprise Manager. Expand the Data Transformation Services folder. Select a DTS package, right-click the DTS package name, and then click Design Package.
 * 2) On the Package menu item, click Properties. This opens a window in which you can edit the properties of the selected DTS package.
 * 3) Under the Logging tab, select SQL Server Authentication.
 * 4) Type a large string (greater than 16 K) for the user name.
 * 5) Click OK. An error message displays that states that the user could not be authenticated followed by the error message shown in the &quot;Symptoms&quot; section.

Use the following SQL-DMO code to reproduce this bug by using Microsoft Visual Basic: Set oSQLServer = CreateObject( &quot;SQLDMO.SQLServer&quot; ) On Error resume next userName = String(65000, &quot;X&quot;) WScript.Echo &quot;Connect this user: &quot; + userName oSQLServer.Connect &quot;.&quot;, userName, &quot;&quot; if Err.number = 0 then WScript.Echo &quot;Connection succeeded&quot; 'this will never happen (except when there is a valid &quot;XXX...XX&quot; user name) oSQLServer.DisConnect else WScript.Echo &quot;Connect FAILED but the test passed&quot; end if After the error occurs, when you step through the preceding code from the debugger here is the top of the stack: NTDLL! 77fca2bf OperatorNewDbg(unsigned int 352) line 298 + 22 bytes operator new(unsigned int 352) line 27 + 12 bytes CDynString::iCheckRealloc(int 176) line 446 + 11 bytes CDynString::Add(const unsigned short * 0x02bb2cc8, int 47) line 412 CDynString::Set(const unsigned short * 0x02bb2cc8, int 0) line 388 CDynString::CDynString(const unsigned short * 0x02bb2cc8, int 0, int 128) line 78 CSqlString::CSqlString(const unsigned short * 0x02bb2cc8, int 0, int 128) line 68 + 27 bytes FillExcepInfo(unsigned short 3, unsigned int 0, const unsigned short * 0x02bb2cc8, long 0, int 0, const unsigned short * 0x00000000) line 1394 + 72 bytes FillExcepInfo(unsigned int 2147483651) line 1351 + 22 bytes CSQLServer::PingSQLServerVersion(CSQLServer * const 0x02bba00c, SQLDMO_SQL_VER * 0x00069d14, const unsigned short * 0x0200903c, const unsigned short * 0x01ff7af4, const unsigned short * 0x020093cc) line 3876 + 11 bytes CDTSPackageLoggingPage::isVersionOK(int 0) line 8830 + 49 bytes CDTSPackageLoggingPage::UpdateInfo line 8913 + 10 bytes CDTSPackageLoggingPage::OnApply line 8766 + 26 bytes CPropertyPage::OnNotify(unsigned int 0, long 434008, long * 0x00069dbc) line 2170 + 11 bytes SFCWndProc(HWND__ * 0x001005bc, unsigned int 78, unsigned int 0, long 434008) line 51 USER32! 77e148dc USER32! 77e2c187

Keywords: kbbug kbfix kbsqlserv2000sp1fix KB294956

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.