INNO SETUP在安装过程中实现导入数据库 MYSQL做的数据库在用户机子上,必须导入数据库才可顺利执行,.SQL文件我已导出,INNO SETUP能实现在安装过程中个自动将打包中的.SQL文件导入MYSQL数据库吗?怎么实现???多谢各路高手指教!!!!!小弟不胜感激赐教!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以将导入数据的这个功能写到一个小程序里,然后INNO SETUP安装过程中,来运行这个程序 参考之: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; MySql导入应该有命令工具吧?安装过程中执行导入脚本应该可以吧? 一楼,二楼的的朋友非常感谢,但是说实话小弟刚刚接触pascal语言,看不太懂,这个是写在INNO SETUP里的嘛?有没有可界面化操作的方法,语言小弟还是倍感吃力啊!!多谢多谢!!! 三楼说的我知道,MYSQL是有导入语句的,但是那个语言可以在转化写在INNO SETUP里嘛??我不是很清楚,呵呵 INNO SETUP不是可以写Pascal代码吗?那就可以执行脚本啊什么的,做一个.Bat文件来执行最好 请问七楼,那个BAT文件语句该怎么写?我研究了下,他总是要先建立一个数据库再导入,我用MYSQL导入语句在BAT中不能执行的。能给个语句吗??谢谢我的*.sql文件路径是E:\新建文件夹\ MySql我也不熟悉,你百度下mysql 导入导出,把那些用到的命令做成一个批处理文件就行了,我想像批处理文件应该是这样:Mysql连接登陆命令数据导入命令.Bat文件也就是批处理文件就是顺序执行下来呀。 但问题是这个小程序怎么写??用什么写?根据九楼朋友的建议,我在尝试BAT文件,发现不行诶,可能是我语句不对,我是在记事本里写:mysql -h localhost -u root -paaamysql>create database huiyuanmysql>use huiyuan mysql>source e:huiyuan.sql 希望实现自动连接登陆mysql,并且创建数据库,然后导入.SQL文件但这个代码是不对的,我测试过了。目前我刚接触这种软件代码的事情,还是个小白,事情现在又比较赶,希望高手前辈们能多帮帮忙。!!!多谢多谢 mysql>不应该有mysql -h localhost -u root -paaacreate database huiyuan//直接是命令就好,use huiyuan source e:huiyuan.sql//这一句感觉不对,这样可以导入? 跪求 XML问题 我做了一个登录器,怎么才能在用户登录后首先看到我这个登录器,后看到桌面 SQL查询? 怎么判断另一窗体是否单击了某一按钮? 自己的Blog,有兴趣的去看看:About Delphi Programming 中文版 【公告】【版务】【投票】2004年下半年Delphi版牛奖投票 有增强型的RichEdit控件吗给一个! 求助!!!急急!! 放分最爽了 怎样创建WinNT登录帐号? 每次运行程序都弹出那个 用户名 和 密码 验证的提示,如何消除啊?~~~~~~~~~~~~~~~~~~~~ 音频录制和传送
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;
数据导入命令.Bat文件也就是批处理文件就是顺序执行下来呀。
mysql -h localhost -u root -paaa
mysql>create database huiyuan
mysql>use huiyuan
mysql>source e:huiyuan.sql
希望实现自动连接登陆mysql,并且创建数据库,然后导入.SQL文件
但这个代码是不对的,我测试过了。目前我刚接触这种软件代码的事情,还是个小白,事情现在又比较赶,希望高手前辈们能多帮帮忙。!!!多谢多谢
mysql>不应该有
mysql -h localhost -u root -paaa
create database huiyuan//直接是命令就好,
use huiyuan
source e:huiyuan.sql//这一句感觉不对,这样可以导入?