现有源码如下:
var
  Form1: TForm1;
  con,rs:variant;
implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
  con:=createoleobject('adodb.connection');
  rs:=createoleobject('adodb.recordset');
  con.open('provider=msdasql;uid=sa;pwd=;data source=bar');
  self.ADOTable1.ConnectionString:='provider=msdasql;uid=sa;pwd=;data   source=bar';
  self.ADOTable1.TableName:='menu';
  self.adoTable1.open;
end;
编译时提示错误:
  Project  Project1.exe raised exception class EVariantError with message 'Invaild variant type conversion'.Process stopped. Use Step or Run to continue.
但再次编译能运行
请各位大虾高手指点!!!
先谢了!!!!!!!

解决方案 »

  1.   

    可能与DataWare Control有关。去掉所有与AdoTable1关联的DBedit,DBGrid之类的控件,在试试。
      

  2.   

    我没有加DBedit,DBGrid之类的控件,只是一个Form 和 ADOTable1
      

  3.   

    我把Delphi中自己生成的ConnectionString代替原来的ConnectionString,就没发生这个问题,是不是ConnectionString的问题,是什么问题呢?Delphi中自己生成的ConnectionString:
           'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=bar'原来的ConnectionString:
          'provider=msdasql;uid=sa;pwd=;data   source=bar'
      

  4.   

    试试后面这三句,前面的好像多余。
     self.ADOTable1.ConnectionString:='provider=msdasql;uid=sa;pwd=;data   source=bar';
      self.ADOTable1.TableName:='menu';
      self.adoTable1.open;
      

  5.   

    : chechy(简简单单的活) :
       按你说的还是原来的错误,
       对我的两个ConnectionString 的比较有何看法?
      

  6.   

    这是delphi的bug,你可以删除代码下面的除*.pas,*.dpr,*.dfm,*.bpg以外的文件,再重新生成看看?
      

  7.   

    chpeng(海鸥) :
       那为什么我用delphi自己生成的ConnectionString 又没问题???