我程序用到ACCESS数据库,做好的程序,我就想生成一个单独的EXE文件,不要再带一个ACCESS数据库,我现在要把数据库做成资源文件,集成EXE文件里面,我网上查了这方面的东西,就是什么图标类型是cursor ,位图是bitmap,不知道数据库是什么类型,具体有这方面的信息可以告诉我一下啊.

解决方案 »

  1.   

    建一个rc文件
    --database.rc--
    dataname access "test.db"将该rc文件加入工程中
    然后:
      with TResourceStream.Create(HInstance, 'access', 'dataname') do try
        SaveToFile(ExtractFilePath(Application.ExeName) + 'test.mdb');
      finally
        Free;
      end;//也可以直接创建数据库
    //表通过SQL语句生成uses ComObj;function CreateDatabase(mDatabaseName: string; mVersion: string): Boolean;
    var
      CreateAccess: OLEVariant;
    begin
      Result := False;
      try
        CreateAccess := CreateOleObject('ADOX.Catalog');
        try
          CreateAccess.Create(Format(
    'Provider=Microsoft.Jet.OLEDB.%s;Data Source=%s%s.mdb',
          [mVersion, ExtractFilePath(Application.ExeName),mDatabaseName]));
        finally
          CreateAccess := Unassigned;
        end;
      except
        Exit;
      end;
      Result := True;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      DeleteFile(ExtractFilePath(Application.ExeName) + 'test.mdb'); // 删除旧数据库
      CreateDatabase('test', '4.0');
    end;