Hi Bernard and Gustav,

This is not the solution, since I also might store binary data in a
LONG BYTE column and then strcpy() would truncate my data.
If I add the 0 byte like you proposed the 0 byte will be
part of my LONG value and this is not what I want.
The 0-byte solution would be correct if the hostvartype would be
sqlvchar.

Regards,

CTB

Bernard Clement schrieb:
Hi Claus,

Gustav is right...

In your code you have
    param1.buf = malloc(sizeof(buf1)); memcpy(param1.buf, buf1, sizeof(buf1));
    param1.size = sizeof(buf1);
   ...
    param2.buf = malloc(sizeof(buf2)); memcpy(param2.buf, buf2, sizeof(buf2));
    param2.size = sizeof(buf2);

Try with
param1.buf = malloc(sizeof(buf1)+1); memcpy(param1.buf, buf1, sizeof(buf1)+1);
param1.size = sizeof(buf1)+1;
...
param2.buf = malloc(sizeof(buf2)+1); memcpy(param2.buf, buf2, sizeof(buf2)+1);
param2.size = sizeof(buf2)+1;


The +1 will get the \0 at the end of the array of characters and you will be in business.

You can also replace the memcpy by a strcpy, e.g.
strcpy((param1.buf, buf1); strcpy((param2.buf, buf2);
if it exist in the precompiler, note that I do not have experience with the precompiler but I do have experience with C and C++.


Bernard

On Tuesday 27 January 2004 12:35, Claus-Thomas Buhl wrote:

I am using the C/C++ precompiler of SAP DB 7.3.0.46 and want
to update the data of a LONG column.

I recognized that if the new value is shorter than the
old value, the updated column has the length of the old value,
and the value is the new value plus the part of the old value
that is longer than the new value.

I can reproduce this behaviour with the appended program.
The program creates a table X with columns k INTEGER and
f LONG BYTE. It then inserts a row with k=1 and f='HELLO' and
finally updates the row with f='BELL'. If I query the table,
I get the value 'BELLO' for column f.

Regards,

CTB



-- _______ \o/|\o/ Claus-Thomas Buhl | Diplom-Informatiker \_____/ mailto:[EMAIL PROTECTED]

H.E.I. GmbH | Wimpfener Strasse 23 | D-68259 Mannheim
Fon: +49-(0)621-795141 | Fax: +49-(0)621-795161 | mailto:[EMAIL PROTECTED]
http://www.h-e-i.de && http://www.hei.biz && http://www.radpage.com


-- MaxDB Discussion Mailing List For list archives: http://lists.mysql.com/maxdb To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to