>Hi All,
>
>this is for your information, you might confirm as well.
>
>Version mentioned is just the highest, I can follow the problem down to VFP 7.0
>
>Following construct:
>
>CREATE CURSOR curTest (i1 I NULL)
>
>INSERT INTO curTest VALUES (.NULL.)
>delete
>INSERT INTO curTest VALUES (1)
>INSERT INTO curTest VALUES (20)
>
>SELECT PADR(i1,11) FROM curTest
>
>Result is
>
>1
>2
>
>Table structure of result shows that the result contains one char field of lenght 1 (instead of 11)
>
>Some experiments with WHERE, NVL, JOIN allways return the same.
>
>It does not matter if the record is deleted or not, only factor is that it is the first one.
>
>Update
>Other approaches like CAST or BINTOC will solve my problem (I need a character version of a interger surrogate key for a combobox)
>
>Agnes
it is a VFP bug.
VFPT have forgotten to use the PAD parameter to define the length of the result before to read the source value,
when RECNO=1 and the value is null the C++ program path skip to use the PAD lenght.
( This VFP NULL bad C++ program path is present in many other commands and functions )
But !
With a C(N) field it work ( VFP use a different program path )
CREATE CURSOR curTest (i1 C(20) NULL)
INSERT INTO curTest VALUES (.NULL.)
delete
INSERT INTO curTest VALUES ('CHAR(20)')
SELECT PADR(i1,30) FROM curTest
SELECT PADL(i1,30) FROM curTest