////////////////////////////////////////////////// ////////////////////////////////////.
//
// Funktion: OnMaintuiAfter
//
// Ereignis: Das Warten -Ereignis wird nach der Dateiübertragung gesendet, wenn der Endbenutzer ausgeführt wird
// Installation, die bereits auf dem Computer installiert wurde. Normalerweise
// Dies geschieht durch Add/Reme -Programme Applet.
// In der Handlerinstallation wird normalerweise die Benutzeroberfläche angezeigt, die informiert wird
// Endbenutzer, dass Wartung/Deinstallation erfolgreich abgeschlossen wurde.
//
////////////////////////////////////////////////// ////////////////////////////////////.
Funktion onmaintuiAfter ()
String SZTitle, SZMSG1, SZMSG2, SZOPTION1, SZOPTION2;
Nummer bopt1, bopt2;
beginnen
Deaktivieren (statusex);
bopt1 = false;
bopt2 = false;
szmsg1 = sdloadstring (ifx_sdfinish_maint_msg1);
SZMSG2 = "";
szoption1 = "";
szoption2 = "";
sztitle = sdloadstring (ifx_sdfinish_maint_title);
SDFINISHEX (SZTITLE, SZMSG1, SZMSG2, SZOPTION1, SZOPTION2, BOPT1, BOPT2);
Rückkehr 0;
Ende;
////////////////////////////////////////////////// ////////////////////////////////////.
//
// Funktion: On -Moving
//
// Ereignis: Das Umziehen von Ereignissen wird gesendet, wenn die Dateiübertragung als Ergebnis von gestartet wird
// componentTransferData -Anruf vor allen Dateiübertragungsvorgängen
// werden durchgeführt.
//
////////////////////////////////////////////////// ////////////////////////////////////.
Funktion aufblicken ()
String Szapppath;
beginnen
// Logo Compliance -Anwendungspfad festlegen
// zu tun: Wenn sich Ihre Anwendung .exe in einem Unterordner von TargetDir befindet, fügen Sie den Unterordner hinzu
szapppath = targetDir;
RegdbsetItem (Regdb_apppath, Szapppath);
RegdbsetItem (Regdb_apppath_Default, Szapppath ^ @product_key);
Ende;
// --- Abschnitt "Skriptdatei ---
Funktion Loginsql (SZTitle, SZSQLSVNAME, SZSQLUSER, SZSQLPASSWORD)
String SZDLG, SZTemp;
Nummer bdone, nid, nmessage, ntemp;
Int hwnddlg;
Hwnd hwndcontrol;
beginnen
SZDLG = "DLG_LOGINSQLSV";
// Daten aufzeichnen, die durch diesen Dialog erstellt wurden
if (modus = stutmode) dann
Sdmakename (Szappkey, Szdlg, Sztitle, Nloginsql);
Silentreaddata (Szappkey, "Ergebnis", data_number, sztemp, nid);
if ((nid! = zurück) && (nid! = cancel)) dann
Silentreaddata (Szappkey, "SzsqlsvName", Data_String, Szsqlsvname, NTEMP);
Silentreaddata (Szappkey, "Szsqluser", Data_String, SZSQLUSER, NTEMP);
Silentreaddata (Szappkey, "Szsqlpassword", Data_String, SZSQLPassword, NTemp);
endif;
NID zurückkehren;
endif;
// Stellen Sie sicher, dass die allgemeine Initialisierung abgeschlossen ist
if (! bsdinit) dann
Sdinit ();
endif;
if (ezdefinedialog (szdlg, "," ", dlg_loginsqlsv) = dlg_err) dann
Return -1;
endif;
// 在用户选择标准按钮前进行循环
Bdone = falsch;
while (! bdone)
nid = waitondialog (SZDLG); // 显示对话框
hwndcontrol = getdlgitem (hwnddlg, sd_edit_sqlsv_name);
Setfocus (hwndcontrol);
Schalter (NID)
case dlg_init:
CtrlsetText (SZDLG, SD_EDIT_SQLSV_NAME, SZSQLSVNAME);
CtrlsetText (SZDLG, SD_EDIT_SQLSV_USER, SZSQLUSER);
CtrlsetText (SZDLG, SD_EDIT_SQLSV_PASSWORD, SZSQLPassword);
hwnddlg = cmdgethwnddlg (SZDLG);
SDGeneralinit (SZDLG, HWNDDLG, STYLE_NORMAL, SZSDPRODUCT);
// Diese Funktion legt die Bildunterschrift für Dialoge im alten Stil fest oder
// Legt den Text im Top -Bannerbereich von Win2K -Stildialogen fest
SDSetdlgtitle (SZDLG, HWnddlg, Sztitle);
case SD_EDIT_SQLSV_NAME:
nMessage = ctrlgetSubcommand (SZDLG);
if (nmessage = editbox_change) dann
CtrlGetText (SZDLG, SD_EDIT_SQLSV_NAME, SZSQLSVNAME);
endif;
case SD_EDIT_SQLSV_USER:
nMessage = ctrlgetSubcommand (SZDLG);
if (nmessage = editbox_change) dann
CtrlGetText (SZDLG, SD_EDIT_SQLSV_USER, SZSQLUSER);
endif;
case SD_EDIT_SQLSV_PASSWORD:
nMessage = ctrlgetSubcommand (SZDLG);
if (nmessage = editbox_change) dann
CtrlGetText (SZDLG, SD_EDIT_SQLSV_PASSWORD, SZSQLPassword);
endif;
Fall OK:
NID = Weiter;
bdone = true;
Fall zurück:
nid = zurück;
bdone = true;
case dlg_err:
Sderror (-1, "sdwelcome");
nid = -1;
bdone = true;
Fall DLG_CLOSE:
SDCLEDSLG (HWNDDLG, NID, BDone);
Standard:
// Standardhandhabung überprüft
if (sdisstdbutton (nid) && sddostdbutton (nid)) dann
bdone = true;
endif;
Endschalter;
Ende;
Enddialog (SZDLG);
Freisetzung (SZDLG);
Sduninit ();
// Daten aufzeichnen, die durch diesen Dialog erstellt wurden
Sdmakename (Szappkey, Szdlg, Sztitle, Nloginsql);
Silentwritedata (Szappkey, "Szsqlsvname", Data_String, SZSQLSVNAME, 0);
Silentwritedata (Szappkey, "Szsqluser", Data_String, SZSQLUSER, 0);
Silentwritedata (Szappkey, "Szsqlpassword", Data_String, Szsqlpassword, 0);
Silentwritedata (Szappkey, "Ergebnis", data_number, "", nid);
NID zurückkehren;
Ende;
Funktion exesqlfile (SZSQLFileName)
String SZCMDLINE;
Nummer ntemp;
beginnen
Szcmdline = SupportDir ^"osql.exe";
if (stirpAppandwait (assitdir ^"osql.exe", szsqlfilename, warte) <0) Dann
MessageBox ("不能运行 sql 安装文件.", Schwerwiegend);
endif;
Ende;
Funktion modifdbdir ()
String SzinstallFile;
Nummer nvresult, NvLinEnumber;
String Szwindir, SvReturnline;
Nummer SN, Nstartpos;
String SZ1, SZ2, Sznewdir;
Nummer ntemp;
beginnen
SzinstallFile = targetDir ^"install // erstellte B.SQL";
// 替换 db 文件的建立路径
while (nvresult! = end_of_file)
nvresult = fileGrep (SzinstallFile, "D: // cycdata //", SvReturnline, NvLinEnumber, Neustart);
// BATTELETELELE (SZODBCREGFILE, NVLINENUMBER, NVLINENUMUM);
sn = strlength (svReturnline);
nstartpos = strfind (svreturnline, "d: // cycdata //");
StRSUB (SZ1, SvReturnline, 0, Nstartpos);
StRSUB (SZ2, SvReturnline, Nstartpos+11, sn-nstartpos-11);
sznewdir = SZ1+targetDir ^Sz2;
FileInSertline (SzinstallFile, Sznewdir, NvLinEnumber, ersetzen);
SZ1 = "";
SZ2 = "";
sznewdir = "";
Ende;
Ende;
////////////////////////////////////////////////// //////////////////////////////////////.
//
// Funktion: OnFileReadonly
//
// Ereignis: FileReadOnly-Ereignis wird während der Dateiübertragung bei einer schreibgeschützten Übertragung gesendet
// Die Datei muss überschrieben oder entfernt werden.
//
// Argumente: Datei - Vollständiger Dateipfad, der als schreibgeschützt gekennzeichnet ist.
//
// Rückgabe: Err_yes - Die Datei sollte überschrieben oder entfernt werden.
// err_no - Die Datei sollte nicht geändert werden.
//
////////////////////////////////////////////////// ////////////////////////////////////.
Funktion onFileAteAnly (Datei)
beginnen
Rückgabe sDexceptions (readonly, Datei);
Ende;
////////////////////////////////////////////////// //////////////////////////////////////.
//
// Funktion: OnFileReadonly
//
// Ereignis: FileReadOnly-Ereignis wird während der Dateiübertragung bei einer schreibgeschützten Übertragung gesendet
// Die Datei muss überschrieben oder entfernt werden.
//
// Argumente: Datei - Vollständiger Dateipfad, der als schreibgeschützt gekennzeichnet ist.
//
// Rückgabe: Err_yes - Die Datei sollte überschrieben oder entfernt werden.
// err_no - Die Datei sollte nicht geändert werden.
//