//**************************************************************************** // $Module type: CLASS // $Module name: cDbComboformDataTable // $Author : Nils G. Svedmyr // Created : 2002-07-22 @ 09:34 // // Description : // // $Rev History // 2002-07-22 Module header created //**************************************************************************** Use cRDSDbComboform.pkg // Visual DataFlex 12.0 Migration Utility, added March 28, 2007: 15:13:24 #IF (!@ >= 120) { OverrideProperty=Entry_State InitialValue=False } { OverrideProperty=Combo_Sort_State InitialValue=False } { OverrideProperty=Label_Row_Offset InitialValue=0 } { OverrideProperty=Label_Col_Offset InitialValue=2 } { OverrideProperty=Label_Justification_Mode InitialValue=jMode_Right } { OverrideProperty=Label_Justification_Mode EnumList="jMode_Right, jMode_Left, jMode_Center" } { OverrideProperty=Size InitialValue=13,150 } #ENDIF Class cDbComboformDriver Is A cRDSDbComboform Procedure Construct_Object Forward Send Construct_Object Property Handle phoDD (Main_DD(Self)) Property Integer piDbType 0 Property Boolean pbDbType1 False // DataFlex Property Boolean pbDbType2 True // IBM DB2 Property Boolean pbDbType3 True // MS SQL Property Boolean pbDbType4 True // ODBC Property Boolean pbDbType5 True // Oracle Property Boolean pbDbType6 True // Pervasive Set Code_Display_Mode To Cb_Code_Display_Description On_Key kCancel Send CancelWizard On_Key kClose_Panel Send CancelWizard End_Procedure // Construct_Object Procedure End_Construct_Object Forward Send End_Construct_Object Set Combo_Sort_State To False End_Procedure // End_Construct_Object Procedure DoDelegateCancel Send CancelWizard End_Procedure // DoDelegateCancel Procedure DoEnableDisable Integer iDbType Set piDbType To iDbType // showln "Send DoFillData will now be send" Send DoFillData End_Procedure // DoEnableDisable Procedure DoCheckClear Integer iFile iField Handle hoDD //showln "DoCheckClear" Send Combo_Delete_Data Get phoDD To hoDD Send Combo_Add_Item " " Set WinCombo_Current_Item To 0 // Get Data_File To iFile // Get Data_Field To iField // Set File_Field_Changed_Value Of hoDD iFile iField To "" // Set File_Field_Changed_State Of hoDD To False End_Procedure // DoCheckClear Procedure DoFillData Integer iType iRetval iRetval2 iFile iField Handle hoDD Boolean bDbType String sDrv1 sDrv2 sDrv1Txt sDrv2Txt sPath sOldVal sDriver sDAWTxt sMDSTxt sDrvId1 sDrvId2 sText Get phoDD To hoDD Get Data_File To iFile Get Data_Field To iField // 2003-05-26 ------------------------------------ Start Nils G. Svedmyr // Bugfix. If (Current_Record(hoDD)) ; Get File_Field_Current_Value Of hoDD iFile iField To sDriver // 2003-05-26 ------------------------------------ Stop Nils G. Svedmyr Send Combo_Delete_Data Get piDbType To iType If Not iType Procedure_Return //showln "DoFillData in cDbComboformDriver. iType = " iType Move 1 To iRetval Move 1 To iRetval2 Move "(Data Access Worldwide)" To sDAWTxt Move "(Mertech Data Systems)" To sMDSTxt Get psProgramPath Of (phoWorkspace(ghoApplication)) To sPath Case Begin Case (iType = 1) // DataFlex Move FLEX_DRV_ID To sDrvId1 Get pbDbType1 To bDbType Move FLEX_DRV_ID To sDrv1 Move (FLEX_DRV_ID * sDAWTxt) To sDrv1Txt Case Break Case (iType = 2) // IBM DB2 Move DB2_DRV_ID To sDrvId1 Get pbDbType2 To bDbType Get vFilePathExists (sPath + "\" + DB2_DRV_ID + ".dll") To iRetval If iRetval Begin Move DB2_DRV_ID To sDrv1 Move (DB2_DRV_ID * sDAWTxt) To sDrv1Txt End // If iRetval Begin Move MDS_DB2_ID To sDrvId2 Get vFilePathExists (sPath + "\" + MDS_DB2_ID + ".dll") To iRetval2 If iRetval2 Begin Move MDS_DB2_ID To sDrv2 Move (MDS_DB2_ID * sMDSTxt) To sDrv2Txt End // If iRetval2 Begin Case Break Case (iType = 3) // MS SQL Move MSSQLDRV_ID To sDrvId1 Get pbDbType3 To bDbType Get vFilePathExists (sPath + "\" + MSSQLDRV_ID + ".dll") To iRetval If iRetval Begin Move MSSQLDRV_ID To sDrv1 Move (MSSQLDRV_ID * sDAWTxt) To sDrv1Txt End // If iRetval Begin Move SQL_DRV_ID To sDrvId2 Get vFilePathExists (sPath + "\" + SQL_DRV_ID + ".dll") To iRetval2 If iRetval2 Begin Move SQL_DRV_ID To sDrv2 Move (SQL_DRV_ID * sMDSTxt) To sDrv2Txt End // If iRetval2 Begin Case Break Case (iType = 4) // ODBC Move ODBC_DRV_ID To sDrvId1 Get pbDbType4 To bDbType Get vFilePathExists (sPath + "\" + ODBC_DRV_ID + ".dll") To iRetval If iRetval Begin Move ODBC_DRV_ID To sDrv1 Move (ODBC_DRV_ID * sDAWTxt) To sDrv1Txt End // If iRetval Begin Case Break // Oracle Case (iType = 5) // 2003-07-26 ------------------------------------ Start Nils G. Svedmyr Move ODBC_DRV_ID To sDrvId1 // Get pbDbType4 To bDbType Get pbDbType5 To bDbType Get vFilePathExists (sPath + "\" + ODBC_DRV_ID + ".dll") To iRetval If iRetval Begin Move ODBC_DRV_ID To sDrv1 Move (ODBC_DRV_ID * sDAWTxt) To sDrv1Txt Move 0 To iRetval // To Trigger that user should use the ODBC option instead. Move 0 To iRetval2 // To Trigger that user should use the ODBC option instead. End // If iRetval Begin // Move ORA_DRV_ID To sDrvId1 // Get pbDbType5 To bDbType // Get vFilePathExists (sPath + "\" + ORA_DRV_ID + ".dll") To iRetval // If iRetval Begin // Move ORA_DRV_ID To sDrv1 // Move (ORA_DRV_ID * sMDSTxt) To sDrv1Txt // End // If iRetval Begin // 2003-07-26 ------------------------------------ Stop Nils G. Svedmyr Case Break Case (iType = 6) // Pervasive.SQL Move DFBTRDRV_ID To sDrvId1 Get pbDbType6 To bDbType Get vFilePathExists (sPath + "\" + DFBTRDRV_ID + ".dll") To iRetval If iRetval Begin Move DFBTRDRV_ID To sDrv1 Move (DFBTRDRV_ID * sDAWTxt) To sDrv1Txt End // If iRetval Begin Case Break Case Else Procedure_Return Case End //showln "sDrv1 = " sDrv1 " sDrv2 = " sDrv2 " iRetval = " iRetval " iRetval2 = " iRetval2 If (bDbType And (iRetval = 0 And iRetval2 = 0)) Begin // showln "bDbType" // Send info_Box ("Self" * string(self) * "iType" * string(iType) * "Boolean" * String(bDbType) * "iRetval" * string(iRetval) * "iRetval2" * string(iretval2)) If (iType = 5) Move ("If you need to connect to Oracle, select the 'ODBC' database format and connect with an Oracle ODBC driver." + ; "\n\nNote: You will not receive this warning again until the next time the program is started.") To sText Else Move ("If you want to use this format install the driver in the" * sPath * "folder or try to re-install CrossMerge. You should _not_ try to create a connect record with this database format until this has been corrected." + ; "\n\nNote: You will not receive this warning again until the next time the program is started.") To sText If (iRetval = 0 And iRetval2 = 0) Begin If (iType = 5) Send Info_Box sText Else Send Stop_Box ("The native database drivers" * String(sDrvId1) + ".dll and" * String(sDrvId2) + ".dll are missing and one of them is needed for the selected database format.\n" + sText) End // If (iRetval = 0 And iRetval2 = 0) Begin Else If (iRetval = 0) Begin If (iType = 5) Send Stop_Box sText Else Send Stop_Box ("The native database driver" * String(sDrvId1) + ".dll is missing and is needed for the selected database format.\n" + sText) End // Else If (iRetval = 0) Begin If (iType = 1) Set pbDbType1 To False If (iType = 2) Set pbDbType2 To False If (iType = 3) Set pbDbType3 To False If (iType = 4) Set pbDbType4 To False If (iType = 5) Set pbDbType5 To False If (iType = 6) Set pbDbType6 To False Procedure_Return End // If (bDbType And iRetval = 0 And iRetval2 = 0) Begin If (Current_Record(hoDD)) Move sDriver To sDrv1 If (Length(sDrv1) > 0) Send Combo_Add_Item sDrv1Txt sDrv1 If (Length(sDrv2) > 0) Send Combo_Add_Item sDrv2Txt sDrv2 //showln "sDrv1 = " sDrv1 " sDrv1Txt = " sDrv1Txt " sDrv2 = " sDrv2 " sDrv2Txt = " sDrv2Txt // 2003-05-26 ------------------------------------ Start Nils G. Svedmyr If (Current_Record(hoDD)) Procedure_Return // Get File_Field_Current_Value Of hoDD iFile iField To sOldVal // Move (Trim(sOldVal)) To sOldVal // Bugfix. // Else Begin // 2003-05-26 ------------------------------------ Stop Nils G. Svedmyr If (Length(sDrv1) > 0) Set File_Field_Changed_Value Of hoDD iFile iField To sDrv1 Else If (Length(sDrv2) > 0) Set File_Field_Changed_Value Of hoDD iFile iField To sDrv2 Move 0 To iRetval If (Length(sDrv1) > 0) Begin If (iType <> 5) Get WinCombo_Item_Matching (sDrv1 * sDAWTxt) To iRetval Else Get WinCombo_Item_Matching (sDrv1 * sMDSTxt) To iRetval End // If (Length(sDrv1) > 0) Begin Else If (Length(sDrv2) > 0) Get WinCombo_Item_Matching (sDrv2 * sMDSTxt) To iRetval Set WinCombo_Current_Item To iRetval End_Procedure // DoFillData End_Class // cDbComboformDriver