首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

C++Builder OLE 数据库解决思路

2012-02-05 
C++Builder OLE 数据库我用BCB链接数据库,用时间控件进行查询,然后将查询后的数据和时间导出到EXCEL中,结

C++Builder OLE 数据库
我用BCB链接数据库,用时间控件进行查询,然后将查询后的数据和时间导出到EXCEL中,结果如下:
时间数据
2010-3-1 9:371
2010-3-1 10:241
2010-3-1 10:294
2010-3-1 10:291
2010-3-1 10:304
2010-3-1 10:334
2010-3-1 10:364
2010-3-1 10:394
2010-3-1 10:404
2010-3-1 10:404
2010-3-1 10:414
2010-3-1 10:514
上面的时间我想的是显示年月日 和 小时 分 秒,但是上面的秒没有显示出来,不知道什么原因,我将代码贴在下面:
  while(!Query1->Eof)
  {
  j++;
  for(i=0;i<Query1->FieldCount;i++)
  {
  AnsiString hhk=Query1->Fields->Fields[i]->FieldName;
  Sheet.OlePropertyGet("Columns",1).OlePropertySet("ColumnWidth", 25); //设置列宽
  Sheet.OlePropertyGet("Cells",j,i+1).OlePropertySet("Value",AnsiString(Query1->FieldByName(hhk)->Value).c_str());

  }
  Query1->Next();
  }
我不知道是不是AnsiString限制了字符长度的原因?求助!

[解决办法]
用的CB什么版本?
不会限制长度的
是不是你的Excel长度 不够长 把后面遮住了?
你去跟踪一下 看看
AnsiString(Query1->FieldByName(hhk)->Value).c_str() 这里的数据是多少
或者
改为
Query1->FieldByName(hhk)->AsString.c_str() 来试试

热点排行