在线等D7+SQL SERVER 2000的问题.
ADOQuery1,ADOQuery2,DataSource1,DataSource2   1连1 2连2
数据库两个表
T1
  ID BIGINT  主键
  DATA CHAR(10)
T2
  ID BIGINT  主键
  T1ID BIGINT
  DATA CHAR(10)ADOQuery2.DataSource:=DataSource1;ADOQuery1.SQL, SELECT * FROM T1 WHERE DATA='OK'
ADOQuery2.SQL, SELECT * FROM T2 WHERE T1ID= :ID and DATA='OK'运行后两表都正常打开.第一个表一切正常,当第二个表T2添加记录的时候出现错误:
Cannot access field'ID'as type Variant.我想不出我的程序哪错啦?我真不理解为啥出这个错.我这个有急用啊.求大侠啦.....呜呜.我哭啦.

解决方案 »

  1.   

    用insert吧 或者强行给ID参数指定类型
    不要用asValue,因为你的问题不是很详细
    只能给点建议拉
      

  2.   

    T2添加记录的错误:不知道您是如何添加记录的。这种情况可能是:
    T2 ID BIGINT(主键),不允许有空值,或者非唯一性的值,也不允许非整型的值。
      

  3.   

    ADOQuery2.DataSource:=DataSource1;
    ??
    你是不是把数据源搞错了
      

  4.   

    to  :ID 是怎么赋值得?
    一点插入就出错啦.还没到负值的地方呢.to 强制指定ID类型
    怎么强制,我就直接用DELPHI提供的添加删除记录按钮.to 你是不是把数据源搞错了
    DataSource1.DataSet:=ADOQuery1;
    DataSource2.DataSet:=ADOQuery2;
    ADOQuery2.DataSource:=DataSource1;
    这样错了吗?我插入记录没有用代码. 都是用的感知控件.
      

  5.   

    ADOQuery2.SQL, SELECT * FROM T2 WHERE T1ID= :ID and DATA='OK'
    adoquery2.parameters[0].value:=id的值;
      

  6.   

    两个ID字段都是自动编号的.
    但是我还没有到POST的时候,就是在插入前就出错了.
    也就是插入操作根本就没成功.就出错了.
    adoquery2.parameters[0].value:=id的值;这条语句根本执行不到就挂了.
    我用的全是自动感知控件,就是说我一行代码都没写.除了选择SQL语句.
    我的实例更复杂些.不过原理相同.
      

  7.   

    你的问题在id类型为bigInt,改为Int型,可能bde在bigInt转换时不兼容
    我用两adoquery试了下没有问题;
    注意两点:1.两个adoQuery的字段为永久性字段
             2.从adoQuery的字段id属性readonly =false
    你可以试一下