RdbmsInfoAccess.lua
上传用户:cccombo
上传日期:2021-01-31
资源大小:16445k
文件大小:5k
源码类别:

MySQL数据库

开发平台:

SQL

  1. -- ----------------------------------------------------------------------------------------
  2. -- Copyright (C) 2004 MySQL AB
  3. --
  4. -- This program is free software; you can redistribute it and/or modify
  5. -- it under the terms of the GNU General Public License as published by
  6. -- the Free Software Foundation; either version 2 of the License, or
  7. -- (at your option) any later version.
  8. --
  9. -- This program is distributed in the hope that it will be useful,
  10. -- but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. -- GNU General Public License for more details.
  13. --
  14. -- You should have received a copy of the GNU General Public License
  15. -- along with this program; if not, write to the Free Software
  16. -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17. -- ----------------------------------------------------------------------------------------
  18. -- ----------------------------------------------------------------------------------------
  19. -- @file RdbmsInfoAccess.lua
  20. -- @brief Module that contains functionality for database management
  21. -- ----------------------------------------------------------------------------------------
  22. -- ----------------------------------------------------------------------------------------
  23. -- @brief Returns the information about this module
  24. --
  25. --   Every Grt module has to implement this function to return information about the 
  26. -- module. Note that new functions that should be exposed to the Grt have to be listed 
  27. -- here. Function that are not exposed should start with a underscore.
  28. --
  29. -- @return A dict that contains the name and the function names of the module
  30. -- ----------------------------------------------------------------------------------------
  31. function getModuleInfo()
  32.   local moduleInfo= {
  33.     name= "RdbmsInfoAccess", 
  34.     functions= {
  35.       "getRdbmsInfo::"
  36.     }, 
  37.     extends= "RdbmsInfo"
  38.   }
  39.   return moduleInfo
  40. end
  41. -- ----------------------------------------------------------------------------------------
  42. -- @brief Function to get information about Access
  43. --
  44. --   Returns a db.mgmt.Rdbms struct with infos about the rdbms
  45. -- 
  46. -- @return a new created db.mgmt.Rdbms GRT value struct 
  47. -- ----------------------------------------------------------------------------------------
  48. function getRdbmsInfo(args)
  49.   local rdbmsMgmt= args[1]
  50.   -- create Rdbms object
  51.   local rdbms= grtV.newObj("db.mgmt.Rdbms", "Access", "{D150C038-494B-444F-9E96-4BF35E58762B}", grtV.toLua(rdbmsMgmt._id))
  52.   rdbms.caption= "MS Access"
  53.   rdbms.databaseObjectPackage= "db"
  54.   -- add driver to the Rdbms' list of drivers
  55.   grtV.insert(rdbms.drivers, getDriverAccessJdbc(rdbms))
  56.   rdbms.defaultDriver= rdbms.drivers[1]
  57.   return grt.success(rdbms)
  58. end
  59. -- ----------------------------------------------------------------------------------------
  60. -- @brief Function to get the Access driver
  61. --
  62. --   Helper function to return infos about the Jdbc driver
  63. -- 
  64. -- @param owner the Grt value of the Rdbms
  65. --
  66. -- @return a new created GRT value of struct "db.mgmt.Driver" containing the driver infos
  67. -- ----------------------------------------------------------------------------------------
  68. function getDriverAccessJdbc(owner)
  69.   -- create driver object
  70.   local driver= grtV.newObj("db.mgmt.JdbcDriver", "Access", 
  71.     "{A8F2E8C2-415A-48C5-B8F8-95EE6E7D4FDB}", grtV.toLua(owner._id))
  72.   -- set driver values
  73.   driver.caption= "MS Access"
  74.   driver.description= "JDBC driver to connect to MS Access."
  75.   -- Jdbc specific settings
  76.   driver.className= "sun.jdbc.odbc.JdbcOdbcDriver"
  77.   driver.connectionStringTemplate= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=%databaseFile%;DriverID=22;READONLY=true;UID=%username%;PWD=%password%}"
  78.   -- add driver parameters
  79.   local param= __RdbmsInfo_lua.getDriverParameter(owner, "databaseFile", "Database File:", 
  80.     "MS Access database file.", "file", 1, 218, "", 0, 1)
  81.   param.paramTypeDetails=
  82.     {
  83.       fileType= "MS Access Files",
  84.       fileExtension= "mdb",
  85.       fileOpenDialogCaption, "Open MS Access File ..."
  86.     }
  87.   grtV.insert(driver.parameters, param)
  88.   grtV.insert(driver.parameters, __RdbmsInfo_lua.getDriverParameter(owner, "username", "Username:", 
  89.     "Name of the user to connect with.", "string", 2, 218, "", 0, 0))
  90.   grtV.insert(driver.parameters, __RdbmsInfo_lua.getDriverParameter(owner, "password", "Password:", 
  91.     "The user's password.", "password", 3, 218, "", 0, 0))
  92.   -- advanced parameters
  93.   grtV.insert(driver.parameters, __RdbmsInfo_lua.getDriverParameter(owner, "jdbcConnStr", "Connection String:", 
  94.     "Jdbc Connection String", "string", -1, 218, "", 1, 0))
  95.   driver.defaultModules= 
  96.     {
  97.       ReverseEngineeringModule= "ReverseEngineeringAccess",
  98.       MigrationModule= "MigrationAccess",
  99.       TransformationModule= ""
  100.     }
  101.   if grt.moduleExists("BaseJava") then
  102.     driver.isAccessable= true
  103.     driver.isInstalled= 1
  104.   else
  105.     driver.isAccessable= false
  106.     driver.isInstalled= false
  107.   end
  108.   return driver
  109. end