delphi写xml文件的汉字数据到sql数据库中变乱码
<?xml version="1.0" ?>
<ROWDATA>
<ROW>
<SHBZM>350420501225003</SHBZM>
<JFNY>200712</JFNY>
<JFDWM>58220000904</JFDWM>
<XM>黄仁国</XM> //这是一个姓名可以正常显示在Memo中.
<BQJFYS>12</BQJFYS>
<BQJFGZJS>7450</BQJFGZJS>
<BJLNYS>0</BJLNYS>
<BJLNGZJS>0</BJLNGZJS>
<YDZRYS>0</YDZRYS>
<YDZRJE>0</YDZRJE>
</ROW>
代码:
try
MonitorMsg('开始处理');
ActiveX.CoInitialize(nil);
DM.ADOConn.Connected := true;
Main.Form1.xmldocument1.LoadFromFile(Main.Form1.Edit1.text);
root := Main.Form1.xmldocument1.DocumentElement;
lei := root.ChildNodes.First;
SQL := 'insert into %s.DBO.%s values';
SQLstr := Format(SQL, [Main.Form1.ComboBox1.Text, Main.Form1.combobox3.Text]);
case Main.Form1.ComboBox3.ItemIndex of
0: SQLstr := SQLstr + T_QZSBJFFJ_valu;
1: SQLstr := SQLstr + T_QZSBJFF_valu;
2: SQLstr := SQLstr + T_QZSBGRZH_valu;
end;
MonitorMsg('共有'+IntToStr(lei.ChildNodes.Count)+'列数据.');
while lei <> nil do
begin
if lei.NodeName = 'ROW' then
begin
if lei.ChildNodes.First <> nil then
begin
for I := 0 to lei.ChildNodes.Count - 1 do
begin
Dt := FormatDateTime('YYYY-MM-DD HH:MM:SS', Now);
MonitorMsg(Dt +' 读取数据: '+ lei.ChildNodes.Get(I).NodeValue); //写到Memo正常显示
end;
case Main.Form1.ComboBox3.ItemIndex of
0:SQLSRC := format(SQLstr,
[lei.ChildNodes.Get(0).NodeValue,
lei.ChildNodes.Get(1).NodeValue,
lei.ChildNodes.Get(2).NodeValue,
lei.ChildNodes.Get(3).NodeValue,
StrToInt(lei.ChildNodes.Get(4).NodeValue),
StrToFloat(lei.ChildNodes.Get(5).NodeValue),
StrToInt(lei.ChildNodes.Get(6).NodeValue),
StrToFloat(lei.ChildNodes.Get(7).NodeValue),
StrToInt(lei.ChildNodes.Get(8).NodeValue),
StrToFloat(lei.ChildNodes.Get(9).NodeValue)]);
1:SQLSRC := format(SQLstr,
[lei.ChildNodes.Get(0).NodeValue,
lei.ChildNodes.Get(1).NodeValue,
lei.ChildNodes.Get(2).NodeValue,
StrToFloat(lei.ChildNodes.Get(3).NodeValue),
StrToFloat(lei.ChildNodes.Get(4).NodeValue),
StrToFloat(lei.ChildNodes.Get(5).NodeValue),
StrToFloat(lei.ChildNodes.Get(6).NodeValue)]);
2:SQLSRC := format(SQLstr,
[lei.ChildNodes.Get(0).NodeValue,
lei.ChildNodes.Get(1).NodeValue,
lei.ChildNodes.Get(2).NodeValue,
StrToInt(lei.ChildNodes.Get(3).NodeValue),
StrToFloat(lei.ChildNodes.Get(4).NodeValue),
StrToInt(lei.ChildNodes.Get(5).NodeValue),
StrToFloat(lei.ChildNodes.Get(6).NodeValue),
StrToFloat(lei.ChildNodes.Get(7).NodeValue),
StrToFloat(lei.ChildNodes.Get(8).NodeValue),
StrToFloat(lei.ChildNodes.Get(9).NodeValue),
StrToInt(lei.ChildNodes.Get(10).NodeValue),
StrToFloat(lei.ChildNodes.Get(11).NodeValue),
StrToFloat(lei.ChildNodes.Get(12).NodeValue),
StrToInt(lei.ChildNodes.Get(13).NodeValue),
StrToFloat(lei.ChildNodes.Get(14).NodeValue),
StrToInt(lei.ChildNodes.Get(15).NodeValue),
StrToFloat(lei.ChildNodes.Get(16).NodeValue),
StrToFloat(lei.ChildNodes.Get(17).NodeValue)]);
end;
MonitorMsg(Dt +' 正在写入数据库: '+ SQLSRC);
ExecSQL(SQLSRC, Dm.ADOQ1);
end;
lei := lei.NextSibling;
end;
end;
相关推荐
用Delphi打开一个数据库型的XML文件..rar
用Delphi打开一个数据库型的XML文件..rar
Delphi数据库开发必备:SDAC 4.3高效连接SQL Server实战
在Delphi开发环境中,数据库连接组件是实现应用程序与数据库交互的核心模块。传统的数据库访问方式如BDE(Borland Database Engine)和ADO(ActiveX Data Objects)虽然在早期项目中被广泛使用,但随着数据库规模的扩大和性能要求的提升,其局限性逐渐显现,例如跨平台支持差、连接效率低、维护成本高等问题。为了解决这些问题,开发者逐渐转向功能更强大、性能更优越的第三方数据库连接组件,如SDAC(SQL Server Data Access Components)。
Delphi通过WebService访问数据库
Delphi通过WebService访问数据库. 1.查询数据 procedure TForm1.Button1Click(Sender: TObject); var ls_Table: string; ls_Service: Service1Soap; begin ls_Service := Buf_GetBuleService; ls_Table := 'Customers'; ClientDataSet1.XMLData := ls_Service.Buf_GetADONetToCDSXml('Northwind',ls_Table,'select * from '+ls_Table); end; 2.更新数据 procedure TForm1.Button2Click(Sender: TObject); var ls_Table: string; ls_Service: Service1Soap; begin ls_Service := Buf_GetBuleService; ls_Table := 'Customers'; if ClientDataSet1.State in [dsEdit,dsInsert] then ClientDataSet1.Post; if ClientDataSet1.ChangeCount>0 then ls_Service.Buf_PutCDSXmlToADONet('Northwind',ls_Table,ClientDataSet1.XMLData); end;
delphi源码本地备份sql数据库
delphi源码本地备份sql数据库 列出本地sql所有数据库
delphi_xml.rar_delphi XML_delphi_xml_delphi解析xml_dephi xml数据库_xm
本文是一个应用delphi解析xml文档然后插入数据库的完整的例子


数据库相关
