-
-
// ฟังก์ชั่น: onMaintuiafter
-
// เหตุการณ์: เหตุการณ์ MaintuiaFter จะถูกส่งหลังจากการถ่ายโอนไฟล์เมื่อผู้ใช้ปลายทางทำงาน
// การติดตั้งที่ติดตั้งบนเครื่องแล้ว โดยปกติ
// สิ่งนี้เกิดขึ้นผ่านแอปเพล็ตโปรแกรมเพิ่ม/ลบ
// ในการติดตั้ง Handler มักจะแสดง UI ที่จะแจ้งให้ทราบ
// ผู้ใช้ปลายทางที่การบำรุงรักษา/ถอนการติดตั้งเสร็จสมบูรณ์แล้ว
-
-
ฟังก์ชั่น onmaintuiafter ()
String Sztitle, SZMSG1, SZMSG2, SZOPTION1, SZOPTION2;
หมายเลข BOPT1, BOPT2;
เริ่ม
ปิดการใช้งาน (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);
กลับ 0;
จบ;
-
-
// ฟังก์ชั่น: onmoving
-
// เหตุการณ์: เหตุการณ์การย้ายจะถูกส่งเมื่อเริ่มการถ่ายโอนไฟล์เป็นผลมาจาก
// componentTransferData การโทรก่อนการถ่ายโอนไฟล์ใด ๆ
// ดำเนินการ
-
-
ฟังก์ชั่น onmoving ()
สตริง szapppath;
เริ่ม
// กำหนดเส้นทางแอปพลิเคชันการปฏิบัติตามโลโก้
// ต้องทำ: หากแอปพลิเคชัน. exe อยู่ในโฟลเดอร์ย่อยของ TargetDir ให้เพิ่มโฟลเดอร์ย่อย
szapppath = targetDir;
regdbsetitem (regdb_apppath, szapppath);
regdbsetItem (regdb_apppath_default, szapppath ^ @product_key);
จบ;
// --- รวมส่วนไฟล์สคริปต์ ---
ฟังก์ชั่น loginsql (sztitle, szsqlsvname, szsqluser, szsqlpassword)
String Szdlg, SZTEMP;
หมายเลข BDONE, NID, NMessage, NTEMP;
int hwnddlg;
hwnd hwndcontrol;
เริ่ม
szdlg = "dlg_loginsqlsv";
// บันทึกข้อมูลที่ผลิตโดยกล่องโต้ตอบนี้
if (mode = silentMode) จากนั้น
sdmakename (szappkey, szdlg, sztitle, nloginsql);
SilentReadData (SzAppkey, "ผลลัพธ์", data_number, sztemp, nid);
if ((nid! = กลับ) && (nid! = ยกเลิก)) จากนั้น
SilentReadData (SzAppkey, "SZSQLSVNAME", DATA_STRING, SZSQLSVNAME, NTEMP);
SilentReadData (SzAppkey, "SZSQLUSER", DATA_STRING, SZSQLUSER, NTEMP);
SilentReadData (SzAppkey, "SZSQLPassword", Data_String, SZSQLPassword, NTEMP);
endif;
กลับ NID;
endif;
// ตรวจสอบให้แน่ใจว่าการเริ่มต้นทั่วไปเสร็จสมบูรณ์
ถ้า (! bsdinit) แล้ว
sdinit ();
endif;
if (ezdefinedialog (szdlg, "", "", dlg_loginsqlsv) = dlg_err) แล้ว
กลับ -1;
endif;
// 在用户选择标准按钮前进行循环
BDONE = FALSE;
ในขณะที่ (! bdone)
nid = waitondialog (szdlg); // 显示对话框
hwndControl = getDlGItem (HWNDDLG, SD_EDIT_SQLSV_NAME);
setFocus (hwndControl);
สวิตช์ (NID)
กรณี 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);
// ฟังก์ชั่นนี้ตั้งค่าคำบรรยายสำหรับกล่องโต้ตอบสไตล์เก่าหรือ
// ตั้งค่าข้อความในพื้นที่แบนเนอร์ด้านบนของกล่องโต้ตอบสไตล์ Win2k
sdsetdlgtitle (szdlg, hwnddlg, sztitle);
กรณี SD_EDIT_SQLSV_NAME:
nmessage = ctrlgetSubCommand (szdlg);
ถ้า (nmessage = editbox_change) แล้ว
CtrlgetText (SZDLG, SD_EDIT_SQLSV_NAME, SZSQLSVNAME);
endif;
กรณี SD_EDIT_SQLSV_USER:
nmessage = ctrlgetSubCommand (szdlg);
ถ้า (nmessage = editbox_change) แล้ว
CtrlgetText (SZDLG, SD_EDIT_SQLSV_USER, SZSQLUSER);
endif;
กรณี SD_EDIT_SQLSV_Password:
nmessage = ctrlgetSubCommand (szdlg);
ถ้า (nmessage = editbox_change) แล้ว
ctrlgetText (szdlg, sd_edit_sqlsv_password, szsqlpassword);
endif;
กรณีตกลง:
NID = ถัดไป;
bdone = true;
กรณีกลับ:
NID = กลับ;
bdone = true;
กรณี dlg_err:
sderror (-1, "sdwelcome");
NID = -1;
bdone = true;
กรณี dlg_close:
sdclosedlg (hwnddlg, nid, bdone);
ค่าเริ่มต้น:
// ตรวจสอบการจัดการมาตรฐาน
if (sdisstdbutton (nid) && sddostdbutton (nid)) แล้ว
bdone = true;
endif;
Endswitch;
ตอนท้าย;
enddialog (szdlg);
ปล่อยออกมา (szdlg);
sduninit ();
// บันทึกข้อมูลที่ผลิตโดยกล่องโต้ตอบนี้
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, "ผลลัพธ์", data_number, "", nid);
กลับ NID;
จบ;
ฟังก์ชั่น exesqlfile (szsqlfilename)
สตริง szcmdline;
หมายเลข NTEMP;
เริ่ม
szcmdline = supportdir ^"osql.exe";
if (launchappandwait (supportdir ^"osql.exe", szsqlfilename, รอ) <0) จากนั้น
MessageBox ("不能运行 SQL 安装文件." รุนแรง);
endif;
จบ;
ฟังก์ชั่น modifdbdir ()
สตริง szinstallfile;
จำนวน nvresult, nvlinenumber;
สตริง szwindir, svreturnline;
หมายเลข SN, NSTARTPOS;
String SZ1, SZ2, SznewDir;
หมายเลข NTEMP;
เริ่ม
szinstallfile = targetDir ^"ติดตั้ง // createB.SQL";
// 替换 db 文件的建立路径
ในขณะที่ (nvresult! = end_of_file)
nvresult = filegrep (szinstallfile, "d: // cycdata //", svreturnline, nvlinenumber, รีสตาร์ท);
// FileDeleTeline (SZODBCREGFILE, NVLINENUMBER, NVLINENUMBER);
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, แทนที่);
SZ1 = "";
SZ2 = "";
sznewdir = "";
ตอนท้าย;
จบ;
-
-
// ฟังก์ชั่น: onfilereadonly
-
// เหตุการณ์: เหตุการณ์ filereadonly จะถูกส่งระหว่างการถ่ายโอนไฟล์เมื่ออ่านอย่างเดียว
// ไฟล์จะต้องถูกเขียนทับหรือลบออก
-
// อาร์กิวเมนต์: ไฟล์ - เส้นทางเต็มของไฟล์ที่ทำเครื่องหมายว่าเป็นแบบอ่านอย่างเดียว
-
// return: err_yes - ไฟล์ควรถูกเขียนทับหรือลบออก
// err_no - ไฟล์ไม่ควรแก้ไข
-
-
ฟังก์ชั่น onfilereadonly (ไฟล์)
เริ่ม
ส่งคืน sdexceptions (อ่านอย่างเดียว, ไฟล์);
จบ;
-
-
// ฟังก์ชั่น: onfilereadonly
-
// เหตุการณ์: เหตุการณ์ filereadonly จะถูกส่งระหว่างการถ่ายโอนไฟล์เมื่ออ่านอย่างเดียว
// ไฟล์จะต้องถูกเขียนทับหรือลบออก
-
// อาร์กิวเมนต์: ไฟล์ - เส้นทางเต็มของไฟล์ที่ทำเครื่องหมายว่าเป็นแบบอ่านอย่างเดียว
-
// return: err_yes - ไฟล์ควรถูกเขียนทับหรือลบออก
// err_no - ไฟล์ไม่ควรแก้ไข
-