C++Builder OLE 数据库解决思路
C++Builder OLE 数据库
我用BCB链接数据库,用时间控件进行查询,然后将查询后的数据和时间导出到EXCEL中,结果如下:
时间 数据
2010-3-1 9:37 1
2010-3-1 10:24 1
2010-3-1 10:29 4
2010-3-1 10:29 1
2010-3-1 10:30 4
2010-3-1 10:33 4
2010-3-1 10:36 4
2010-3-1 10:39 4
2010-3-1 10:40 4
2010-3-1 10:40 4
2010-3-1 10:41 4
2010-3-1 10:51 4
上面的时间我想的是显示年月日 和 小时 分 秒,但是上面的秒没有显示出来,不知道什么原因,我将代码贴在下面:
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() 来试试
我用BCB链接数据库,用时间控件进行查询,然后将查询后的数据和时间导出到EXCEL中,结果如下:
时间 数据
2010-3-1 9:37 1
2010-3-1 10:24 1
2010-3-1 10:29 4
2010-3-1 10:29 1
2010-3-1 10:30 4
2010-3-1 10:33 4
2010-3-1 10:36 4
2010-3-1 10:39 4
2010-3-1 10:40 4
2010-3-1 10:40 4
2010-3-1 10:41 4
2010-3-1 10:51 4
上面的时间我想的是显示年月日 和 小时 分 秒,但是上面的秒没有显示出来,不知道什么原因,我将代码贴在下面:
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() 来试试