|

楼主 |
发表于 2008-4-29 15:18:32
|
显示全部楼层
插入数据时程序就停了,但是不出异常,也不出错?
谢谢,xml部分好了。但是插入数据库时出错。弄了很长时间也没有找到原因,请帮下忙。
程序主要如下,
procedure TBJJKGNTCPFS.xmlMsg2DB(xmlData:String);
var
// xmlDoc:TXMLDocument;
xmlDoc:IXMLDOMDocument;
rootNode,curNode:IXMLDOMNode;
i:Integer;
s:String;
begin
Borland.Delphi.ActiveX.CoInitialize(nil);
if not dsb_Alarm.DataSet.Active then
begin
dsb_Alarm.DataSet.Open;
end;
dsb_Alarm.DataSet.First;
xmlDoc:= ComObj.CreateOleObject('Microsoft.XMLDOM') as IXMLDOMDocument;
//xmlDoc.LoadFromXML(xmlData);// delphi
xmlDoc.loadXML(xmlData);
rootNode:=xmlDoc.DocumentElement as IXMLDOMNode;
curNode:=xmlDoc.DocumentElement.getElementsByTagName('alarmItem').item[0];
try
if curNode <> nil then
begin
dsb_Alarm.DataSet.Insert; //程序运行到这儿就没有反应了,也不出错,也不停止,也没有异常
for i :=0 to curNode.ChildNodes.Get_length -1 do
begin
s:=s+curNode.ChildNodes.Get_text+',';
dsb_Alarm.DataSet.FieldByName(curNode.ChildNodes.Get_baseName).AsString:=curNode.ChildNodes.get_text;
end;
dsb_Alarm.DataSet.ApplyUpdates;
edtXmlData.Text:=s;
dsb_Alarm.DataSet.Refresh;
DataGrid1.Refresh;
end;
except
on e:exception do
jsDialogs.ShowMsg(e.Message,'Xml-->DataBase Failed!');
end;
end;
我写了一个测试数据库的代码,如下,但是却可正确插入数据的,
procedure TBJJKGNTCPFS.Button1Click(Sender: TObject);
begin
dsb_Alarm.DataSet.First;
dsb_Alarm.DataSet.Insert;
dsb_Alarm.dataset.FieldByName('F_Alarm_ID').AsString:='ID_0001';
dsb_Alarm.dataset.FieldByName('F_Device_ID').AsString:='Device_0001';
dsb_Alarm.DataSet.ApplyUpdates;
end; |
|