Rev 830 | Rev 1130 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 830 | Rev 1050 | ||
---|---|---|---|
1 | <?php |
1 | <?php |
2 | 2 | ||
3 | /* |
3 | /* |
4 | * OIDplus 2.0 |
4 | * OIDplus 2.0 |
5 | * Copyright 2019 - 2021 Daniel Marschall, ViaThinkSoft |
5 | * Copyright 2019 - 2021 Daniel Marschall, ViaThinkSoft |
6 | * |
6 | * |
7 | * Licensed under the Apache License, Version 2.0 (the "License"); |
7 | * Licensed under the Apache License, Version 2.0 (the "License"); |
8 | * you may not use this file except in compliance with the License. |
8 | * you may not use this file except in compliance with the License. |
9 | * You may obtain a copy of the License at |
9 | * You may obtain a copy of the License at |
10 | * |
10 | * |
11 | * http://www.apache.org/licenses/LICENSE-2.0 |
11 | * http://www.apache.org/licenses/LICENSE-2.0 |
12 | * |
12 | * |
13 | * Unless required by applicable law or agreed to in writing, software |
13 | * Unless required by applicable law or agreed to in writing, software |
14 | * distributed under the License is distributed on an "AS IS" BASIS, |
14 | * distributed under the License is distributed on an "AS IS" BASIS, |
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
16 | * See the License for the specific language governing permissions and |
16 | * See the License for the specific language governing permissions and |
17 | * limitations under the License. |
17 | * limitations under the License. |
18 | */ |
18 | */ |
19 | 19 | ||
- | 20 | use ViaThinkSoft\OIDplus\OIDplusDatabaseConnection; |
|
- | 21 | ||
20 | /** |
22 | /** |
21 | * This function will be called by OIDplusDatabaseConnection.class.php at method afterConnect(). |
23 | * This function will be called by OIDplusDatabaseConnection.class.php at method afterConnect(). |
22 | * @param OIDplusDatabaseConnection $db is the OIDplusDatabaseConnection class |
24 | * @param OIDplusDatabaseConnection $db is the OIDplusDatabaseConnection class |
23 | * @return int new version set |
25 | * @return int new version set |
24 | * @throws OIDplusException |
26 | * @throws \ViaThinkSoft\OIDplus\OIDplusException |
25 | */ |
27 | */ |
26 | function oidplus_dbupdate_202(OIDplusDatabaseConnection $db) { |
28 | function oidplus_dbupdate_202(OIDplusDatabaseConnection $db) { |
27 | if ($db->transaction_supported()) $db->transaction_begin(); |
29 | if ($db->transaction_supported()) $db->transaction_begin(); |
28 | 30 | ||
29 | if ($db->getSlang()->id() == 'mssql') { |
31 | if ($db->getSlang()->id() == 'mssql') { |
30 | $db->query("CREATE FUNCTION [dbo].[getOidArc] (@strList varchar(512), @maxArcLen int, @occurence int) |
32 | $db->query("CREATE FUNCTION [dbo].[getOidArc] (@strList varchar(512), @maxArcLen int, @occurence int) |
31 | RETURNS varchar(512) AS |
33 | RETURNS varchar(512) AS |
32 | BEGIN |
34 | BEGIN |
33 | DECLARE @intPos int |
35 | DECLARE @intPos int |
34 | 36 | ||
35 | DECLARE @cnt int |
37 | DECLARE @cnt int |
36 | SET @cnt = 0 |
38 | SET @cnt = 0 |
37 | 39 | ||
38 | if SUBSTRING(@strList, 1, 4) <> 'oid:' |
40 | if SUBSTRING(@strList, 1, 4) <> 'oid:' |
39 | begin |
41 | begin |
40 | RETURN '' |
42 | RETURN '' |
41 | end |
43 | end |
42 | 44 | ||
43 | SET @strList = RIGHT(@strList, LEN(@strList)-4) |
45 | SET @strList = RIGHT(@strList, LEN(@strList)-4) |
44 | 46 | ||
45 | WHILE CHARINDEX('.',@strList) > 0 |
47 | WHILE CHARINDEX('.',@strList) > 0 |
46 | BEGIN |
48 | BEGIN |
47 | SET @intPos=CHARINDEX('.',@strList) |
49 | SET @intPos=CHARINDEX('.',@strList) |
48 | SET @cnt = @cnt + 1 |
50 | SET @cnt = @cnt + 1 |
49 | IF @cnt = @occurence |
51 | IF @cnt = @occurence |
50 | BEGIN |
52 | BEGIN |
51 | SET @strList = LEFT(@strList,@intPos-1) |
53 | SET @strList = LEFT(@strList,@intPos-1) |
52 | RETURN REPLICATE('0', @maxArcLen-len(@strList)) + @strList |
54 | RETURN REPLICATE('0', @maxArcLen-len(@strList)) + @strList |
53 | END |
55 | END |
54 | SET @strList = RIGHT(@strList, LEN(@strList)-@intPos) |
56 | SET @strList = RIGHT(@strList, LEN(@strList)-@intPos) |
55 | END |
57 | END |
56 | IF LEN(@strList) > 0 |
58 | IF LEN(@strList) > 0 |
57 | BEGIN |
59 | BEGIN |
58 | SET @cnt = @cnt + 1 |
60 | SET @cnt = @cnt + 1 |
59 | IF @cnt = @occurence |
61 | IF @cnt = @occurence |
60 | BEGIN |
62 | BEGIN |
61 | RETURN REPLICATE('0', @maxArcLen-len(@strList)) + @strList |
63 | RETURN REPLICATE('0', @maxArcLen-len(@strList)) + @strList |
62 | END |
64 | END |
63 | END |
65 | END |
64 | 66 | ||
65 | RETURN REPLICATE('0', @maxArcLen) |
67 | RETURN REPLICATE('0', @maxArcLen) |
66 | END"); |
68 | END"); |
67 | } |
69 | } |
68 | 70 | ||
69 | $version = 203; |
71 | $version = 203; |
70 | $db->query("UPDATE ###config SET value = ? WHERE name = 'database_version'", array($version)); |
72 | $db->query("UPDATE ###config SET value = ? WHERE name = 'database_version'", array($version)); |
71 | 73 | ||
72 | if ($db->transaction_supported()) $db->transaction_commit(); |
74 | if ($db->transaction_supported()) $db->transaction_commit(); |
73 | 75 | ||
74 | return $version; |
76 | return $version; |
75 | } |
77 | } |
76 | 78 |