Changeset 386fb91 in tol
- Timestamp:
- Jul 2, 2009, 6:57:17 PM (17 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- 6a081c4
- Parents:
- cdb9682
- File:
-
- 1 edited
-
tol/stdlib/data/db/_db_connect.tol (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tol/stdlib/data/db/_db_connect.tol
rcdb9682 r386fb91 3 3 // PURPOSE: Data base connections 4 4 ////////////////////////////////////////////////////////////////////////////// 5 6 5 7 6 ////////////////////////////////////////////////////////////////////////////// … … 13 12 "User just needs to cretae all connections at the begin of a project:\n" 14 13 "\n" 15 " DBHandlerMyDbc_1 = DBConnect::Create(...);\n"16 " DBHandlerMyDbc_2 = DBConnect::Create(...);\n"14 " NameBlock MyDbc_1 = DBConnect::Create(...);\n" 15 " NameBlock MyDbc_2 = DBConnect::Create(...);\n" 17 16 "\n" 18 17 "Afterwords user can call MyDbc_n::Open(0) or better MyDbc_n::Activate(0) " … … 22 21 "recommended to avoid server overhead."; 23 22 24 //////////////////////////////////////////////////////////////////////////////25 Class DBHandler26 //////////////////////////////////////////////////////////////////////////////27 {28 Text _.autodoc.description;29 Text _.alias;30 Text _.user;31 Text _.password;32 Text _.server;33 Text _.driver;34 Text _.defaultDB;35 Real _.isOpen;36 37 Real Open(Real unused)38 {39 If(_.isOpen, 1,40 {41 //VBR: Esto es un parche para salvar el ticket #697 pero lo adecuado42 //sería poder usar los argumentos adicionales con el driver ODBC sin43 //necesidad de crear el alias en la configuración de herramientas del44 //sistema45 Real ok = If(_.driver=="odbc",46 DBOpen(_.alias, _.user, _.password),47 DBOpen(_.alias, _.user, _.password,48 [[_.driver, _.defaultDB, _.server]]));49 Real _.isOpen := ok;50 WriteLn("[DBConnect::"+_.alias+"::Open] "+51 I2("Connection is ", "La conexión ")+52 If(ok,I2("is OK","tuvo exito"),I2("has failed","ha fallado")));53 ok54 })55 };56 Real Activate(Real unused)57 {58 If(!_.isOpen, Open(0), DBActivate(_.alias) )59 };60 Real Close(Real unused)61 {62 If(!_.isOpen, 0,63 {64 Real _.isOpen := false;65 DBClose(_.alias);66 Text DBConnect::currentAlias := "";67 Real True68 })69 };70 Real Check(Real unused)71 {72 WriteLn("[DBConnect::Create] "+73 I2("Checking connection to ",74 "Chequeando la conexión a ")+_.alias);75 Real ok.open = Open(0);76 If(!ok.open, false, Close(0))77 }78 };79 80 23 //Stores all available connections 81 24 Set _.allConnections = Copy(Empty); 25 26 Text currentAlias = ""; 82 27 83 28 //////////////////////////////////////////////////////////////////////////// … … 88 33 //////////////////////////////////////////////////////////////////////////// 89 34 { 90 DBHandlerdbc =35 NameBlock dbc = 91 36 [[ 92 37 Text _.autodoc.description = … … 99 44 Text _.password = password; 100 45 Text _.server = server; 46 Real _.isOpen = false; 101 47 Text _.driver = 102 48 { … … 119 65 //Text _.defaultDB = If(_.driver=="odbc", alias, defaultDataBase); 120 66 Text _.defaultDB = defaultDataBase; 121 122 Real _.isOpen = false 67 68 Real Open(Real unused) 69 { 70 If(_.isOpen, 1, 71 { 72 //VBR: Esto es un parche para salvar el ticket #697 pero lo adecuado 73 //sería poder usar los argumentos adicionales con el driver ODBC sin 74 //necesidad de crear el alias en la configuración de herramientas del 75 //sistema 76 Real ok = If(_.driver=="odbc", 77 DBOpen(_.alias, _.user, _.password), 78 DBOpen(_.alias, _.user, _.password, 79 [[_.driver, _.defaultDB, _.server]])); 80 Real _.isOpen := ok; 81 If(ok, 82 { 83 Text DBConnect::currentAlias := _.alias; 84 WriteLn("[DBConnect::"+_.alias+"::Open] "+ 85 I2("Connection is ", "La conexión ")+ 86 I2("is OK","tuvo exito")) 87 }, 88 { 89 WriteLn("[DBConnect::"+_.alias+"::Open] "+ 90 I2("Connection is ", "La conexión ")+ 91 I2("has failed","ha fallado")) 92 }); 93 ok 94 }) 95 }; 96 Real _IsActive(Real unused) 97 { 98 Set setAll = DBGetOpened(""); 99 Set setAct = Select(setAll, Real (Set reg) { 100 Eq(reg["status"],1) 101 }); 102 Text active = If(IsEmpty(setAct), "", setAct[1]["alias"]); 103 Real (active==_.alias) 104 }; 105 Real Activate(Real unused) 106 { 107 If(_IsActive(unused), True, 108 { 109 If(!_.isOpen, Open(0) ); 110 Real ok = DBActivate(_.alias); 111 If(ok, 112 { 113 Text DBConnect::currentAlias := _.alias; 114 WriteLn("[DBConnect::"+_.alias+"::Open] "+ 115 I2("Connection is ", "La conexión ")+ 116 I2("is now active","está ahora activa")) 117 }, 118 { 119 WriteLn("[DBConnect::"+_.alias+"::Open] "+ 120 I2("Connection is ", "La conexión ")+ 121 I2("cannot be activated","no se pudo activar")) 122 }); 123 ok 124 }) 125 }; 126 Real Close(Real unused) 127 { 128 If(!_.isOpen, 0, 129 { 130 Real _.isOpen := false; 131 DBClose(_.alias) 132 }) 133 }; 134 Real Check(Real unused) 135 { 136 WriteLn("[DBConnect::Create] "+ 137 I2("Checking connection to ", 138 "Chequeando la conexión a ")+_.alias); 139 Real ok.open = Open(0); 140 If(!ok.open, false, Close(0)) 141 } 123 142 ]]; 124 143 Real If(!ObjectExist("NameBlock","_.allConnections::"+alias), … … 132 151 Real OpenAll(Real unused) 133 152 { 134 SetMin(EvalSet(_.allConnections, Real( DBHandlerdbc) { dbc::Open(0) }))153 SetMin(EvalSet(_.allConnections, Real(NameBlock dbc) { dbc::Open(0) })) 135 154 }; 136 155 Real CheckAll(Real unused) 137 156 { 138 SetMin(EvalSet(_.allConnections, Real( DBHandlerdbc) { dbc::Check(0) }))157 SetMin(EvalSet(_.allConnections, Real(NameBlock dbc) { dbc::Check(0) })) 139 158 }; 140 159 Real CloseAll(Real unused) 141 160 { 142 SetMin(EvalSet(_.allConnections, Real( DBHandlerdbc) { dbc::Close(0) }))161 SetMin(EvalSet(_.allConnections, Real(NameBlock dbc) { dbc::Close(0) })) 143 162 } 144 163 ]];
Note: See TracChangeset
for help on using the changeset viewer.
