起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 179|回复: 7

【结】给数据集TQuery插入数据出错!**

[复制链接]
发表于 2008-7-7 10:28:37 | 显示全部楼层 |阅读模式
我给数据集插入数据的代码如下,错误如图
   QueryFS.ConnectionString := 'DataBaseURL=Biz:OABGZDHXTBGZDHSJK.DATABASE';
     QueryFS.CommandText := 'Select * from [3gfax_SendFaxInfo]';
     QueryFS.Open;

     for i:=0 to len-1 do
     begin
                 QueryFS.Insert;
                 QueryFS.FieldByName('ListNo').AsInteger := max1;
                 QueryFS.FieldByName('TaskID').AsInteger := Random(10000);
                 QueryFS.FieldByName('SenderName').AsString := myform.Fname;
                 QueryFS.FieldByName('RcverName').AsString := myform.Sname;
                 QueryFS.FieldByName('FaxNum').AsString := myform.CZnumber;
                 QueryFS.FieldByName('SendFaxNum').AsInteger := 0;
                 QueryFS.FieldByName('Status').AsInteger := 0;
                 QueryFS.FieldByName('TransStatus').AsInteger := 0;
                 QueryFS.FieldByName('TransFileName').AsString := 'fSent'+myform.File1;
                 QueryFS.FieldByName('TransFilePath').AsString := myform.Filename;

                 QueryFS.FieldByName('UserID').AsString := '0';
                 QueryFS.FieldByName('FileSize').AsInteger := 0;
                 QueryFS.FieldByName('SubTime').AsDateTime := Sysutils.Now;
                 QueryFS.FieldByName('SendTime').AsDateTime := Sysutils.Now;
                 QueryFS.FieldByName('SchSendTime').AsDateTime := Sysutils.Now;

                 QueryFS.FieldByName('FileName').AsString := 'fSent'+myform.File1;
                 QueryFS.FieldByName('FilePath').AsString := myform.Filename;
                 QueryFS.FieldByName('SendDescribe').AsString := '0';
                 QueryFS.FieldByName('UserName').AsString := '0';
                 QueryFS.FieldByName('LogonName').AsString := '0';
                 QueryFS.FieldByName('Ex1').AsString := '0';
                 QueryFS.FieldByName('Ex2').AsString := '0';
                 QueryFS.FieldByName('Ex3').AsString := '0';
                 QueryFS.FieldByName('Ex4').AsString := '0';
                 QueryFS.FieldByName('Ex5').AsString := '0';


                 max1 := max1 + 1;
     end;

     QueryFS.ApplyUpdates;

错误.jpg

19.71 KB, 下载次数: 119

回复

使用道具 举报

 楼主| 发表于 2008-7-7 10:31:20 | 显示全部楼层
在QueryFS.ApplyUpdates;  这里报的错!
回复 支持 反对

使用道具 举报

发表于 2008-7-7 10:37:54 | 显示全部楼层
应该是更新语句的语法错误。
楼主,自己定义一下更新选项的更新语句
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-7 10:42:43 | 显示全部楼层
用QueryFS.Insert;  这样不得?
回复 支持 反对

使用道具 举报

发表于 2008-7-7 11:17:11 | 显示全部楼层
NameSpace: Business.Data
--------------------------------------------------------------------------------
TDataSetUpdateOptions = class(Business.System.TPersistent)
protected
  procedure AssignTo(Dest: Business.System.TPersistent); override;
  function GetValue: TObject; virtual;
public
  constructor create;
  procedure Assign(Source: Business.System.TPersistent); override;
  procedure Destroy; override;
  function IsStored: Boolean;
  property AllowMultiRecordUpdates: Boolean;
  property DeleteSQL: string;
  property InsertSQL: string;
  property UpdateSQL: string;

  property Enabled: Boolean;
  property Fields: TFieldUpdateOptionsConnection;
    property ResolveMode: TResolveMode;
  property SQL[TUpdateKind]: string;
  property UpdateMode: TUpdateMode;
  property Value: TObject;
end;
回复 支持 反对

使用道具 举报

发表于 2008-7-7 11:18:57 | 显示全部楼层
QueryFS.Insert 是插入一条记录,QueryFS.ApplyUpdates 是根据QueryFS定义的提交SQL来做的,
例如 给 QueryFS.Insert后,给ZD1 赋值了1,但QueryFS 的提交SQL中没有定义更新ZD1,那么ZD1的值赋与没赋对更新来说都是一样的,也就是说最终不会更新ZD1的值

你的 QueryFS 是直接界面上拖上去的,还是动态创建的,检查一下提交的SQL语句
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-7 11:59:33 | 显示全部楼层
哦,谢谢你们,我的搞定了,是物理表里有个listNo字段属性的标识选择了“是”,也就是自动添加,不给他复值就可以了!
回复 支持 反对

使用道具 举报

发表于 2008-7-7 12:18:41 | 显示全部楼层
ok
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 22:49 , Processed in 0.043664 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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