5

I am coding in c++ windows.

INT64 dirID = -1;
CString querySQLStr = _T("");
querySQLStr.Format(L"select * from ImageInfo where FolderPath=%64d;", dirID);

querySQLStr always like this:
select * from ImageInfo where FolderPath=                                                            1214;

is it right to use %64d? Many Thanks

sxingfeng
  • 971
  • 4
  • 15
  • 32

3 Answers3

8

I don't have a windows machine handy to test this on, but I think CString should accept this:

querySQLStr.Format("%I64d", dirID);

It's probably worth noting that this is windows specific, but since you're using CString I guess that's okay.

ryan_s
  • 7,826
  • 3
  • 27
  • 28
  • I can confirm it does work. %lld (two lowercase Ls) will also work, the 'll' referring to LONGLONG, which (under Win32 at least) is typedefed as _int64, as is INT64 (defined by different header files). – JTeagle Jun 18 '10 at 13:57
0

i think you need to try this:

__int64 val;
......
ParamVal.Format( _T("%d{I64}"), val);
mazen
  • 1
0

%lld and %I64d both work equally as well.

strCode.Format(_T("Code = %lld, Result = %I64d \n"),lCode,lResult);
BlueMax
  • 9
  • 2