• 如何启动绿色迷你SQL2000服务


    最近在一个项目,要求业务数据存放在本地。 最初考虑了MySQL和SQLite,但是MySQL体积略大,再者本人也不太习惯使用MySQL; SQLite呢功能太弱,效率随着数据量的增大会有所下降;Oracle功能强大,是我的最爱,但是又没有绿色版本的;Access什么的也就算了,不在考虑之列。

    无意中找到了一个MiniSQL2000,其实就是多年前的GSQL,大小合适,又是关系型数据库,存储过程什么的都支持,功能足以满足业务需求。 本想联系一下MiniSQL2000的作者,咨询一下核心进程sqlservr.exe的运行原理,谁曾想入群竟然需要先交100块钱!!!! 虽说是小钱,我也尊重这位作者的付出,但是实在是无力吐槽,谁让人家掌握那么一点点我不知道的技术呢!

    本着有事没事找度娘的原则,网上搜了一下运行参数和原理,其实很简单,只要虚拟注册一下SQL Server的注册表信息即可。 另外在网上又找到了一段GSQL作者写的注册虚拟注册表的关键代码,所以略加改动做了一个最简单的启用SQL Server 2000服务的小程序,源代码也分享给想学习的同学,希望可以节省大家的时间,少走弯路!

    源码下载传送门:https://download.csdn.net/download/valesgubb/10864668

    sa用户默认密码admin,SQL实例名:BMSSQL,或者通过8899端口访问。

    源码说明:

    有两个注册表信息RegUnInstall.Bin 和 RegInstall.Bin 放在资源文件里面,通过Brcc32 REG.rc编译到.res文件,程序中释放出来替换实例名和数据库文件路径之后进行虚拟注册。

    另外下载的源码里面有两个地方要改一下,否则实例名和端口不能通过配置文件进行配置。

    procedure ExecRegFile(AFile: string);
    
      function FMPath(APath: string): string;
      begin
        Result := StringReplace(APath, '', '\', [rfReplaceAll]);
      end;
    
    var
      TempData: string;
      REGBin: TStringList;
      rs: TResourceStream;
    begin
      rs := TResourceStream.Create(HInstance, AFile, 'reg');
      rs.Position := 0;
      REGBin := TStringList.Create;
      REGBin.Clear;
      REGBin.LoadFromStream(rs);
      TempData := REGBin.Text;
      TempData := StringReplace(TempData, '$Name', InstanceName, [rfReplaceAll]);
      TempData := StringReplace(TempData, '$Port', InstancePort, [rfReplaceAll]);
      TempData := StringReplace(TempData, '$Path', FMPath(RunPath), [rfReplaceAll]);
      TempData := StringReplace(TempData, '$D', FMPath(RunPath + 'Datamaster.mdf'), [rfReplaceAll]);
      TempData := StringReplace(TempData, '$L', FMPath(RunPath + 'Datamastlog.ldf'), [rfReplaceAll]);
      REGBin.Text := StringReplace(TempData, '$E', FMPath(RunPath + 'LogsSQL_Logs.log'), [rfReplaceAll]);
    
      RunRegScript(REGBin);
    
      FreeAndNil(REGBin);
      FreeAndNil(rs);
    end;

    遗留问题:

    本代码只适用于Delphi2007及以下版本进行编译,我用Delphi 10编译运行会报版本不一致的错误,这个问题尚未解决,如果哪位牛 人知道原因,请告知解决方案,万分感谢!

    申明: SQL Server版权归 美国微软公司所有,本实例仅供参考学习!

  • 相关阅读:
    LintCode Python 简单级题目 41.最大子数组
    helm深入学习
    kubernetes组件helm
    解压war包
    linux打开进程数测试
    docker使用centos7系统构建oraclejdk镜像
    docker使用centos7系统构建tomcat镜像
    docker使用alpine系统构建tomcat镜像
    docker制作共享jdk的tomcat镜像
    java cpu使用率高异常排查
  • 原文地址:https://www.cnblogs.com/simba/p/10150347.html
Copyright © 2020-2023  润新知