var tmpquery2:tadoquery
tmpfile:string
tmptable:tadotable
begin
if application.MessageBox( '导入答案将会清空以前的考生答案,确定是否继续? ', '提醒 ',MB_OKCANCEL or MB_ICONWARNING)=mrok then
begin
IF BSopen.Execute then
try
try
begin
tmpfile:=bsopen.FileName
tmptable:=tadotable.Create(self)
tmpquery2:=tadoquery.Create (self)
tmpquery2.Connection :=dm.connect
tmptable.Connection :=dm.connect
tmptable.TableName:= 'exam_answer '
with tmpquery2 do
begin
close
sql.Clear
sql.Add( 'delete * from exam_answer ')
execsql
end
tmptable.LoadFromFile(tmpfile)
tmptable.First
while not tmptable.Eof do
begin
with tmpquery2 do
begin
close
sql.Clear
sql.Add( 'insert into exam_answer(kh,xm,sj_id,sjts,tk_id,stbh,tx,daa,dab,dac,dad,dae,daf,tkda,df) values(:kh,:xm,:sj_id,:sjts,:tk_id,:stbh,:tx,:daa,:dab,:dac,:dad,:dae,:daf,:tkda,:df) ')
parameters.ParamByName( 'kh ').Value :=tmptable.fieldbyname( 'kh ').AsString
parameters.ParamByName( 'xm ').Value :=tmptable.fieldbyname( 'xm ').AsString
parameters.ParamByName( 'sj_id ').Value :=tmptable.fieldbyname( 'sj_id ').AsString
parameters.ParamByName( 'tx ').Value :=tmptable.fieldbyname( 'tx ').AsString
parameters.ParamByName( 'sjts ').Value :=tmptable.fieldbyname( 'sjts ').AsString
parameters.ParamByName( 'tk_id ').Value :=tmptable.fieldbyname( 'tk_id ').AsString
parameters.ParamByName( 'stbh ').Value :=tmptable.fieldbyname( 'stbh ').AsString
parameters.ParamByName( 'daa ').Value :=tmptable.fieldbyname( 'daa ').AsBoolean
parameters.ParamByName( 'dab ').Value :=tmptable.fieldbyname( 'dab ').asboolean
parameters.ParamByName( 'dac ').Value :=tmptable.fieldbyname( 'dac ').AsBoolean
parameters.ParamByName( 'dad ').Value :=tmptable.fieldbyname( 'dad ').AsBoolean
parameters.ParamByName( 'dae ').Value :=tmptable.fieldbyname( 'dae ').AsBoolean
parameters.ParamByName( 'daf ').Value :=tmptable.fieldbyname( 'daf ').AsBoolean
parameters.ParamByName( 'tkda ').Value :=tmptable.fieldbyname( 'tkda ').AsString
parameters.ParamByName( 'df ').Value :=tmptable.fieldbyname( 'df ').AsString
execsql
end
tmptable.next
end
showmessage( '导入完成,累死了... ')
end
finally
tmptable.Free
tmpquery2.Free
end
except
showmessage( '导入未完成。:( ')
end
end
end
如果单纯的LOAD出来,它是不直接写到后台数据表的。分析下源码就知道它LOAD之前先CLOSE了数据表。只有一条一条增加到后台数据表了。
1,用 fso 遍历 xml 文件所在目录,获取文件名并用英文逗号隔开;2,用split函数将文件名用英文逗号分离;
3,用fso读取每一文件内容;
4,将读取的内容写入数据库;
1 读入文件内容,将xxx,xxx,xxx的格式保存到某个字符串变量,2 用Stringstoken将这些变量转换成数组保存.
3 XML的文件读写一般都用dom4j来实现,用dom4j将数组中的内容按照你所需要的格式生成xml文件,给那个方法调用即可.
DOM4J的一个例子.
import org.dom4j.Attribute
import org.dom4j.DocumentException
import org.dom4j.DocumentHelper
import org.dom4j.Element
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)