Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

70 lignes
2.1KB

  1. '=======================================================================================================================
  2. ' CREATE DATABASE (Standalone VBScript, ADOX)
  3. '=======================================================================================================================
  4. ' Creates a new, empty Access (.accdb) database using ADOX.
  5. '
  6. ' Usage:
  7. ' cscript //nologo scripts\createDatabase.vbs [path] [/force]
  8. '
  9. ' Defaults to db\webdata.accdb under the project root. Refuses to overwrite an existing file unless /force is given.
  10. ' Requires the Microsoft Access Database Engine (ACE OLEDB 12.0 or 16.0) matching the bitness of cscript.exe.
  11. '
  12. Option Explicit
  13. Dim fso, scriptDir, projectRoot, dbPath, force, i, arg
  14. Dim providers, p, cat, created, lastErr
  15. Set fso = CreateObject("Scripting.FileSystemObject")
  16. scriptDir = fso.GetParentFolderName(WScript.ScriptFullName)
  17. projectRoot = fso.GetAbsolutePathName(scriptDir & "\..")
  18. dbPath = projectRoot & "\db\webdata.accdb"
  19. force = False
  20. For i = 0 To WScript.Arguments.Count - 1
  21. arg = WScript.Arguments(i)
  22. If LCase(arg) = "/force" Then
  23. force = True
  24. Else
  25. dbPath = fso.GetAbsolutePathName(arg)
  26. End If
  27. Next
  28. If fso.FileExists(dbPath) Then
  29. If Not force Then
  30. WScript.Echo "Error: " & dbPath & " already exists. Use /force to overwrite."
  31. WScript.Quit 1
  32. End If
  33. fso.DeleteFile dbPath, True
  34. End If
  35. If Not fso.FolderExists(fso.GetParentFolderName(dbPath)) Then
  36. fso.CreateFolder fso.GetParentFolderName(dbPath)
  37. End If
  38. providers = Array("Microsoft.ACE.OLEDB.16.0", "Microsoft.ACE.OLEDB.12.0")
  39. created = False
  40. lastErr = ""
  41. For Each p In providers
  42. On Error Resume Next
  43. Set cat = CreateObject("ADOX.Catalog")
  44. cat.Create "Provider=" & p & ";Data Source=" & dbPath & ";"
  45. If Err.Number = 0 Then
  46. created = True
  47. Else
  48. lastErr = p & ": " & Err.Description
  49. End If
  50. Err.Clear
  51. On Error GoTo 0
  52. Set cat = Nothing
  53. If created Then
  54. WScript.Echo "Created " & dbPath & " using " & p
  55. Exit For
  56. End If
  57. Next
  58. If Not created Then
  59. WScript.Echo "Error: could not create database. " & lastErr
  60. WScript.Quit 1
  61. End If

Powered by TurnKey Linux.