Mega Code Archive

 
Categories / Delphi / ADO Database
 

Mssql sql links driver and the langdriver setting

Question: Why might I be seeing duplicated rows being displayed in my application when using the MSSQL SQL Links driver w/MSSQL server version 6.5 or later? Answer: Please see the Delphi 4 README.TXT, BDEREADME.TXT, BDE32.HLP and SQLLNK32.HLP for additional information regarding BDE language drivers and Borland SQL Links. BDE/Microsoft SQL Server/Default Language Driver ------------------------------------------------ If the LANGDRIVER parameter of a BDE alias for the Microsoft SQL Server driver is left blank, the Paradox ASCII driver will be used by default. Beginning with version 6.5, MS-SQL Server changed the default sort order from BINARY to NOCASE (52). As a result, an index created on CHAR or VARCHAR fields using the default language driver (Paradox ASCII) produces duplicate rows for an MS-SQL table if mixed case data is found in that field. Workaround: select an appropriate language driver in the LANGDRIVER parameter when configuring a BDE alias for MS-SQL (for example, US users would select the driver Borland ENG Latin-1). Note: this only applies to SQL Server version 6.5 and above, with default sort order.