//AB/ Project Login attributes //AB/ Object prj is a Dialog_Project //AB/ Set ProjectName to "Login attributes" //AB/ Set ProjectFileName to "LoginAttributes.DG" //AB/ Set Size to 182 315 // Project Object Structure // oLoginAttributes_dg is a ModalPanel // oServer_fm is a ComboForm // oUser_fm is a Form // oPassword_fm is a Form // oDatabase_fm is a Form // oSchema_fm is a Form // oAuthentication_cb is a CheckBox // oTest_bn is a cRDSButton // oOK_bn is a cRDSButton // oHelp_bn is a cRDSButton // oCancel_bn is a cRDSButton // oBitmapContainer is a BitmapContainer // Register all objects Register_Object oAuthentication_cb Register_Object oBitmapContainer Register_Object oCancel_bn Register_Object oDatabase_fm Register_Object oHelp_bn Register_Object oLoginAttributes_dg Register_Object oOK_bn Register_Object oPassword_fm Register_Object oSchema_fm Register_Object oServer_fm Register_Object oTest_bn Register_Object oUser_fm //AB-StoreTopStart Use ShellExecute.pkg // For Html help document. Use SyncFuncs.pkg // Various functions. Use SncTable.DD //AB-StoreTopEnd //AB-IgnoreStart Use Windows.pkg Use dfCmbFrm.pkg Use cRDSButton.pkg Use dfbitmap.pkg //AB-IgnoreEnd Object oLoginAttributes_dg is a ModalPanel //AB-StoreTopStart Property Handle phoDD Property Integer piFile Property Boolean pbFrom Property String psDriver Property String psOwner Register_Procedure psTableHelpPath //AB-StoreTopEnd Set Minimize_Icon to FALSE Set Label to "Connect to ??? Login Attributes" Set Location to 1 4 Set Size to 150 262 //AB-DDOStart //AB-DDOEnd Object oServer_fm is a ComboForm Set Label to "Server:" Set Size to 13 169 Set Location to 10 79 Set Status_Help to "Data Source Name or Server name. If the server is running on the same computer, you can use '(Local)' as the server name." Set Form_Border to 0 Set Label_Col_Offset to 2 Set Label_Justification_Mode to jMode_Right //AB-StoreStart Set Entry_msg To DoCheckEntering Procedure Combo_Fill_List Integer iNumberOfDrivers iCount iDriverNum iNumberOfServers iPos iLength String sCurrentDriver sDriverId sCurrentServer sValue If (pbFrom(Self)) Field_Map SncTable.File_Number "FromLogin" To iLength Else Field_Map SncTable.File_Number "ToLogin" To iLength Get_Attribute DF_FIELD_LENGTH Of SncTable.File_Number To iLength Send Combo_Delete_Data Get psDriver To sDriverId Get_Attribute DF_NUMBER_DRIVERS To iNumberOfDrivers For iCount From 1 To iNumberOfDrivers Get_Attribute DF_DRIVER_NAME Of iCount To sCurrentDriver If (Uppercase(sCurrentDriver) = Uppercase(sDriverId)) ; Move iCount To iDriverNum Loop //*** Fill list with all servers of this driver If (iDriverNum <> 0) Begin Get_Attribute DF_DRIVER_NUMBER_SERVERS Of iDriverNum To iNumberOfServers For iCount From 1 To iNumberOfServers Get_Attribute DF_DRIVER_SERVER_NAME Of iDriverNum iCount To sCurrentServer Move (Pos("=", sCurrentServer)) To iPos If iPos Move (Right(sCurrentServer, (Length(sCurrentServer) - iPos))) To sCurrentServer If (Uppercase(sCurrentServer) Contains "TRUSTED_CONNECTION") Begin Move (Pos(";", sCurrentServer)) To iPos Move (Left(sCurrentServer, (iPos - 1))) To sCurrentServer End // If (Uppercase(sCurrentServer) contains "TRUSTED_CONNECTION") Begin If (Length(Trim(sCurrentDriver)) > 0) Begin // Move (Pad(sCurrentServer, iLength)) to sCurrentServer Get Combo_Item_Matching sCurrentServer To iPos If (iPos > -1) Send Combo_Add_item sCurrentServer End // If (Length(Trim(sCurrentDriver)) > 0) Begin Loop End End_Procedure // Combo_fill_list Procedure OnChange Set Enabled_State Of oOk_bn To True End_Procedure // OnChange Procedure DoCheckEntering Returns Integer Boolean bState Get Visible_State To bState If bState Procedure_Return 0 Else Procedure_Return 1 End_Procedure // DoCheckEntering //AB-StoreEnd End_Object // oServer_fm Object oUser_fm is a Form Set Label to "User ID:" Set Size to 13 169 Set Location to 25 79 Set Status_Help to "User id for loggin in to the database" Set Label_Col_Offset to 2 Set Label_Justification_Mode to jMode_Right //AB-StoreStart Procedure OnChange Set Enabled_State Of oOk_bn To True End_Procedure // OnChange //AB-StoreEnd End_Object // oUser_fm Object oPassword_fm is a Form Set Label to "Password:" Set Size to 13 169 Set Location to 40 79 Set Status_Help to "Password for loggin in to the database" Set Label_Col_Offset to 2 Set Label_Justification_Mode to jMode_Right //AB-StoreStart Set Password_State Item 0 To True Procedure OnChange Set Enabled_State Of oOk_bn To True End_Procedure // OnChange //AB-StoreEnd End_Object // oPassword_fm Object oDatabase_fm is a Form Set Label to "Database:" Set Size to 13 169 Set Location to 55 79 Set Status_Help to "The name of the database where the tables has been placed." Set Label_Col_Offset to 2 Set Label_Justification_Mode to jMode_Right //AB-StoreStart Set Entry_msg To DoCheckEntering Procedure OnChange Set Enabled_State Of oOk_bn To True End_Procedure // OnChange Procedure DoCheckEntering Returns Integer Boolean bState Get Visible_State To bState If bState Procedure_Return 0 Else Procedure_Return 1 End_Procedure // DoCheckEntering //AB-StoreEnd End_Object // oDatabase_fm Object oSchema_fm is a Form Set Label to "Schema/Owner:" Set Size to 13 169 Set Location to 70 79 Set Status_Help to "The Schema name within the database where the tables has been placed or table Owner name" Set Label_Col_Offset to 2 Set Label_Justification_Mode to jMode_Right //AB-StoreStart Set Entry_msg To DoCheckEntering Procedure OnChange Set Enabled_State Of oOk_bn To True End_Procedure // OnChange Procedure DoCheckEntering Returns Integer Boolean bState Get Visible_State To bState If bState Procedure_Return 0 Else Procedure_Return 1 End_Procedure // DoCheckEntering //AB-StoreEnd End_Object // oSchema_fm Object oAuthentication_cb is a CheckBox Set Label to "Use Windows NT authentication" Set Size to 14 119 Set Location to 94 79 Set Status_Help to "Should Windows login info be used for logging into the database?" //AB-StoreStart Set Entry_msg To DoCheckEntering Procedure DoCheckEntering Returns Integer Boolean bState Get Visible_State To bState If bState Procedure_Return 0 Else Procedure_Return 1 End_Procedure // DoCheckEntering Procedure OnChange Boolean bState String sTrusted Get Checked_State To bState Set Enabled_State Of oUser_fm To (Not(bState)) Set Enabled_State Of oPassword_fm To (Not(bState)) Set Value Of oUser_fm To "" Set Value Of oPassword_fm To "" If bState ; Set Password_State Of oPassword_fm item 0 To False Else ; Set Password_State Of oPassword_fm item 0 To True Set Enabled_State Of oOk_bn To True End_Procedure // OnChange //AB-StoreEnd End_Object // oAuthentication_cb Object oTest_bn is a cRDSButton Set Label to "&Test Login" Set Location to 94 198 //AB-StoreStart Procedure OnClick String sServer sUser sPassword sDriver Integer iFile Boolean bIsOpen Send StartWorkingMessage "Trying to connect to database server..." Send Ignore_Error Of Error_Info_Object 75 // 'Can't open data file' Send Ignore_Error Of Error_Info_Object 12293 // 'Data source name not found' Send Ignore_Error Of Error_Info_Object 12295 // 'Table not in connection' Delegate Get piFile To iFile Delegate Get psDriver To sDriver Get Value Of oServer_fm To sServer Get Value Of oUser_fm To sUser Get Value Of oPassword_fm To sPassword If (Uppercase(sDriver) <> DB2_DRV_ID) Begin Logout sDriver sServer Get_Attribute DF_FILE_OPENED Of iFile To bIsOpen If bIsOpen Set_Attribute DF_FILE_OWNER Of iFile To (psOwner(Self)) End // If (Uppercase(sDriver) <> DB2_DRV_ID) Begin If (Uppercase(sDriver) <> DFBTRDRV_ID) Begin DFBTR_REMOVE_ALL_OWNERS DFBTR_ADD_OWNER sPassword Move "" To sPassword End // If (Uppercase(sDriver) <> DFBTRDRV_ID) Begin Indicate Err False // Will be set by the Login command. Login sServer sUser sPassword sDriver Send StopWorkingMessage If (Err) Send Info_Box "Login unsuccessful. Please try again." Else Send Info_Box "Login successful." Get_Attribute DF_FILE_OPENED Of iFile To bIsOpen If Not bIsOpen Begin Open iFile If Not (Found) Send Info_Box "Warning! Could not re-open the data table." End // If Not bIsOpen Begin Send Trap_Error Of Error_Info_Object 75 Send Trap_Error Of Error_Info_Object 12293 Send Trap_Error Of Error_Info_Object 12295 End_Procedure // OnClick //AB-StoreEnd End_Object // oTest_bn Object oOK_bn is a cRDSButton Set Label to "&OK" Set Location to 114 90 Set Status_Help to "Update current Table Setup record with changes and close panel" //AB-StoreStart Set Enabled_State Of oOk_bn To False Procedure OnClick Handle hoDD Boolean bFrom Integer iFile String sDriver sText sOwner sCrnt sServer sUser sPassword sDatabase sSchema Boolean bState Delegate Get piFile To iFile Delegate Get phoDD To hoDD Delegate Get pbFrom To bFrom Delegate Get psDriver To sDriver Get Value Of oServer_fm item 0 To sServer Get Value Of oUser_fm To sUser Get Value Of oPassword_fm To sPassword Get CmEnKry sPassword To sPassword Get Value Of oDatabase_fm To sDatabase Get Value Of oSchema_fm To sSchema Get Checked_State Of oAuthentication_cb To bState If ((sDriver = ODBC_DRV_ID Or sDriver = DB2_DRV_ID) And Trim(sServer) <> "") ; Move ("DSN=" + Trim(sServer) + ";") To sText Else If (Trim(sServer) <> "") ; Move ("SERVER=" + Trim(sServer) + ";") To sText If (Not(bState) And Trim(sUser) <> "") ; Move (sText + "UID=" + Trim(sUser) + ";") To sText Else If bState ; Move (sText + "Trusted_Connection=Yes;") To sText If (Trim(sDataBase) <> "") ; Move (sText + "DATABASE=" + Trim(sDatabase)) To sText Move (Right(sText, 1)) To sCrnt If (sCrnt = ";") ; Move (Left(sText, (Length(sText) -1))) To sText If bFrom Begin Get Field_Current_Value Of hoDD Field SncTable.FromLogin To sCrnt If (Trim(sCrnt) <> Trim(sText)) ; Set Field_Changed_Value Of hoDD Field SncTable.FromLogin To sText Get Field_Current_Value Of hoDD Field SncTable.FromPv To sCrnt Get CmDeKry sPassword To sCrnt If (Trim(sCrnt) <> Trim(sPassword)) ; Set Field_Changed_Value Of hoDD Field SncTable.FromPv To sPassword Get Field_Current_Value Of hoDD Field SncTable.FromOwner To sOwner If (Trim(sSchema) <> Trim(sOwner)) ; Set Field_Changed_Value Of hoDD Field SncTable.FromOwner To sSchema End // If bFrom Begin Else Begin Get Field_Current_Value Of hoDD Field SncTable.ToLogin To sCrnt If (Trim(sCrnt) <> Trim(sText)) ; Set Field_Changed_Value Of hoDD Field SncTable.ToLogin To sText Get Field_Current_Value Of hoDD Field SncTable.ToPv To sCrnt Get CmDeKry sPassword To sCrnt If (Trim(sCrnt) <> Trim(sPassword)) ; Set Field_Changed_Value Of hoDD Field SncTable.ToPv To sPassword Get Field_Current_Value Of hoDD Field SncTable.ToOwner To sOwner If (Trim(sSchema) <> Trim(sOwner)) ; Set Field_Changed_Value Of hoDD Field SncTable.ToOwner To sSchema End // Else Begin Send Close_Panel End_Procedure // OnClick On_Key Key_F6 Send Switch On_Key Key_Shift+Key_F6 Send Switch_Back //AB-StoreEnd End_Object // oOK_bn Object oHelp_bn is a cRDSButton Set Label to "&Help" Set Location to 114 144 Set Status_Help to "Help on how to use this panel" //AB-StoreStart Register_Function psTableHelpPath Returns String Procedure OnClick String sHelpName sDriver sPath Integer iFile Get psOrgHelpPath Of ghoWorkspace To sPath If (Right(sPath, 1) <> "\") Move (sPath - "\") To sPath Delegate Get piFile To iFile Delegate Get psDriver To sDriver If (sDriver = ODBC_DRV_ID) Move "LoginODBC.htm" To sHelpName Else If (sDriver = DB2_DRV_ID) Move "LoginDB2.htm" To sHelpName Else If (sDriver = MSSQLDRV_ID Or sDriver = SQL_DRV_ID) ; Move "LoginMSSQL.htm" To sHelpName //Else If (sDriver = ORA_DRV_ID) Move "LoginOracle.htm" to sHelpName Else Begin Send Info_Box ("Sorry, no help is available for the (" * String(sDriver) * ") database driver.") Procedure_Return End Send DoStartDocument "open" sHelpName "" sPath End_Procedure // OnClick On_Key Key_F6 Send Switch On_Key Key_Shift+Key_F6 Send Switch_Back //AB-StoreEnd End_Object // oHelp_bn Object oCancel_bn is a cRDSButton Set Label to "&Cancel" Set Location to 114 198 Set Status_Help to "Cancel changes and close panel" //AB-StoreStart Procedure OnClick Send Close_Panel End_Procedure On_Key Key_F6 Send Switch On_Key Key_Shift+Key_F6 Send Switch_Back //AB-StoreEnd End_Object // oCancel_bn Object oBitmapContainer is a BitmapContainer Set Size to 26 33 Set Location to 9 7 Set Bitmap to "Keys32.bmp" Set Border_Style to Border_None End_Object // oBitmapContainer //AB-StoreStart Set Extended_Window_Style To WS_EX_TOOLWINDOW False Set Extended_Window_Style To WS_EX_DLGMODALFRAME True Procedure DoApplyLogin String sLogin String sPassword String sOwner Handle hoDD Integer iFile iPos String sDriver sText sServer sUser sDatabase Get piFile To iFile Get phoDD To hoDD Get psDriver To sDriver Set Enabled_State Of oOk_bn To False Set Checked_State Of oAuthentication_cb To False If (Length(sLogin) > 0) Begin // Editing login details If (sDriver = ODBC_DRV_ID Or sDriver = DB2_DRV_ID) ; Move "DSN=" To sText Else ; Move "SERVER=" To sText Get LoginExtract sLogin sText To sServer // Function in SyncFuncs.pkg Get LoginExtract sLogin "UID=" To sUser Get LoginExtract sLogin "DATABASE=" To sDatabase End // If (Length(sLogin) > 0) Begin Else If (sDriver <> DFBTRDRV_ID) Begin // Creating new login Set Enabled_State Of oOk_bn To True Get Network_User_Name To sUser Get_Attribute DF_FILE_LOGIN Of iFile To sServer If (Length(Trim(sServer)) > 0) Begin Move (Pos("=", sServer)) To iPos Move (Right(sServer, Length(sServer) -iPos)) To sServer If (Uppercase(sServer) Contains "TRUSTED_CONNECTION=YES") Begin Move (Pos(";", sServer)) To iPos Move (Left(sServer, (iPos - 1))) To sServer Move "TRUSTED_CONNECTION=YES" To sLogin End // If (Uppercase(sServer) contains "TRUSTED_CONNECTION") Begin End // If (Length(Trim(sServer)) > 0) Begin Else Move "(Local)" To sServer If (sDriver = ODBC_DRV_ID) Begin Move sUser To sOwner Set Enabled_State Of oServer_fm To False End // If (sDriver = ODBC_DRV_ID) Begin Else Begin Set Enabled_State Of oServer_fm To True Get_Attribute DF_FILE_OWNER Of iFile To sOwner If (Length(sOwner) = 0) Get Network_User_Name To sOwner End // Else Begin End // Else Begin If ((sDriver = MSSQLDRV_ID Or sDriver = SQL_DRV_ID) And sPassword = "") Begin Move "Trusted_Connection=Yes" To sLogin Set Password_State Of oPassword_fm item 0 To False Set Enabled_State Of oPassword_fm To False End Else Begin Set Password_State Of oPassword_fm item 0 To True Set Enabled_State Of oPassword_fm To True End Set Label Of oDatabase_fm To "Database:" Set Label Of oServer_fm To "Server:" Send Combo_Fill_List Of oServer_fm Set Value Of oServer_fm item 0 To sServer Set Value Of oUser_fm To sUser Set Value Of oPassword_fm To sPassword Set Status_Help Of oPassword_fm To "Password for loggin in to the database" Set Value Of oDatabase_fm To sDatabase Set Value Of oSchema_fm To sOwner Set Enabled_State Of oUser_fm To True Set Visible_State Of oServer_fm To (sDriver <> DFBTRDRV_ID) Set Visible_State Of oDatabase_fm To (sDriver <> DFBTRDRV_ID) Set Visible_State Of oSchema_fm To (sDriver <> DFBTRDRV_ID) Set Visible_State Of oAuthentication_cb To (sDriver = MSSQLDRV_ID Or sDriver = SQL_DRV_ID) If (sDriver = MSSQLDRV_ID Or sDriver = SQL_DRV_ID) Begin Set Checked_State Of oAuthentication_cb To (Uppercase(sLogin) Contains "TRUSTED_CONNECTION=YES") End // If (sDriver = MSSQLDRV_ID or sDriver = SQL_DRV_ID) Begin Else If (sDriver = ODBC_DRV_ID Or sDriver = DB2_DRV_ID) Begin Set Label Of oServer_fm To "DSN:" End Else If (sDriver = DFBTRDRV_ID) Begin Set Label Of oServer_fm To "" Set Label Of oDatabase_fm To "" Set Label Of oSchema_fm To "" Set Status_Help Of oPassword_fm To "Password/Owner name for loggin in to the database" End // Else If (sDriver = DFBTRDRV_ID) Begin Move "Connect to ODBC Login attributes" To sText If (sDriver <> ODBC_DRV_ID) Begin If (sDriver = MSSQLDRV_ID Or sDriver = SQL_DRV_ID) ; Move (Replace("ODBC", sText, "Microsoft SQL")) To sText Else If (sDriver = DB2_DRV_ID) ; Move (Replace("ODBC", sText, "IBM DB2")) To sText Else If (sDriver = DFBTRDRV_ID) ; Move (Replace("ODBC", sText, "Pervasive (Btrieve)")) To sText Else If (sDriver = ORA_DRV_ID) ; Move (Replace("ODBC", sText, "Oracle (Mertech driver)")) To sText End // Else Begin Set Label To sText Set Enabled_State Of oOk_bn To False End_Procedure // DoApplyLogin On_Key Key_Alt+Key_T Send KeyAction Of oTest_bn On_Key Key_Alt+Key_O Send KeyAction Of oOk_bn On_Key Key_Ctrl+Key_S Send KeyAction Of oOk_bn On_Key Key_F2 Send KeyAction Of oOk_bn On_Key Key_Alt+Key_H Send KeyAction Of oHelp_bn On_Key Key_F1 Send KeyAction Of oHelp_bn On_Key Key_Alt+Key_C Send KeyAction Of oCancel_bn On_Key kCancel Send KeyAction Of oCancel_bn //AB-StoreEnd End_Object // oLoginAttributes_dg //AB-StoreStart Procedure DoStartoLoginAttributes_dg Integer iFile Handle hoDD String sLogin String sPassword String sOwner String sDriver Boolean bFrom Handle ho Move (oLoginAttributes_dg(Self)) To ho Set piFile Of ho To iFile Set phoDD Of ho To hoDD Set psDriver Of ho To sDriver Set psOwner Of ho To sOwner Set pbFrom Of ho To bFrom Send DoApplyLogin Of ho sLogin sPassword sOwner Send Popup Of ho End_Procedure // DoStartoLoginAttributes_dg //AB-StoreEnd //AB/ End_Object // prj