起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: lili7912

x32617导入出现数据类型不一致

[复制链接]
发表于 2007-3-29 14:53:28 | 显示全部楼层
来了,正在测试,有结果马上跟贴,不过感觉应该是问题
回复 支持 反对

使用道具 举报

发表于 2007-3-29 16:23:34 | 显示全部楼层
我在Oracle10.1上测试了,空的日期是可以导入进来,不会报错
回复 支持 反对

使用道具 举报

发表于 2007-3-29 17:02:52 | 显示全部楼层
你这样做一个简单的带日期时间字段的表,然后不要给日期时间赋值,用简单的两句话进行导入和导出

导入  dsData.DataSet.SaveToFile('E:\aa.XML',TDatapacketFormat.dfXML)
导出  dsData.DataSet..LoadFromFile('E:\aa.XML');

这样看看是否正常
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-30 08:55:55 | 显示全部楼层
我正是这样做的
导出
procedure TYWGNZCT.btExportClick(Sender: TObject);
begin
  query1.CommandText:='select * from table_bmkzb where dwdm=''S11JH001''';
  query1.Open;
  query1.SaveToFile('E:\table_bmkzb.xml',TDataPacketFormat.dfXML);
end;

导入
procedure TYWGNZCT.btImportClick(Sender: TObject);
var
  I,j:Integer;
  lValues,lFields,lInsertSQL:string;
  lFieldList:TFieldlist;
  lStr:string;
begin
  Query1.LoadFromFile('E:\table_bmkzb.xml');
//Query1.LoadFromFile('E:\测试\zjcs\table_sbjbxx.xml');
  //Query1.LoadFromFile('E:\table_sbjbxx.xml');
  lFields:='';
  lValues:='';
  for i:=0 to Query1.FieldCount-1 do
  begin
    if (i<Query1.FieldCount-1) then
    begin
     lFields:=lFields+Query1.FieldList.FieldName+',';
     lValues:=lValues+':'+Query1.FieldList.FieldName+',' ;
    end
    else begin
      lFields:=lFields+Query1.FieldList.FieldName ;
      lValues:=lValues+':'+Query1.FieldList.FieldName;
    end
  end;
  lFields:='('+lFields+')';
  lValues:='Values('+lValues+')';
  //lInsertSQL:='Insert into table_sbjbxx '+lFields+' '+lValues;
  lInsertSQL:='Insert into table_bmkzb '+lFields+' '+lValues;
  QueryInsert.CommandText:=lInsertSQL;
  Dialogs.ShowMessage(QueryInsert.CommandText) ;
  lFieldList:=Query1.FieldList;
  While not Query1.Eof do
  begin
    for I := 0 to lFieldList.Count - 1 do
    begin
      QueryInsert.Params.DataType := lFieldList[I].DataType;{增加}
      QueryInsert.Params.ParamType := TParamType.ptInput;{增加}
      QueryInsert.Params.AssignFieldValue(lFieldList[I],lFieldList[I].Value);
    end;
    QueryInsert.Execute;//运行该语句时出错
    Query1.Next;
  end ;

出现一楼的错误,因为导出的记录只有一条,发现日期为空值,然后直接在table_bmkzb.xml加入
QSRQ="1990-1-1"再导入则没有问题。
回复 支持 反对

使用道具 举报

发表于 2007-3-30 11:52:55 | 显示全部楼层
收到,稍后跟贴告知。
回复 支持 反对

使用道具 举报

发表于 2007-3-30 16:22:02 | 显示全部楼层
我测试了你的代码了,但跟你的错误不一样,

周一给你结果
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-3 08:47:25 | 显示全部楼层
有结果吗???
回复 支持 反对

使用道具 举报

发表于 2007-4-3 11:29:32 | 显示全部楼层
来了,是缺陷,已经提交

现在可以用方法绕开,
例如日期为空的时候不传也不赋值,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-3 15:23:29 | 显示全部楼层
不传也不赋值,有可能保留上一条记录的日期值,还是等图片字段问题解决一起解决再说。
回复 支持 反对

使用道具 举报

发表于 2007-4-3 16:15:36 | 显示全部楼层
好,但近期应该不会去解决这些
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-18 21:45 , Processed in 0.043574 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表