当前位置: 代码迷 >> Sql Server >> SQL数据库写入有关问题
  详细解决方案

SQL数据库写入有关问题

热度:44   发布时间:2016-04-24 09:11:10.0
SQL数据库写入问题

void CControlPane::UpdateTarget(CSARACOMTarget *pAisTarget)
{


     UpdateData();
try
{
    DataRecord->Open("Select * from AIS.dbo.Dynamic",                // 查询DemoTable表中所有字段
theApp.DataConn.GetInterfacePtr(),  // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
DataRecord->AddNew();
DataRecord->PutCollect("MMSI", _variant_t(ais.m_MMSI));
DataRecord->PutCollect("Lon", _variant_t(ais.m_Longitude));
DataRecord->PutCollect("Lat", _variant_t(ais.m_Latitude));
DataRecord->PutCollect("SOG", _variant_t(ais.m_SOG));
DataRecord->PutCollect("COG", _variant_t(ais.m_COG));
DataRecord->PutCollect("ROT", _variant_t(ais.m_ROT));
DataRecord->PutCollect("Heading", _variant_t(ais.m_Heading));
DataRecord->PutCollect("UTC", _variant_t(ais.m_UTC_TIME));
DataRecord->Update();
      DataRecord->raw_Close();
}
catch(_com_error& e)
{
dump_com_error(e);
}
}


在一个循环里面加了这么一段代码,想把收到的信息不断写入,但是只写入了几个。


之前在同样的位置加的

outfile.open("ais.txt",ios::app|ios::nocreate);
outfile<<"MMSI:"<<ais.m_MMSI<<"  ";
outfile<<"船名:"<<ais.m_Name<<"  ";
outfile<<"呼号:"<<ais.m_CallSign<<"  ";
outfile<<"IMO号:"<<m_IMO<<"  ";
outfile<<"经度:"<<ais.m_Longitude<<"  ";
outfile<<"纬度:"<<ais.m_Latitude<<"  ";
outfile<<"航速:"<<ais.m_SOG<<"  ";
outfile<<"航向:"<<ais.m_COG<<"  ";
outfile<<"转向率:"<<ais.m_ROT<<"  ";
outfile<<"船艏向:"<<ais.m_Heading<<"  ";
outfile<<"状态:"<<ais.m_Status<<"  ";
outfile<<"船长:"<<ais.m_Length<<"  ";
outfile<<"船宽:"<<ais.m_Width<<"  ";
outfile<<"最大吃水:"<<ais.m_Draught<<"  ";
outfile<<"目的港:"<<ais.m_Destination<<"  ";
outfile<<"船旗国:"<<ais.m_Flag<<"  ";
outfile<<"UTC时间:"<<ais.m_UTC_TIME<<"  ";
outfile<<"精度:"<<ais.m_accuracy<<"  "<<endl;
outfile.close();

存入TXT的是正常的,换成数据库代码就出问题了,但又不知道问题出在哪里。
------解决思路----------------------
不用  DataRecord ,直接 insert 也不行吗?
------解决思路----------------------
不太了解C++
我想#1楼的意思是,直接执行SQL INSERT,不用API的DataRecord
  相关解决方案