参考之:
1.可将导入数据的功能写入一个小程序,再外部调用(楼上已经说了);
2.可用程序代码:
[Setup]
AppName=科發醫院管理系統
AppVerName=科發醫院管理系統4.0
AppPublisher=廣州科發科技有限公司
AppPublisherURL=http://www.kf200.com
AppSupportURL=http://www.kf200.com
AppUpdatesURL=http://www.kf200.com
DefaultDirName={pf}\科發醫院資訊管理系統
DefaultGroupName=科發醫院管理系統
;LicenseFile=.\Soruce\Program\Yygl\使用者授權合約.txt
Comdivssion=bzip
SolidComdivssion=no

[Types]
Name: "full"; Description: "完整安裝"
Name: "custom"; Description: "自訂安裝"; Flags: iscustom

[Components]
Name: "program"; Description: "全部程式"; Types: Custom
;Name: "Program\His"; Description: "醫院執行資訊系統"; Types: full
;//Custom
;//Name: "program\ClientSet"; Description: "用戶端"; Types: full
Name: "program\Kfpt"; Description: "二次開發平臺"; Types: Custom
;Name: "program\Czsc"; Description: "操作手冊"; Types: Custom
;//full Custom
Name: "program\ServerApp"; Description: "後臺服務控制器"; Types: Custom
Name: "readme"; Description: "讀我檔案"; Types: full

[Tasks]
; 注意: 下面的條目包含一個中文用語 (“創建桌面快捷方式”和“添加快捷方式”)。如果需要你可以翻譯為其它語言。
Name: "desktopicon"; Description: "創建桌面快捷方式"; GroupDescription: "添加快捷方式:"; Flags: unchecked
;//unchecked

[Files]
Source: ".\Soruce\Program\kfpt\*"; DestDir: "{app}"; components :program\kfpt ;Flags: ignoreversion recursesubdirs
Source: ".\Soruce\Program\ServerApp\*"; DestDir: "{app}"; components :program\ServerApp ;Flags: ignoreversion recursesubdirs
Source: ".\Soruce\Data\*.*"; DestDir: "{drive:{app}}\Data"

; 注意: 不要在任何共用系統檔中使用“Flags: ignoreversion”

[Icons]
Name: "{group}\後臺服務控制器"; Filename: "{app}\ServerApp.exe" ;WorkingDir: "{app}" ;components :program\ServerApp
Name: "{group}\二次開發平臺"; Filename: "{app}\KfPt.exe" ;WorkingDir: "{app}" ;components :program\kfpt
; 注意: 下面的條目包含一個中文用語 (“卸載”)。如果需要你可以翻譯為其它語言。
Name: "{group}\卸載 科發醫院管理系統"; Filename: "{uninstallexe}"

[Run]
; 注意: 下列條目包含一個中文用語 (“運行”)。如果需要你可以翻譯為其它語言。

[Code]

{--- SQLDMO ---}

const
SQLServerName = '(local)';
SQLDMOGrowth_MB = 0;

procedure InstallDb();
var
SQLServer, Database, DBFile, LogFile: Variant;
IDColumn, NameColumn, Table: Variant;
FlagDbExist:Boolean;
FileName1, Filename2,DbName,DbPath:String;

begin
//;if MsgBox('安裝程式現在將通過一個可信任的連接到 Microsoft SQL 伺服器 ''' + SQLServerName + ''' 並創建一個資料庫。你想繼續嗎?', mbInformation, mb_YesNo) = idNo then
// Exit;

{ 創建主 SQLDMO COM 自動操作物件 }

