procedure TForm1.Button1Click(Sender: TObject);
var
ADOC: TADOConnection;
ConStr:widestring;
ADOQ: TADOQuery;
begin
    ADOC:=TADOConnection.create(nil);
    adoq:=TADOQuery.Create(nil);
    ConStr:=
      'Provider=MSDASQL.1;Password=lover;Persist Security Info=True;Use' +
      'r ID=root;Extended Properties="DRIVER={MySQL ODBC 3.51 Driver};O' +
      'PTION=1;PORT=0;SERVER=localhost;datebase=lover;"' ;
    adoc.ConnectionString:=ConStr;
    adoc.Open;
    adoq.Connection:=adoc;
    adoq.SQL.Add('SELECT * FROM t_user');
    adoq.Open;
    adoq.Close;
    adoc.Close;end;end.我这样写了 为什么 他出现异常 说 no database selected 怎么回事

解决方案 »

  1.   

    放置一个TADOConnection到Form上,双击之,把你的ConStr复制到连接字串里,测试连接看能否连通数据库
      

  2.   

    为什么要把联接也要自动创建呢,这样每次执行都与数据库进行握手,会消很多资源的,服务器压力大,建一个datamodule,把connection 放在这里面,所有的query都与之相联。
    看一下你的联接字符串是否正确
    procedure TForm1.Button1Click(Sender: TObject);
    const
      constr='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=master';
    var
    ADOC: TADOConnection;
    ADOQ: TADOQuery;
    begin
        ADOC:=TADOConnection.create(nil);
        adoq:=TADOQuery.Create(nil);
        try
          adoc.ConnectionString:=ConStr;
          adoc.Open;
          adoq.Connection:=adoc;
          adoq.SQL.Text := 'select * from a';
          adoq.Open;
          showmessage('OK');
        finally
          adoq.Free;//创建对像要记得释放
          ADOC.Free;
        end;end;
      

  3.   

    adoc.ConnectionString:=ConStr;
        adoc.Open;adoc不需要Open动态创建的要释放