把文本中的记录写入数据库中

来源:互联网 发布:wlan测试软件下载 编辑:程序博客网 时间:2024/05/18 02:18

有一个文本文件,文件中每一行是一套记录,一条记录有8个字段,每个字段中间用TAB空开,将文件中的记录写入ACCESS数据库中的XZJH表中,操作如下:

 CTYDataP dp;    //自定义的一个操作数据库的类
 dp.OpenDatabase("Tool.mdb");  //连接名为tool.mdb的数据库
 dp.OpenDataSet("select * from xzjh");   //打开select * from xzjh数据集
 CStdioFile sf(_T("C_XZ_JH.txt"),CFile::modeRead);  //打开名为C_XZ_JH.txt的文件
 CString line;
 CString temp[8];
 while(sf.ReadString(line))
 {
  int j=0,i=0;
 while(j!=-1)
 {
  j=line.Find('/t');
  if(j==-1)
   break;
  temp[i]=line.Left(j);
  i++;
  line=line.Right(line.GetLength()-j-1);
 }
 temp[7]=line;
 dp.m_pRecordset->AddNew();
 dp.m_pRecordset->put_Collect(_variant_t("区管号"),_variant_t(temp[0]));
 dp.m_pRecordset->put_Collect(_variant_t("单位编号"),_variant_t(temp[1]));
 dp.m_pRecordset->put_Collect(_variant_t("单位名称"),_variant_t(temp[2]));
 dp.m_pRecordset->put_Collect(_variant_t("参保号"),_variant_t(temp[3]));
 dp.m_pRecordset->put_Collect(_variant_t("姓名"),_variant_t(temp[4]));
 dp.m_pRecordset->put_Collect(_variant_t("性别"),_variant_t(temp[5]));
 dp.m_pRecordset->put_Collect(_variant_t("身份证"),_variant_t(temp[6]));
 dp.m_pRecordset->put_Collect(_variant_t("位置码"),_variant_t(temp[7]));
 dp.m_pRecordset->put_Collect(_variant_t("标志"),_variant_t("n"));
 dp.m_pRecordset->Update();
 }
内层的while循环读取一条记录中的单个字段,保存到数组temp中。

下面是一些函数的说明:

CString::Find(t),在字符串中查找t,找到就返回t在字符串中的位置,位置从0开始。t可以是单个字符,可以是字符串。

CString::Left(n),在字符串中截获子串,返回从左边第一个字符开始的n个字符。

CString::Right(n),在字符串中截获子串,返回从右边第一个字符开始的n个字符。

CStdioFile::ReadString(line),读取文件中的一行,以字符串的形式保存在line中。

数据库的操作采用ADO技术,下次介绍
 

原创粉丝点击