try
SQLServer := CreateOleObject('SQLDMO.SQLServer');
except
RaiseException('未安裝資料庫伺服器,先請安裝 Microsoft SQL Server 伺服器。'#13#13'(Error ''' + GetExceptionMessage + ''' occurred)');
exit;
end;

{ 連接到 Microsoft SQL 伺服器 }
DbName:='KfHis_std_a';
//私營版

SQLServer.LoginSecure := True;
SQLServer.Connect(SQLServerName);

//MsgBox('已連接到 Microsoft SQL 伺服器 ''' + SQLServerName + '''.', mbInformation, mb_Ok);

{ 安裝資料庫 }
FlagDbExist:=True;
Database := CreateOleObject('SQLDMO.Database');
try
Database := SQLServer.Databases.Item(DbName);
except

FlagDbExist:=False;
end;
if FlagDbExist=False then

else
exit; {資料庫已安裝}

FileName1:= ExpandConstant('{drive:{app}}\Data')+'\KFHIS.mdf';
Filename2:= ExpandConstant('{drive:{app}}\Data')+'\KFHIS_log.ldf';
{附加資料庫}
dbPath:= FileName1+' , '+Filename2;
try
SQLServer.AttachDB(DBName, dbPath);
except
MsgBox('資料庫安裝失敗!', mbInformation, mb_Ok);
exit;
end;
MsgBox('資料庫安裝成功!', mbInformation, mb_Ok);
end;

function InitializeSetup(): Boolean;
begin
{ MsgBox('aa', mbInformation, mb_Ok); }
Result:=True;
end;

function NextButtonClick(CurPageID: Integer): Boolean;
begin
{ if CurPageID=wpInfoAfter then
begin
MsgBox('pageid'+inttostr(CurPageID),mbInformation, mb_Ok);
InstallDb();
end; }
Result:=True;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep=ssPostInstall then
begin
InstallDb();
CreateDir(ExpandConstant('{app}\Datalink'));
FileCopy(ExpandConstant('{app}\DefLink.udl'),ExpandConstant('{app}\Datalink\DefLink.udl'),True);

end;
end;

inno setup 执行SQL的更多相关文章

  1. Inno Setup执行SQL脚本的方法

    作为和NSIS并立的.两个最流行的免费Windows应用程序安装包制作工具之一,Inno在学习难度上相对要低一些,非常适合对一些简单的桌面程序打包.但对于较复杂的安装过程,或者Web应用程序来说,我个 ...

  2. Inno Setup使用上的几个问题

    Inno Setup使用上的几个问题 分类: Install Setup 2013-02-02 15:48 1781人阅读 评论(0) 收藏 举报 Inno Setup使用上的几个问题: [问题一:I ...

  3. Inno Setup使用上的几个问题 (转)

    Inno Setup使用上的几个问题: [问题一:Inno Setup 执行REG文件代码?][Run]Filename: "{win}\regedit.exe";Paramete ...

  4. Inno Setup入门(十一)——完成安装后执行某些程序

    Inno Setup入门(十一)——完成安装后执行某些程序 2011-02-16 16:24:23|  分类: Inno Setup |  标签:inno  setup   |举报 |字号 订阅   ...

  5. Inno setup 中 执行参数传递注意的地方

    Inno setup编译器编译使用pascal脚本编写的打包代码,其中Run段可以执行某些特定的程序,遇到一个bat批处理文件传递参数的问题,记录如下 1: [Run] 2: Filename: &q ...

  6. Inno Setup 打包的文件以管理员权限执行

    最近发现一个问题,就是Inno Setup打包的程序安装完毕后执行需求管理员权限的程序的时候会失败( inno createprocess   须要提升),解决问题的最简单办法就是打包的后的程序也以管 ...

  7. Inno Setup的常用脚本

    Inno Setup的常用脚本 分类: VC++神奇理论 2012-12-06 10:07 3234人阅读 评论(2) 收藏 举报 安装不同的目录: [Files] Source: "我的程 ...

  8. Inno Setup for Windows service

    Inno Setup for Windows service? up vote86down votefavorite 77 I have a .Net Windows service. I want ...

  9. INNO SETUP数据库的连接与创建

    原文:INNO SETUP数据库的连接与创建 说明一下:这块程序的前半部分在INNO SETUP的实例里面就有,而后面如果对数据库进行备份和还原在实例里面没有,在网上也不好找,是本人费了好大劲一句一句 ...

随机推荐

  1. centos7通过yum安装mysql,并授权远程连接

    安装: CentOS 7的yum源中没有正常安装MySQL的mysql-sever文件,需要去官网上下载(通过安装mysql的yum容器,再通过yum安装mysql) 注:安装前,需要卸载所有的mar ...

  2. expression encoder 4 安装 出现“已经安排重启您的计算机

    问题: expression encoder 4  安装 出现“已经安排重启您的计算机 解决的办法,注册表数据的修改 开始 运行 regedit HKEY_LOCAL_MACHINE\SYSTEM\C ...

  3. RSA非对称加密 php的openssl实现

    <?php /** * 使用openssl实现非对称加密 * @since 2010-07-08 */ class Rsa { /** * private key */ private $_pr ...

  4. ActionContext表格总结

    用一张表格来总结: 变量 从ActionContext中获得 生命周期 用Ongl来读取值 使用ServletConfigInterceptor来注入 ActionContext类 静态方法Actio ...

  5. JS刷新页面的几种方法(转)

    Javascript刷新页面的几种方法: 1 history.go(0) 2 location.reload() 3 location=location 4 location.assign(locat ...

  6. Java单元测试技术1

    另外两篇关于介绍easemock的文章:EasyMock 使用方法与原理剖析,使用 EasyMock 更轻松地进行测试 摘要:本文针对当前业软开发现状,先分析了WEB开发的技术特点和单元测试要解决的问 ...

  7. java生成随机字符串uuid

    GUID是一个128位长的数字,一般用16进制表示.算法的核心思想是结合机器的网卡.当地时间.一个随即数来生成GUID.从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义 ...

  8. window7 下 安装 apache24(httpd-2.4.10-x86-r2)加 php5.6(php-5.6.4-Win32-VC11-x86)加yaf(php_yaf-2.3.3-5.6-ts-vc11-x86)整合

    window7 下 安装 apache24(httpd-2.4.10-x86-r2)加 php5.6(php-5.6.4-Win32-VC11-x86)加yaf(php_yaf-2.3.3-5.6-t ...

  9. CSS命名规则

    头:header  内容:content/container  尾:footer  导航:nav  侧栏:sidebar 栏目:column  页面外围控制整体布局宽度:wrapper  左右中:le ...

  10. IOS开发-UIBarButtonItem系统自带图标总结

    1.这四个返回的是后面的单词. UIBarButtonSystemItemDone UIBarButtonSystemItemCancel UIBarButtonSystemItemEdit UIBa ...