BUG: srv_pfield Not Return Null if Field Length Is 30 Char. (124279)



The information in this article applies to:

  • Microsoft SQL Server 4.2x

This article was previously published under Q124279

SYMPTOMS

The function srv_pfield does not return a null terminated string when the field length is exactly 30 characters. This may cause DB-Library (DB-Lib) 20003 errors if you pass this resultant string to DB-Lib login structure.

NOTE: The length returned is still correct.

WORKAROUND

The following code fragment can be used to ensure that a null terminated string of the correct length is copied into the destination buffer:
   char buf[31];
   strncpy(buf,srv_pfield(.....),30);
   strcat(buf,'\0');
				

STATUS

Microsoft has confirmed this to be a problem in OPENDSNT versions 4.2 and 4.21. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

Modification Type:MajorLast Reviewed:12/16/1999
Keywords:kbprogramming KB124279