参考之:
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. Asp.net获取用户真实Ip地址

    /// <summary> /// 获取远程访问用户的Ip地址 /// </summary> /// <returns>返回Ip地址</returns> ...

  2. 【转】DNS劫持和DNS污染的区别

    什么是DNS服务器? 简单来说,DNS服务器就是域名管理系统. DNS(Domain Name System)是域名解析服务器的意思. DNS服务器是干什么的? DNS服务器在互联网的作用是:把域名转 ...

  3. python input() 与 raw_input()

    使用input和raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的 当输入为纯数字时: input返回的是数值类型,如int,floatraw_inpo ...

  4. html之input系列标签

    input属性太多,我这里仅列出几个我喜欢的吧. disabled:首次加载时禁用此元素 checked:首次加载时选中此元素 form:输入字段所属的一个或多个表单 hieght:定义input字段 ...

  5. JAVA获取时间戳,哪个更快

    目前获取毫秒值大概有下面三种方法 //方法 一 System.currentTimeMillis(); //方法 二 Calendar.getInstance().getTimeInMillis(); ...

  6. angularjs实现IOS8自带计算器

    最近看到一则面试题目,要求使用angularjs实现一个计算器,利用放假时间实现了一个仿iOS8风格的计算器,功能基本和iOS自带的计算器是一致的. 查看demo,接着给出实现过程. 首先创建angu ...

  7. openstack(liberty):部署实验平台(二,简单版本软件安装 part1)

    软件安装过程中,考虑到现在是一个实验环境,且也考虑到规模不大,还有,网络压力不会大,出于简单考虑,将各个节点的拓扑结构改了一下,主要体现在网络节点和控制节点并在了一起.在一个服务器上安装! 到目前位置 ...

  8. windows 2003 上安装windows liver writer

    下载"resource hacker"软件,修改exe文件,找到config--config0-0 替换为: <?xml version="1.0" en ...

  9. (转)关于List中FindAll用法的一些简单示例

    本文转载自:http://blog.csdn.net/luoxufeng/article/details/6925982 using System; using System.Collections. ...

  10. JSP里的c:url中的/代表站点根目录还是WEB根目录?(待解答)

    <c:url/>使用格式: <c:url var="<string>" scope="<string>" value= ...