procedure TForm3.Button5Click(Sender: TObject);
var
s:string;
CreateSql:OleVariant;
begin
 s:= trim(Edit2.Text)+'\'+trim(Edit1.Text)+'.mdf';
 ShowMessage(s);
 if FileExists(s) then
 begin
    ShowMessage('此数据库名已成在,请输入别的数据库名!');
    exit;
 end;
   CreateSql:=CreateOleObject('ADOX.Catalog');
   CreateSql.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='''+s+'''');
   ShowMessage('数据库创建成功');
 end;
创建数据文件,可没有日志文件,怎样才能创建日志文件啊?

解决方案 »

  1.   

    一样用CreateSql.Create()也出来了,有没有好的办法,这二个文件一起创建?
      

  2.   

    用得着这样吗?使用企业管理器创建好SQL脚本后,使用adoquery就可以创建数据库了
      

  3.   

    参考一下(sales.sql是使用SQL SERVER的企业管理器生成的脚本文件):
    procedure TMainForm.createdatabase;
    var
      i:integer;
      sqltext:tstringlist;
    begin
      sqltext:=tstringlist.Create;
      try
        try
          label4.Caption:='正在初始化数据库脚本......';
          mainform.Repaint;
          sqltext.LoadFromFile(ExtractFilePath(Application.ExeName)+'sales.sql');
          sqltext.Text:=stringreplace(sqltext.Text,'sales',databasename,[rfReplaceAll]);
          sqltext.Text:=stringreplace(sqltext.Text,'D:\销售宝典\',setuppath+setupdir+'\',[rfReplaceAll]);
          if loginmode='0' then
             adoconnection1.ConnectionString:='Provider=SQLOLEDB.1;Password='+password+';Persist Security Info=True;User ID='+username+';Initial Catalog=master;Data Source='+ServerIP
          else
             adoconnection1.ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source='+ServerIP;
          adoconnection1.Connected:=true;
          ADOQuery1.SQL.Clear;
          label4.Caption:='正在创建数据库......';
          ProgressBar1.Position:=30;
          mainform.Repaint;
          for i:= 0 to SQLText.Count- 1 do
            begin
              if ((copy(trim(sqltext.Strings[i]),1,2)<>'/*') and
                 (copy(trim(sqltext.Strings[i]),1,2)<>'--') and
                 (copy(trim(sqltext.Strings[i]),1,2)<>'GO')) then
                 ADOQuery1.SQL.Add(SQLText.Strings[i]);          if copy(trim(sqltext.Strings[i]),1,2)='GO' then
                 begin
                   try
                     ADOQuery1.ExecSQL;
                   except
                     on e:exception do
                        begin
                          application.MessageBox(pchar(e.Message),'错误',0);
                        end;
                   end;
                   ADOQuery1.Close;
                   ADOQuery1.SQL.Clear;
                 end;
            end;
        finally
          sqltext.Free;
        end;
      except
        raise;
        exit;
      end;
    end;