Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Exception code error
Message
De
25/10/2001 07:22:24
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
COM/DCOM et OLE Automation
Titre:
Exception code error
Divers
Thread ID:
00573079
Message ID:
00573079
Vues:
48
hi,
I try to develop my class as DLL. However, I get unepcified error / exception code from 0:0 to ?:?
the following is my code
DEFINE CLASS oUserCtrl AS SESSION 
	DATASESSION = 2
	
	PROTECTED cCurrentUser, nUserCount, DBPath, nMaxUsers, cEXEDir, lPresetEnv
	
	cCurrentUser = ""
	nUserCount = 0
	DBPath = ""
	nMaxUser = 0
	cEXEDir = ADDBS(JUSTPATH(APPLICATION.ServerName))
	lPresetEnv = .F.
	
	PROCEDURE DESTROY
		CLOSE TABLE ALL
	ENDPROC
	
	PROCEDURE DBPath_ASSIGN
	LPARAMETER tcDBPath
	
		IF NOT DIRECTORY(tcDBPath)
			MD (tcDBPath)
		ENDIF
		
		THIS.DBPath = tcDBPath
	ENDPROC
	
	PROCEDURE PresetEnv
		IF TYPE("gcAppName") # "C"           &&ERROR OCCURED
			RETURN .F.
		ENDIF
		
		SET EXCLUSIVE OFF
		SET TALK OFF
		SET RESOURCE OFF

		OPEN DATABASE (THIS.cEXEDir + "Data\UserCtrl") SHARED
		USE UserCtrl!tblDBPath AGAIN SHARED IN 0
		SELECT tblDBPath
		LOCATE FOR cAppName = tcAppName
		IF FOUND()
			THIS.DBPath = ADDBS(cDBPath) + "OnlineUser\"
		ELSE
			QUIT
		ENDIF

		USE UserCtrl!tblPrgLicense IN 0 NOUPDATE
		LOCATE FOR cAppName = tcAppName
		IF FOUND()
			THIS.nMaxUsers = nMaxUsers
		ELSE
			QUIT
		ENDIF
		
		USE IN SELECT("tblPrgLicense")
		THIS.lPresetEnv = .T.
		
	ENDPROC
	PROCEDURE GetUserCount
		RETURN THIS.nUserCount
	ENDPROC
	
	PROCEDURE LoginUser
	LPARAMETER tcUser
	LOCAL lnUserCount, lcLoginTxt, lcLoginID
		
		WITH THIS
			IF NOT .lPresetEnv
			      .PresetEnv()
			ENDIF

			lnUserCount = 0
			IF NOT USED("tblUserCtrl")
				USE UserCtrl!tblUserCtrl AGAIN SHARED IN 0
			ENDIF
		
			SELECT tblUserCtrl
			SCAN FOR NOT EMPTY(cLoginID)
				lcLoginTxt = .DBPath + cLoginID + ".txt"
				IF FOPEN(lcLoginTxt)
					ERASE (lcLoginTxt)
					REPLACE cUserName WITH "" ;
							cLoginID WITH ""
				ELSE
					lnUserCount = lnUserCount + 1
				ENDIF
			ENDSCAN
			
			.nUserCount = lnUserCount

			IF lnUserCount < .nMaxUsers
				LOCATE FOR EMPTY(cLoginID)
				IF NOT FOUND()
					APPEND BLANK
				ENDIF

				lcLoginID = SYS(2015)
				REPLACE cUserName WITH tcUser ;
						cLoginID WITH lcLoginID
				
				FCREATE(.DBPath + lcLoginID + ".txt")

				.nUserCount = .nUserCount + 1

				USE IN SELECT("tblUserCtrl")
				RETURN "PASS-"
			ELSE		
				USE IN SELECT("tblUserCtrl")
				RETURN "MAXIMUM-"
			ENDIF
		ENDWITH
	ENDPROC
	
ENDDEFINE
Any ideas??
I am not the most powerful man in this world.
I am not the worst man in this world either.
I just as same as all of you.
I still need to learn from my mistakes...
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform