| 1 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 2 | // FILE : dbt.tol |
|---|
| 3 | // PURPOSE : Structures and functions of Data Base Tests |
|---|
| 4 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 5 | |
|---|
| 6 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 7 | Struct @Dbt.EngineType |
|---|
| 8 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 9 | { |
|---|
| 10 | Text os_, //Operative System |
|---|
| 11 | Text engine_, //Database Engine |
|---|
| 12 | Text driver_ //Client Driver |
|---|
| 13 | }; |
|---|
| 14 | |
|---|
| 15 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 16 | Struct @Dbt.EngineInfo |
|---|
| 17 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 18 | { |
|---|
| 19 | Text driver_, //Client Driver |
|---|
| 20 | Text database_, //Database name |
|---|
| 21 | Text host_, //Database Engine Server Host |
|---|
| 22 | Text port_ //Database Engine Server Port |
|---|
| 23 | }; |
|---|
| 24 | |
|---|
| 25 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 26 | Struct @Dbt.ConnectInfo |
|---|
| 27 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 28 | { |
|---|
| 29 | Text os_, //Operative System |
|---|
| 30 | Text engine_, //Database Engine |
|---|
| 31 | Text driver_, //Client Driver |
|---|
| 32 | Text database_, //Database name |
|---|
| 33 | Text host_, //Database Engine Server Host |
|---|
| 34 | Text port_, //Database Engine Server Port |
|---|
| 35 | Text alias_, //Alias of connection (if driver is ODBC must be defined) |
|---|
| 36 | Text user_, //User with rights over database_ |
|---|
| 37 | Text password_, //User password to access database_ |
|---|
| 38 | Real available_ //USed to specify if connection is available and ready |
|---|
| 39 | }; |
|---|
| 40 | |
|---|
| 41 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 42 | Text Dbt.RootPath(Real unused) |
|---|
| 43 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 44 | { |
|---|
| 45 | GetFilePath(GetAbsolutePath(GetSourcePath(Dbt.RootPath))) |
|---|
| 46 | }; |
|---|
| 47 | |
|---|
| 48 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 49 | Set Dbt.ConnectInfoSeed(@Dbt.EngineType ct) |
|---|
| 50 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 51 | { |
|---|
| 52 | Text alias = "TolTests_"+ct->engine_+"_"+ct->os_+"_"+ct->driver_; |
|---|
| 53 | Text user = "toltester"; |
|---|
| 54 | Text pwd = "pwdtt"; |
|---|
| 55 | Text dbn = "toltests"; |
|---|
| 56 | Text host = If(ToLower(ct->os_)==ToLower(OSName), |
|---|
| 57 | "localhost", |
|---|
| 58 | ct->os_+"_host"); |
|---|
| 59 | Text port = ""; |
|---|
| 60 | Set eng = @Dbt.EngineInfo(ct->driver_,dbn,host,port); |
|---|
| 61 | Set @Dbt.ConnectInfo |
|---|
| 62 | ( |
|---|
| 63 | ct->os_, |
|---|
| 64 | ct->engine_, |
|---|
| 65 | ct->driver_, |
|---|
| 66 | dbn,host,port, |
|---|
| 67 | alias,user,pwd, |
|---|
| 68 | 1 |
|---|
| 69 | ) |
|---|
| 70 | }; |
|---|
| 71 | |
|---|
| 72 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 73 | Set Dbt.Open(@Dbt.ConnectInfo ci) |
|---|
| 74 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 75 | { |
|---|
| 76 | Set eng = @Dbt.EngineInfo(ci->driver_,ci->database_,ci->host_,ci->port_); |
|---|
| 77 | Real open = If(ci->driver_=="odbc", |
|---|
| 78 | DBOpen(ci->alias_,ci->user_,ci->password_), |
|---|
| 79 | DBOpen(ci->alias_,ci->user_,ci->password_,eng)); |
|---|
| 80 | Set @Dbt.ConnectInfo |
|---|
| 81 | ( |
|---|
| 82 | ci->os_, |
|---|
| 83 | ci->engine_, |
|---|
| 84 | ci->driver_, |
|---|
| 85 | ci->database_, |
|---|
| 86 | ci->host_, |
|---|
| 87 | ci->port_, |
|---|
| 88 | ci->alias_, |
|---|
| 89 | ci->user_, |
|---|
| 90 | ci->password_, |
|---|
| 91 | open |
|---|
| 92 | ) |
|---|
| 93 | }; |
|---|
| 94 | |
|---|
| 95 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 96 | Set Dbt.Try(@Dbt.ConnectInfo ci) |
|---|
| 97 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 98 | { |
|---|
| 99 | Set con = Dbt.Open(ci); |
|---|
| 100 | Real close = If(con->available_,DBClose(con->alias_),?); |
|---|
| 101 | Eval(con->alias_+"=con") |
|---|
| 102 | }; |
|---|
| 103 | |
|---|
| 104 | |
|---|
| 105 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 106 | Set Dbt.Engine.Allowed.Get(Real unused) |
|---|
| 107 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 108 | { |
|---|
| 109 | Text fileName = Dbt.RootPath(0)+"dbt.engine.allowed.bst"; |
|---|
| 110 | If(FileExist(fileName), Include(fileName), |
|---|
| 111 | { |
|---|
| 112 | Set engine.type = Include(Dbt.RootPath(0)+"dbt.engine.type.bst"); |
|---|
| 113 | Set seed = EvalSet(engine.type,Dbt.ConnectInfoSeed); |
|---|
| 114 | Set BSTFile(seed,fileName); |
|---|
| 115 | seed |
|---|
| 116 | }) |
|---|
| 117 | }; |
|---|
| 118 | |
|---|
| 119 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 120 | Set Dbt.Engine.Active.Get(Real unused) |
|---|
| 121 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 122 | { |
|---|
| 123 | Include(Dbt.RootPath(0)+"dbt.engine.active.bst") |
|---|
| 124 | }; |
|---|
| 125 | |
|---|
| 126 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 127 | Set Dbt.Engine.Active.Update(Real unused) |
|---|
| 128 | ////////////////////////////////////////////////////////////////////////////// |
|---|
| 129 | { |
|---|
| 130 | Set allowed = Select(Dbt.Engine.Allowed.Get(0),Real(@Dbt.ConnectInfo c) |
|---|
| 131 | { |
|---|
| 132 | c->available_ |
|---|
| 133 | }); |
|---|
| 134 | Set try = EvalSet(allowed,Dbt.Try); |
|---|
| 135 | Set Dbt.Engine.Active = Select(try,Real(@Dbt.ConnectInfo c) |
|---|
| 136 | { |
|---|
| 137 | c->available_ |
|---|
| 138 | }); |
|---|
| 139 | Set BSTFile(Dbt.Engine.Active,Dbt.RootPath(0)+"dbt.engine.active.bst"); |
|---|
| 140 | Dbt.Engine.Active |
|---|
| 141 | }; |
|---|
| 142 | |
|---|
| 143 | |
|---|
| 144 | |
|---|