---库结构如下
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t1]
GOCREATE TABLE [dbo].[t1] (
[id] [bigint] NOT NULL ,
[rname] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[small] [int] NULL ,
[zdke] [bigint] NULL ,
[def] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[t1] [datetime] NULL ,
[t2] [datetime] NULL 
) ON [PRIMARY]
GOALTER TABLE [dbo].[t1] ADD 
CONSTRAINT [PK_t1] PRIMARY KEY  CLUSTERED 
(
[id]
)  ON [PRIMARY] 
GO
D代码如下:procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  with ADOQuery1 do begin
    close;
    SQL.Text := 'select  * from t1';
    open;
    append;
    for i:=0 to Fields.count-1 do begin
      case Fields[i].DataType of
        ftString:Fields[i].AsString :=  '111';
        ftWideString:Fields[i].AsString :=  '111';
        ftDate:Fields[i].AsDateTime :=  date;
        ftDateTime:Fields[i].AsDateTime :=  Date;
        ftInteger:Fields[i].AsInteger :=  123;
        ftLargeint:TLargeintField(Fields[i]).AsLargeInt :=  123;
      else
        Fields[i].AsInteger :=  123;
      end ;    end ;
  end ;end;procedure TForm1.Button2Click(Sender: TObject);
begin
  ADOQuery1.Post;   // ~~~~~~~~~~~出现 EvariantBadVarTypeError: Invalid variant type
end;多简单的代码呀 不知道错在哪 ...

解决方案 »

  1.   


          case Fields[i].DataType of
            ftString:Fields[i].Value:=  '111';
            ftWideString:Fields[i].Value:=  '111';
            ftDate:Fields[i].Value:=  date;
            ftDateTime:Fields[i].Value:=  Date;
            ftInteger:Fields[i].Value:=  123;
            ftLargeint:Fields[i].Value:=  123;
          else
            Fields[i].Value:=  123;
          end ; 
      

  2.   

    难道D里面的主键不支持 bigint?
      

  3.   

    bigint 的字段 改成 int 程序就正常了
    但是 MSSQL的bigint DELPHI中不能用?
      

  4.   

    同样的代码
       window2003正常
       window2000 adv server 出错~~~~~~~~~KAO
      

  5.   

    相同的代码,测试正常。Windows2000 Server, SQL SERVER2000 SP4。
    建议你安装SQL SERVER补丁以及最新的MDAC看看。
      

  6.   

    刚装完SQL 2000 SP4 问题依然 ...
      

  7.   

    window 2008
    XP
    都正常
    是不是现在没人用这个 windows 2000 server 了
      

  8.   

    基本上,可以确定是你的开发环境的问题。
    什么地方的问题,恐怕就要你自己想办法了。反正所有补丁都打上(操作系统的,SQL SERVER的,DELPHI的),还是不行就重装系统