表结构如下:
CREATE TABLE [dbo].[CardSet] (
[CardCode] [bigint] NOT NULL ,
[UserCode] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[UserName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[IdCard] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[HomeAddr] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[SendCardMan] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[SendCardTime] [datetime] NULL ,
[ChangeCardMan] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[changecardtime] [datetime] NULL ,
[CardState] [tinyint] NULL ,
[CardType] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[DoorRight] [bit] NULL ,
[linesmanright] [bit] NULL ,
[WorkRight] [bit] NULL ,
[UserFlag] [tinyint] NULL ,
[DeptCode] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[DeptName] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Memo] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]代码如下
T_usercardset.Close;
T_usercardset.Open;
if T_usercardset.Locate('cardcode',123 , []) then
begin
application.MessageBox('已存在该卡号!请使用修改功能', '信息提示:', mb_ok);
exit;
end; t_usercardset.close;
t_usercardset.open;
t_usercardset.Last; T_usercardset.Insert;
CardCode :=123 ;
//T_usercardset.FieldValues['cardcode'] := CardCode;
t_usercardset.fieldbyname('cardcode').asfloat:=cardcode; //cardcode:int64 T_usercardset.FieldValues['usercode']:='aaa'; {
T_usercardset.FieldByName('username').asstring :='aaa';
T_usercardset.FieldByName('IDCard').asstring :='aaa';
T_usercardset.FieldByName('HomeAddr').asstring := 'aaa'; //T_usercardset.FieldByName('sendcardman').asstring := trim(g_sUser);
//T_usercardset.FieldByName('sendcardtime').asdatetime := now(); T_usercardset.FieldByName('changecardman').asstring :='aaa';
T_usercardset.FieldByName('changecardtime').asdatetime := now(); T_usercardset.FieldByName('cardtype').AsString := '2'; T_usercardset.FieldByName('UserFlag').AsInteger := 1;
T_usercardset.fieldbyname('deptcode').asstring := 'aaa';
T_usercardset.fieldbyname('deptname').asstring := 'aaa'; // T_usercardset.FieldByName('memo').asstring := 'aaa';
}
//t_usercardset.Last;
try
T_usercardset.Post;
except
T_usercardset.Cancel;
T_usercardset.Close;
ShowMessage('error1'); // Added by admin 2006-6-12 18:36:21
exit;
end; T_usercardset.Close;
运行以上代码在有些机器上会出现exception class Evariantbadvartypeerror with message 'invalid varianttype ' process stopped,use step or run to continue.
CREATE TABLE [dbo].[CardSet] (
[CardCode] [bigint] NOT NULL ,
[UserCode] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[UserName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[IdCard] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[HomeAddr] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[SendCardMan] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[SendCardTime] [datetime] NULL ,
[ChangeCardMan] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[changecardtime] [datetime] NULL ,
[CardState] [tinyint] NULL ,
[CardType] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[DoorRight] [bit] NULL ,
[linesmanright] [bit] NULL ,
[WorkRight] [bit] NULL ,
[UserFlag] [tinyint] NULL ,
[DeptCode] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[DeptName] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Memo] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]代码如下
T_usercardset.Close;
T_usercardset.Open;
if T_usercardset.Locate('cardcode',123 , []) then
begin
application.MessageBox('已存在该卡号!请使用修改功能', '信息提示:', mb_ok);
exit;
end; t_usercardset.close;
t_usercardset.open;
t_usercardset.Last; T_usercardset.Insert;
CardCode :=123 ;
//T_usercardset.FieldValues['cardcode'] := CardCode;
t_usercardset.fieldbyname('cardcode').asfloat:=cardcode; //cardcode:int64 T_usercardset.FieldValues['usercode']:='aaa'; {
T_usercardset.FieldByName('username').asstring :='aaa';
T_usercardset.FieldByName('IDCard').asstring :='aaa';
T_usercardset.FieldByName('HomeAddr').asstring := 'aaa'; //T_usercardset.FieldByName('sendcardman').asstring := trim(g_sUser);
//T_usercardset.FieldByName('sendcardtime').asdatetime := now(); T_usercardset.FieldByName('changecardman').asstring :='aaa';
T_usercardset.FieldByName('changecardtime').asdatetime := now(); T_usercardset.FieldByName('cardtype').AsString := '2'; T_usercardset.FieldByName('UserFlag').AsInteger := 1;
T_usercardset.fieldbyname('deptcode').asstring := 'aaa';
T_usercardset.fieldbyname('deptname').asstring := 'aaa'; // T_usercardset.FieldByName('memo').asstring := 'aaa';
}
//t_usercardset.Last;
try
T_usercardset.Post;
except
T_usercardset.Cancel;
T_usercardset.Close;
ShowMessage('error1'); // Added by admin 2006-6-12 18:36:21
exit;
end; T_usercardset.Close;
运行以上代码在有些机器上会出现exception class Evariantbadvartypeerror with message 'invalid varianttype ' process stopped,use step or run to continue.
和t_usercardset.fieldbyname('cardcode').asfloat:=cardcode;
不相符!
定义的是bigint
插入的是float
数据类型不同,当然是不能插入啦!
你去试试看可不可以?