我新建一个工程,加入一个DataModule,DataModule中只有一个adoyyb:TADOTABLE控件,实现其中一个方法如下:procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin
  adoyyb.ConnectionString :='Provider=OraOLEDB.Oracle.1;Password=yyb;Persist Security Info=True;User ID=yyb;Data Source=orayyb;Extended Properties=';
  adoyyb.TableName :='ORDERS';
  try
    adoyyb.Open;
  except
    MessageBox(0,‘error’,MB_OK);
  end;
end;为何运行老是出错,还要设置什么吗?
出错信息如下:
Project Project1.exe raised exception class EVariantError with
message 'Invalid variant operation'
请指点,谢谢!

解决方案 »

  1.   

    你把try except 去掉,然后再试
      

  2.   

    可能是这出错,你不妨先用属性编辑器设置CONNECTIONSTRING,TEST成功以后再把它剪切到上面去就不容易出错了。                //adoyyb.ConnectionString :='Provider=OraOLEDB.O//racle.1;Password=yyb;Persist Security Info=True;User ID=yyb;Data //Source=orayyb;Extended Properties=';
      

  3.   

    procedure TDataModule1.DataModuleCreate(Sender: TObject);
    begin
      adoyyb.ConnectionString :='Provider=OraOLEDB.Oracle.1;Password=yyb;Persist Security Info=True;User ID=yyb;Data Source=orayyb;Extended Properties=';
      adoyyb.TableName :='yyb.ORDERS';
      try
        adoyyb.Open;
      except
        MessageBox(0,‘error’,MB_OK);
      end;
    end;如果改成这样还是没有辙,那就你的表名出了毛病
      

  4.   

    guorui_wh(Re) 的方法是可以的,为什么一定要加用户名?
     在Access2000中不用的啊。
      

  5.   

    1.连接是否正确,去test一下
    2.tablename不需要在连接中指出,可以去掉,用的时候再加。
    经过以上两部,应该没有错了,你试试
      

  6.   

    具体问题具体分析,Oracle是需要用户名的。
      

  7.   

    oracle 中是要加用户名的。同意!