source: tol/tol_tests/toldb/dbt.tol @ 79d70d7

1941-docker-image-to-testdevel
Last change on this file since 79d70d7 was 79d70d7, checked in by Víctor de Buen <vdebuen@…>, 17 years ago

Using standard names of structures

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@1518 be4846ae-f051-483a-831f-b64e7d08527f

  • Property mode set to 100644
File size: 4.6 KB
Line 
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
Note: See TracBrowser for help on using the repository browser.