参考之:
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. rsync-3.0.6-64

    http://rsync.samba.org/ 用的是rsync-3.0.6-12.el6.x86_64 Rsync version 3.1.1 released June 22nd, 2014 Rs ...

  2. awk笔记

    http://www.cnblogs.com/zhuyp1015/archive/2012/07/14/2591842.html awk实例练习 http://www.cnblogs.com/repo ...

  3. linux服务之smtp

    实现这个协议的软件太多,有sendmail,postfix等.不像snmp,基本上是net-snmp一统天下, yum install nc nc用来取代telnet 这里我们希望让大家知道网络协议中 ...

  4. noip2012普及组——质因数分解

    [问题描述]已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数. [输入]输入文件名为 prime.in.输入只有一行,包含一个正整数 n. [输出]输出文件名为 prime.out.输出只 ...

  5. Swagger-UI 基于REST的API测试/文档类插件

    现在多数的项目开发中,网站和移动端都需要进行数据交互和对接,这少不了使用REST编写API接口这种场景.例如我目前的工作,移动端交由了另一团队开发,不同开发小组之间就需要以规范和文档作为标准和协作基础 ...

  6. Hive(三):SQuirrel连接hive配置

    熟悉了Sqlserver的sqlserver management studio.Oracle的PL/SQL可视化数据库查询分析工具,在刚开始使用hive.phoenix等类sql组件时,一直在苦苦搜 ...

  7. Android 查看內存使用

    一.使用dumpsys meminfo命令 1.使用dumpsys meminfo查看内存使用情况 2.过滤某个进程可以使用 dumpsys meminfo | grep -i phone 二,使用t ...

  8. windows 下svn 创建分支 合并分支 冲突

    我用的系统是win7+Subversion 1.7.4.服务器搭建就略过了,我也是从网上找的,基本上就是几个命令吧!我用的CentOs6.5 .网上找了几个命令搭建很快,基本上是: 1.# sudo  ...

  9. jquery中关于append()的用法笔记---append()节点移动与复制之说

    jquery中关于append()的用法笔记---append()节点移动与复制之说 今天看一本关于jquery的基础教程,看到其中一段代码关于append()的一行,总是百思不得其解.于是查了查官方 ...

  10. nova分析(7)—— nova-scheduler

    Nova-Scheduler主要完成虚拟机实例的调度分配任务,创建虚拟机时,虚拟机该调度到哪台物理机上,迁移时若没有指定主机,也需要经过scheduler.资源调度是云平台中的一个很关键问题,如何做到 ...