InstallShield自定义对话框浅谈(四)

博客展示了一个名为CheckSQLServerDSNInputValid的函数,用于检查SQL Server输入数据的有效性。函数会对数据库用户名、数据源名称、数据库名和地址等输入进行检查,若输入为空或数据源名称无效,会禁用继续按钮并返回相应结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

/*------------------------------------------------------------------------*/

/*                                                                        */

/*   Function:  CheckSQLServerDSNInputValid                               */

/*                                                                        */

/*   Descrip:   check the input data is valid.                                     */

/*       do not need to check the pwd if empty                            */

/*   Misc:                                                                */

/*                                                                        */

/*------------------------------------------------------------------------*/

  function CheckSQLServerDSNInputValid(hwndDlg, bAllowNotSet)

      STRING szDBUserName;

      STRING szSQLDB;

      STRING szSQLAddr;

      STRING szSQLDSN;

  begin

      

       if(bAllowNotSet) then

           _WinSubEnableControl(hwndDlg, SD_PBUT_CONTINUE, 1);

           return 1;

       endif;

      

       if((CtrlGetState(DSN_SQLSERVER_DLG, IDC_RADIO_DSN_USER) = BUTTON_UNCHECKED) &&

          (CtrlGetState(DSN_SQLSERVER_DLG, IDC_RADIO_DSN_SYSTEM) = BUTTON_UNCHECKED)) then

              _WinSubEnableControl(hwndDlg, SD_PBUT_CONTINUE, 0);

              return 0;

       endif;

 

       CtrlGetText(DSN_SQLSERVER_DLG, IDC_EDIT_SQLSERVER_USER_NAME, szDBUserName);

       if(StrLength(szDBUserName) = 0) then

           _WinSubEnableControl(hwndDlg, SD_PBUT_CONTINUE, 0);

           return 0;

       endif;

       CtrlGetText(DSN_SQLSERVER_DLG, IDC_EDIT_SQLSERVER_DSN, szSQLDSN);

       if(StrLength(szSQLDSN) = 0) then

           _WinSubEnableControl(hwndDlg, SD_PBUT_CONTINUE, 0);

           return 0;

       else

           if(!SQLValidDSN(szSQLDSN)) then

               MessageBox("输入了无效的数据源名称!", INFORMATION);

               _WinSubFocusControl(hwndDlg, IDC_EDIT_SQLSERVER_DSN);

               return 0;

           endif;

       endif;

       CtrlGetText(DSN_SQLSERVER_DLG, IDC_EDIT_SQLSERVER_DB, szSQLDB);

       if(StrLength(szSQLDB) = 0) then

           _WinSubEnableControl(hwndDlg, SD_PBUT_CONTINUE, 0);

           return 0;

       endif;

       CtrlGetText(DSN_SQLSERVER_DLG, IDC_EDIT_DB_ADDR, szSQLAddr);

       if(StrLength(szSQLAddr) = 0) then

           _WinSubEnableControl(hwndDlg, SD_PBUT_CONTINUE, 0);

           return 0;

       endif;

      

       _WinSubEnableControl(hwndDlg, SD_PBUT_CONTINUE, 1);

       return 1;

  end;

 

          

 

#endif // __KDCIS_RUL_

         

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值