我现在想得是将一个xml文件得值 全部弄到数据库表中
数据库表什么值没有 
我用一个ADOQuery查询出xml得值  
然后想用ADOQuery放到数据库中  

解决方案 »

  1.   

    你的XML文件需要写代码进行解析吗? 
      

  2.   

    如果你的xml文件是用ADOQuery导出的,可以用ADOQuery直接Load进来,如果不是,就要用xml组件解析,然后保存到数据库
      

  3.   

    在delphi中有关于xml操作的组件,可以调用。
      

  4.   

    进行分析后,逐句导入,这样比较安全。因为xml如果写的不规范,直接导入会有问题
      

  5.   

    笨点的方法是逐个读取xml的值,然后写进数据库。
      

  6.   


    自己打包的XML結構是什麼樣的,自己再做個解析再轉入就行了。
      

  7.   

    。net就很方便,读取到dataset中
    DataSet ds = new DataSet();
                ds.ReadXml(Server.MapPath("~/bookstore.xml"));再用for循环写入数据库
      

  8.   

    贴出你的XML
    另外,我原来写过的
    procedure DealXml(strXmlName:PChar);
    var
      //根结点和一级子结点
      node,subnode :IXMLNode;
      //一级和二级子结点列表
      nodelist,subnodelist: IXMLNodeList;
      //一级和二级子结点的数目
      subCount,subsubCount: integer;
      j, k:integer;
      //记录条数
      RecCount: Integer;
      //插入数据库的SQL语句
      insertSql: string;
      errstr: string;
      XMLDoc:IXMLDocument;
      qryLogin:TADOQuery;
    begin
      if length(strXmlName) <= 0 then
      begin
        //Application.MessageBox(PChar('传入的XML文件为空'), PChar('错误'), mb_ok + mb_iconerror);
        //writeLog
        Exit;
      end;  XMLDoc:=TXMLDocument.Create(nil);
      XMLDoc.LoadFromFile(strXmlName);
      XMLDoc.Active := true;
      //根结点
      node := XMLDoc.DocumentElement;
      //如果只有根结点的子结点数量不对,说明文件不对
      subCount := node.ChildNodes.Count;
      //需要下载的文件数量是30个,不需要下载的在xml中没有节点
      if subCount<>30 then
      begin
        //WriteLog('下载的xml文件不正确');
        //exit;
      end;
      nodelist := node.ChildNodes;
      subnode := nodelist.Nodes[0];
      subsubcount := subnode.ChildNodes.Count;
      //SYS_User
      if subsubcount > 0 then //如果有记录,就更新到数据库
      begin
        recCount := subsubcount div 19;
        subnodelist := subnode.ChildNodes;
        k := 0;
        for j:=0 to recCount-1 do
        begin
          insertSql:='INSERT INTO SYS_User VALUES (';
          insertSql:=insertSql+subnodelist.Nodes[k].Text+',';      //id
          k:=k+1;
          insertSql:=insertSql+'"'+subnodelist.Nodes[k].Text+'"'+',';  //username
          k:=k+1;
          insertSql:=insertSql+'"'+subnodelist.Nodes[k].Text+'"'+',';  //pwd
          k:=k+1;
          insertSql:=insertSql+subnodelist.Nodes[k].Text+')';  //pwdtype
          k:=k+1;
          with qryLogin do begin
            SQL.Clear;
            sql.Add(insertSql);
            ExecSQL;
          end;
        end;
      end;
      <?xml version="1.0" encoding="GB2312" ?> 
    - <root>
    - <SYS_User>
      <ID>1001</ID> 
      <UserName>Hunter</UserName> 
      <Pwd>DBD5</Pwd> 
      <PwdType>0</PwdType> 
      </SYS_User>
      

  9.   


      <?xml version="1.0" encoding="GB2312" ?> 
      <root>
        <SYS_User>
          <ID>1001</ID> 
          <UserName>Hunter</UserName> 
          <Pwd>DBD5</Pwd> 
          <PwdType>0</PwdType> 
        </SYS_User>
      </root>
      

  10.   


      dsXML.SaveToFile('TableName.xml',pfXML);
      dsXML.LoadFromFile('TableName.xml');