Link to home
Start Free TrialLog in
Avatar of gregatcxn
gregatcxn

asked on

Delphi 2007 DBX Auto-Trim CHARS

I'm working on converting a program from Delphi 6 + BDE to Delphi 2007 + DBX and using Sybase in both cases. One of the problems I'm running into is that BDE would remove any trailing white space from CHAR fields but DBX leaves trailing whitespace. Is there a way to have sybase or DBX remove any trailing whitespace?
Avatar of jimyX
jimyX

I am not sure if this helps but you can try:
http://www.sybase.com/detail?id=1032731
Avatar of gregatcxn

ASKER

The problem I'm having is with CHAR columns. For instance a CHAR (4) field with the value 'sa' will give 'sa  ' when selected. I'm looking for a way to remove the trailing spaces.
That's called blank padding and it is a feature in the Char Datatype. If you do not want that then use VarChar instead.
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc38151.1510/html/iqrefbb/X315931.htm

I have had same issue but different scenario/case with the blank character. BTW, it is not a space that is used to complete the length of the field it's a blank character which is used as complementary character so at the end the field meets the size indicated at the creation:

e.g.
Field Name: UserName
Data Type  : Char(12)

UserName='gregatcxn' it will be stored 'gregatcxn   ' where the last blanks are not spaces. If you tried to trim them as spaces you will not be able to.

I have an example to distinguish between the blank character and the space.
Can you match between the gaps among the #'s in the attached Excel sheet by going to Edit menu in the MS Excel and click Replace and then in "Find what:" put a space from your keyboard and in "Replace with:" put the dollar sign "$".
BlankChar.xls
Unfortunately the database is deployed at client sites and the DBA's will not change CHARs to VARCHARs for performance reasons.

When querying Sybase with DBX, the blanks at the end of the field are spaces and can be removed with a trim. Turning the 'blanks' into spaces is probably something the DBX drivers do automatically.

I'm looking for either a driver setting or a database setting that with automatically remove trailing white space from CHAR fields.

ASKER CERTIFIED SOLUTION
Avatar of jimyX
jimyX

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
This question has been classified as abandoned and is being closed as part of the Cleanup Program. See my comment at the end of the question for more details.