我创建了数据库如下:
procedure TForm1.Button1Click(Sender: TObject);
var
  ovCreateAccess : OleVariant ;
begin
  //通过建立ADOX 对象进行访问
  ovCreateAccess := CreateOleObject( 'ADOX.Catalog' ) ;
  //通过OLE方式创建Access97格式数据库
  ovCreateAccess.Create( 'Provider = Microsoft.Jet.OLEDB.3.51; Data Source = f:\lg97.mdb' ) ;
  //通过OLE方式创建Access2k格式数据库
  ovCreateAccess.Create( 'Provider = Microsoft.Jet.OLEDB.4.0; Data Source = f:\lg2k.mdb' ) ;
end;
但是怎么在数据库lg97或者lg2k里创建需要表,请举例子,好么?
谢谢!

解决方案 »

  1.   

    uses  ComObj;  
     
    function  CreateDatabase(mDatabaseName:  string):  Boolean;  
    var  
       CreateAccess:  OLEVariant;  
    begin  
       Result  :=  False;  
       try  
           CreateAccess  :=  CreateOleObject('ADOX.Catalog');  
           try  
               CreateAccess.Create(Format(  
    'Provider=Microsoft.Jet.OLEDB.3.51;Data  Source=%s%s.mdb',  
               [ExtractFilePath(Application.ExeName),  mDatabaseName]));  
           finally  
               CreateAccess  :=  Unassigned;  
           end;  
       except  
           Exit;  
       end;  
       Result  :=  True;  
    end;  
     
    function  CreateTable(mDatabaseName:  string;  mADOQuery:  TADOQuery):  Boolean;  
    begin  
       Result  :=  False;  
       try  
           mADOQuery.Close;  
           mADOQuery.ConnectionString  :=  Format(  
    'Provider=Microsoft.Jet.OLEDB.3.51;Data  Source=%s%s.mdb',  
               [ExtractFilePath(Application.ExeName),  mDatabaseName]);  
           mADOQuery.SQL.Text  :=  'CREATE  TABLE  Table1  (Field1  varchar(10),  Field2  varchar(10))';  
           mADOQuery.ExecSQL;  
       except  
           Exit;  
       end;  
       Result  :=  True;  
    end;  
     
    procedure  TForm1.Button1Click(Sender:  TObject);  
    begin  
       DeleteFile(ExtractFilePath(Application.ExeName)  +  'test.mdb');  
       CreateDatabase('test');  
       CreateTable('test',  ADOQuery1);  
    end;