⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cserver.class

📁 Gambas is a graphical development environment based on a Basic interpreter, like Visual Basic. It us
💻 CLASS
字号:
' Gambas class fileSTATIC PUBLIC All AS NEW CollectionSTATIC PRIVATE $iKey AS IntegerPUBLIC Name AS StringPUBLIC Key AS StringPUBLIC Handle AS ConnectionPUBLIC WasOpened AS BooleanPUBLIC Databases AS String[]PUBLIC Users AS String[]PRIVATE $cAdmin AS CollectionPUBLIC SUB _new(sType AS String, OPTIONAL sHost AS String, OPTIONAL sUser AS String, OPTIONAL sPassword AS String)  Handle = NEW Connection  WITH Handle    .Host = sHost    .Type = sType    .Login = sUser    .Password = sPassword    '.Name = sDatabase  END WITH  IF sHost THEN    Name = sHost  ELSE    Name = "localhost"  ENDIF  IF sUser THEN    Name = sUser & "@" & Name  ENDIF  Name = Name & " (" & sType & ")"  'INC $iKey  Key = Replace(Name, "/", Chr$(9)) 'CStr($iKey)  IF NOT All.Exist(Key) THEN All[Key] = MEENDSTATIC PUBLIC SUB Remove(hServer AS CServer)  hServer.Close  All.Remove(hServer.Key)ENDSTATIC PUBLIC SUB RemoveAll()  DIM hServer AS CServer  FOR EACH hServer IN All    Remove(hServer)  NEXTENDPUBLIC FUNCTION Close() AS Boolean  RETURN CConnection.RemoveAll(ME)ENDPRIVATE SUB RefreshDatabase()  DIM hDatabase AS Database  Databases = NEW String[]  FOR EACH hDatabase IN Handle.Databases    Databases.Add(hDatabase.Name)  NEXT  Databases.SortENDPRIVATE SUB RefreshUser()  DIM hUser AS User  Users = NEW String[]  $cAdmin = NEW Collection  FOR EACH hUser IN Handle.Users    Users.Add(hUser.Name)    IF hUser.Administrator THEN      $cAdmin[hUser.Name] = TRUE    ENDIF  NEXT  Users.SortENDPUBLIC FUNCTION Exec() AS String  Handle.Open  RefreshDatabase  RefreshUser  Handle.Close  WasOpened = TRUECATCH  RETURN Conv$(Error.Text, System.Charset, Desktop.Charset)ENDPUBLIC FUNCTION CreateUser(sUser AS String, bAdmin AS Boolean, sPassword AS String) AS Boolean  Handle.Open  Handle.Users.Add(sUser, sPassword, bAdmin)  RefreshUserFINALLY  Handle.CloseCATCH  Message.Error(("Cannot create user.") & "\n\n" & Error.Text)  RETURN TRUEENDPUBLIC FUNCTION DeleteUser(sUser AS String) AS Boolean  Handle.Open  Handle.Users.Remove(sUser)  RefreshUserFINALLY  Handle.CloseCATCH  Message.Error(("Cannot delete user.") & "\n\n" & Error.Text)  RETURN TRUEENDPUBLIC FUNCTION IsAdmin(sUser AS String) AS Boolean  RETURN $cAdmin.Exist(sUser)ENDPUBLIC FUNCTION EditUser(sUser AS String, sNewPassword AS String) AS Boolean  Handle.Open  Handle.Users[sUser].Password = sNewPasswordFINALLY  Handle.Close  IF Handle.Login = sUser OR ((NOT Handle.Login) AND sUser = System.User) THEN    Handle.Password = sNewPassword  ENDIFCATCH  Message.Error(("Cannot edit user.") & "\n\n" & Error.Text)  RETURN TRUEENDPUBLIC FUNCTION CreateDatabase(sName AS String) AS String  Handle.Open  Handle.Databases.Add(sName)  RefreshDatabaseFINALLY  Handle.CloseCATCH  Message.Error(("Cannot create database.") & "\n\n" & Error.Text)  RETURN TRUEENDPUBLIC FUNCTION DeleteDatabase(sName AS String) AS Boolean  CConnection.Remove(CConnection.All[Key &/ sName])  Handle.Open  Handle.Databases.Remove(sName)  RefreshDatabaseFINALLY  Handle.CloseCATCH  Message.Error(("Cannot delete database.") & "\n\n" & Error.Text)  RETURN TRUEEND

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -