Nelson:

Thanks a lot.

I found that sprintf(s,"%llu\n",ull.id); works with gcc but not with VC6.0 .

Thanks.

Regards,
Gu Lei

----- Original Message ----- 
From: "Dan Nelson" <[EMAIL PROTECTED]>
To: "??????" <[EMAIL PROTECTED]>
Cc: <mysql@lists.mysql.com>
Sent: Wednesday, March 15, 2006 11:27 PM
Subject: Re: insert my_ulonglong data with C API


> In the last episode (Mar 15), ?????? said:
>> Thanks a lot! But my test is not successful. Please help me. This is
>> my test code:
>> 
>> #ifdef WIN32
>> #include <windows.h>
>> #endif
>> 
>> #include "mysql.h"
>> #include <stdio.h>
>> main()
>> {
>>  union ull {
>>   unsigned char a[8];
>>   my_ulonglong id;
>>  } ull;
>>  for(int i=0;i<8;i++) ull.a[i]=(unsigned char)255;
>>  
>>  char s[200];
>>  sprintf(s,"%llu\n",ull.id);
>>  printf("%s\n",s);
>> 
>>  return 0;
>> }
>> 
>> On Windows its output is:
>> 4294967295
>> It's still a 4bytes integer.
> 
> Maybe your compiler doesn't understand the %llu syntax.  If it's a
> posix-compatible compiler, try this (although if it was posix, %llu
> would have worked, so this probably won't either):
> 
>  #include <inttypes.h>
> 
>  ...
> 
>  sprintf(s,"%"PRIu64"\n",ull.id);
> 
> Or read your compiler documentation to verify that can print 64-bit
> integers at all.
> 
> -- 
> Dan Nelson
> [EMAIL PROTECTED]
> 
> -- 
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
>

Reply via email to