orgAnice CRM – Versionshistorie 4.0.2.1 (15.08.2004) ................................................................................................. 15 4.0.2.2 (15.08.2004) ................................................................................................. 16 4.0.2.3 (15.08.2004) ................................................................................................. 17 4.0.2.4 (15.08.2004) ................................................................................................. 18 4.0.2.10 (16.08.2004) ............................................................................................... 19 4.0.2.11 (16.08.2004) ............................................................................................... 20 4.0.2.12 (16.08.2004) ............................................................................................... 21 4.0.2.13 (03.09.2004) ............................................................................................... 22 4.0.2.14 (03.09.2004) ............................................................................................... 23 4.0.2.15 (11.09.2004) ............................................................................................... 24 4.0.2.16 (11.09.2004) ............................................................................................... 26 4.0.2.17 (13.09.2004) ............................................................................................... 27 4.0.2.18 (13.09.2004) ............................................................................................... 28 4.0.2.19 (16.09.2004) ............................................................................................... 29 4.0.2.20 (17.09.2004) ............................................................................................... 30 4.0.2.21 (17.09.2004) ............................................................................................... 31 4.0.2.22 (17.09.2004) ............................................................................................... 32 4.0.2.23 (17.09.2004) ............................................................................................... 33 4.0.2.24 (17.09.2004) ............................................................................................... 34 4.0.2.25 (17.09.2004) ............................................................................................... 35 4.0.2.26 (20.09.2004) ............................................................................................... 36 4.0.2.27 (21.09.2004) ............................................................................................... 37 4.0.2.28 (26.09.2004) ............................................................................................... 38 4.0.2.29 (26.09.2004) ............................................................................................... 39 4.0.2.30 (26.09.2004) ............................................................................................... 40 4.0.2.31 (26.09.2004) ............................................................................................... 41 4.0.2.32 (03.10.2004) ............................................................................................... 42 4.0.2.33 (04.10.2004) ............................................................................................... 43 4.0.2.34 (06.10.2004) ............................................................................................... 44 4.0.2.36 (06.10.2004) ............................................................................................... 45 4.0.2.37 (11.10.2004) ............................................................................................... 46 4.0.2.38 (11.10.2004) ............................................................................................... 47 orgAnice SQL Versionen - Seite 1 von 510 4.0.2.39 (11.10.2004) ............................................................................................... 48 4.0.2.40 (11.10.2004) ............................................................................................... 49 4.0.2.41 (19.10.2004) ............................................................................................... 50 4.0.2.42 (19.10.2004) ............................................................................................... 51 4.0.2.43 (19.10.2004) ............................................................................................... 52 4.0.2.44 (26.10.2004) ............................................................................................... 53 4.0.2.45 (27.10.2004) ............................................................................................... 54 4.0.2.46 (27.10.2004) ............................................................................................... 55 4.0.2.47 (28.10.2004) ............................................................................................... 56 4.0.2.48 (11.11.2004) ............................................................................................... 57 4.0.2.49 (11.11.2004) ............................................................................................... 58 4.0.2.50 (18.11.2004) ............................................................................................... 59 4.0.2.51 (18.11.2004) ............................................................................................... 60 4.0.2.52 (18.11.2004) ............................................................................................... 61 4.0.2.53 (18.11.2004) ............................................................................................... 62 4.0.2.54 (18.11.2004) ............................................................................................... 63 4.0.2.55 (26.11.2004) ............................................................................................... 64 4.0.2.56 (27.11.2004) ............................................................................................... 65 4.0.2.57 (27.11.2004) ............................................................................................... 66 4.0.2.58 (27.11.2004) ............................................................................................... 67 4.0.2.59 (30.11.2004) ............................................................................................... 68 4.0.2.60 (02.12.2004) ............................................................................................... 69 4.0.2.61 (02.12.2004) ............................................................................................... 70 4.0.2.62 (02.12.2004) ............................................................................................... 71 4.0.2.63 (09.12.2004) ............................................................................................... 72 4.0.2.64 (09.12.2004) ............................................................................................... 73 4.0.2.65 (09.12.2004) ............................................................................................... 74 4.0.2.66 (09.12.2004) ............................................................................................... 75 4.0.2.67 (20.12.2004) ............................................................................................... 76 4.0.2.68 (20.12.2004) ............................................................................................... 77 4.0.2.69 (09.01.2005) ............................................................................................... 78 4.0.2.70 (10.01.2005) ............................................................................................... 79 4.0.2.71 (10.01.2005) ............................................................................................... 80 4.0.2.72 (10.01.2005) ............................................................................................... 81 4.0.2.73 (10.01.2005) ............................................................................................... 82 4.0.2.74 (10.01.2005) ............................................................................................... 83 orgAnice SQL Versionen - Seite 2 von 510 4.0.2.75 (10.01.2005) ............................................................................................... 84 4.0.2.76 (12.01.2005) ............................................................................................... 85 4.0.2.77 (18.01.2005) ............................................................................................... 86 4.0.2.78 (18.01.2005) ............................................................................................... 87 4.0.2.79 (18.01.2005) ............................................................................................... 88 4.0.2.80 (18.01.2005) ............................................................................................... 89 4.0.2.81 (19.01.2005) ............................................................................................... 90 4.0.2.82 (19.01.2005) ............................................................................................... 91 4.0.2.83 (23.01.2005) ............................................................................................... 92 4.0.2.84 (23.01.2005) ............................................................................................... 93 4.0.2.85 (23.01.2005) ............................................................................................... 94 4.0.2.86 (23.01.2005) ............................................................................................... 95 4.0.2.87 (24.01.2005) ............................................................................................... 96 4.0.2.88 (24.01.2005) ............................................................................................... 97 4.0.2.89 (24.01.2005) ............................................................................................... 98 4.0.2.90 (25.01.2005) ............................................................................................... 99 4.0.2.91 (31.01.2005) ............................................................................................. 100 4.0.2.92 (31.01.2005) ............................................................................................. 101 4.0.2.93 (31.01.2005) ............................................................................................. 102 4.0.2.94 (10.02.2005) ............................................................................................. 103 4.0.2.95 (06.03.2005) ............................................................................................. 104 4.0.2.96 (06.03.2005) ............................................................................................. 105 4.0.2.97 (06.03.2005) ............................................................................................. 106 4.0.2.98 (11.03.2005) ............................................................................................. 107 4.0.2.99 (11.03.2005) ............................................................................................. 108 4.0.2.100 (11.03.2005) ........................................................................................... 109 4.0.2.101 (11.03.2005) ........................................................................................... 110 4.0.2.105 (16.03.2005) ........................................................................................... 111 4.0.2.106 (17.03.2005) – SQL: SQL-Replikation und Views ................................... 112 4.0.2.107 (17.03.2005) – SQL: SQL-Replikation und Views ................................... 113 4.0.2.108 (17.03.2005) – SQL: SQL-Replikation und Views ................................... 114 4.0.2.109 (18.03.2005) – SQL: SQL-Replikation und Views ................................... 115 4.0.2.110 (18.03.2005) ........................................................................................... 116 4.0.2.111 (18.03.2005) ........................................................................................... 117 4.0.2.112 (18.03.2005) ........................................................................................... 118 4.0.2.113 (27.03.2005) – SQL: SQL-Replikation und Views ................................... 119 orgAnice SQL Versionen - Seite 3 von 510 4.0.2.114 (27.03.2005) ........................................................................................... 120 4.0.2.115 (27.03.2005) ........................................................................................... 121 4.0.2.116 (05.04.2005) ........................................................................................... 122 4.0.2.117 (07.04.2005) ........................................................................................... 123 4.0.2.118 (08.04.2005) ........................................................................................... 124 4.0.2.120 (08.04.2005) ........................................................................................... 125 4.0.2.121 (22.04.2005) ........................................................................................... 126 4.0.2.122 (22.04.2005) ........................................................................................... 127 4.0.2.123 (22.04.2005) – Merge mit 4.0.2.113........................................................ 128 4.0.2.124 (22.04.2005) ........................................................................................... 129 4.0.2.125 (22.04.2005) ........................................................................................... 130 4.0.2.126 (23.04.2005) ........................................................................................... 131 4.0.2.127 (23.04.2005) ........................................................................................... 132 4.0.2.128 (23.04.2005) ........................................................................................... 133 4.0.2.129 (23.04.2005) – Merge mit 4.0.2.113........................................................ 134 4.0.2.130 (23.04.2005) ........................................................................................... 135 4.0.2.131 (23.04.2005) – Merge mit 4.0.2.113........................................................ 136 4.0.2.132 (24.04.2005) ........................................................................................... 137 4.0.2.133 (24.04.2005) ........................................................................................... 138 4.0.2.134 (24.04.2005) ........................................................................................... 139 4.0.2.135 (24.04.2005) ........................................................................................... 140 4.0.2.136 (11.05.2005) ........................................................................................... 141 4.0.2.137 (11.05.2005) ........................................................................................... 142 4.0.2.138 (11.05.2005) ........................................................................................... 143 4.0.2.139 (13.05.2005) ........................................................................................... 144 4.0.2.140 (13.05.2005) ........................................................................................... 145 4.0.2.141 (22.05.2005) ........................................................................................... 146 4.0.2.142 (22.05.2005) ........................................................................................... 147 4.0.2.143 (24.05.2005) ........................................................................................... 148 4.0.2.144 (24.05.2005) ........................................................................................... 149 4.0.2.145 (24.05.2005) ........................................................................................... 150 4.0.2.147 (26.05.2005) ........................................................................................... 151 4.0.2.148 (30.05.2005) ........................................................................................... 152 4.0.2.149 (30.05.2005) ........................................................................................... 153 4.0.2.150 (31.05.2005) ........................................................................................... 154 4.0.2.151 (01.06.2005) ........................................................................................... 155 orgAnice SQL Versionen - Seite 4 von 510 4.0.2.152 (01.06.2005) ........................................................................................... 156 4.0.2.153 (01.06.2005) ........................................................................................... 157 4.0.2.154 (01.06.2005) ........................................................................................... 158 4.0.2.155 (02.06.2005) ........................................................................................... 159 4.0.2.156 (02.06.2005) ........................................................................................... 160 4.0.2.157 (02.06.2005) ........................................................................................... 161 4.0.2.158 (02.06.2005) ........................................................................................... 162 4.0.2.159 (03.06.2005) ........................................................................................... 163 4.0.2.160 (03.06.2005) ........................................................................................... 164 4.0.2.160 (08.06.2005) ........................................................................................... 165 4.0.2.162 (08.06.2005) ........................................................................................... 166 4.0.2.163 (11.06.2005) ........................................................................................... 167 4.0.2164 (12.06.2005) ............................................................................................ 168 4.0.2.165 (12.06.2005) ........................................................................................... 169 4.0.2.166 (13.06.2005) ........................................................................................... 170 4.0.2.167 (13.06.2005) ........................................................................................... 171 4.0.2.168 (13.06.2005) ........................................................................................... 172 4.0.2.169 (13.06.2005) ........................................................................................... 173 4.0.2.170 (14.06.2005) ........................................................................................... 174 4.0.2.171 (14.06.2005) ........................................................................................... 175 4.0.2.172 (17.06.2005) ........................................................................................... 176 4.0.2.173 (17.06.2005) ........................................................................................... 177 4.0.2.174 (17.06.2005) ........................................................................................... 178 4.0.2.175 (17.06.2005) ........................................................................................... 179 4.0.2.176 (20.06.2005) ........................................................................................... 180 4.0.2.177 (20.06.2005) ........................................................................................... 181 4.0.2.178 (20.06.2005) ........................................................................................... 182 4.0.2.179 (21.06.2005) ........................................................................................... 183 4.0.2.180 (23.06.2005) ........................................................................................... 184 4.0.2.181 (23.06.2005) ........................................................................................... 185 4.0.2.182 (23.06.2005) ........................................................................................... 186 4.0.2.183 (24.06.2005) ........................................................................................... 187 4.0.2.184 (24.06.2005) ........................................................................................... 188 4.0.2.185 (24.06.2005) ........................................................................................... 189 4.0.2.186 (24.06.2005) ........................................................................................... 190 4.0.2.187 (24.06.2005) ........................................................................................... 191 orgAnice SQL Versionen - Seite 5 von 510 4.0.2.188 (24.06.2005) ........................................................................................... 192 4.0.2.189 (27.06.2005) ........................................................................................... 193 4.0.2.190 (02.07.2005) ........................................................................................... 194 4.0.2.191 (04.07.2005) ........................................................................................... 195 4.0.2.192 (11.07.2005) ........................................................................................... 196 4.0.2.193 (11.07.2005) ........................................................................................... 197 4.0.2.194 (11.07.2005) ........................................................................................... 198 4.0.2.195 (11.07.2005) ........................................................................................... 199 4.0.2.196 (12.07.2005) ........................................................................................... 200 4.0.2.197 (14.07.2005) ........................................................................................... 201 4.0.2.198 (15.07.2005) ........................................................................................... 202 4.0.2.199 (15.07.2005) ........................................................................................... 203 4.0.2.200 (18.07.2005) ........................................................................................... 204 4.0.2.201 (18.07.2005) ........................................................................................... 205 4.0.2.202 (20.07.2005) ........................................................................................... 206 4.0.2.203 (20.07.2005) ........................................................................................... 207 4.0.2.204 (20.07.2005) ........................................................................................... 208 4.0.2.205 (22.07.2005) ........................................................................................... 209 4.0.2.206 (25.07.2005) ........................................................................................... 210 4.0.2.207 (25.07.2005) ........................................................................................... 211 4.0.2.208 (01.08.2005) ........................................................................................... 212 4.0.2.209 (01.08.2005) ........................................................................................... 213 {3.1.4|4.0.2}.210 (02.08.2005) ................................................................................ 214 4.0.2.211 (03.08.2005) ........................................................................................... 215 4.0.2.212 (04.08.2005) ........................................................................................... 216 4.0.2.213 (05.08.2005) ........................................................................................... 217 4.0.2.214 (05.08.2005) ........................................................................................... 218 4.0.2.214 (05.08.2005) ........................................................................................... 219 4.0.2.215 (05.08.2005) ........................................................................................... 220 4.0.2.216 (06.08.2005) ........................................................................................... 221 4.0.2.217 (07.08.2005) ........................................................................................... 222 4.0.2.218 (07.08.2005) ........................................................................................... 223 4.0.2.219 (08.08.2005) ........................................................................................... 224 4.0.2.220 (09.08.2005) ........................................................................................... 225 4.0.2.221 (09.08.2005) ........................................................................................... 226 4.0.2.222 (10.08.2005) ........................................................................................... 227 orgAnice SQL Versionen - Seite 6 von 510 4.0.2.223 (10.08.2005) ........................................................................................... 228 4.0.2.224 (16.08.2005) ........................................................................................... 229 4.0.2.225 (16.08.2005) ........................................................................................... 230 4.0.2.226 (16.08.2005) ........................................................................................... 231 4.0.2.227 (16.08.2005) ........................................................................................... 232 4.0.2.228 (17.08.2005) ........................................................................................... 233 4.0.2.229 (17.08.2005) ........................................................................................... 234 4.0.2.230 (17.08.2005) ........................................................................................... 235 4.0.2.231 (17.08.2005) ........................................................................................... 236 4.0.2.232 (17.08.2005) ........................................................................................... 237 4.0.2.233 (17.08.2005) ........................................................................................... 238 4.0.2.234 (18.08.2005) ........................................................................................... 239 4.0.2.235 (20.08.2005) ........................................................................................... 240 4.0.2.236 (20.08.2005) ........................................................................................... 241 4.0.2.237 (20.08.2005) ........................................................................................... 242 4.0.2.238 (20.08.2005) ........................................................................................... 243 4.0.2.239 (21.08.2005) ........................................................................................... 244 4.0.2.240 (22.08.2005) ........................................................................................... 245 4.0.2.241 (13.09.2005) ........................................................................................... 246 4.0.2.242 (14.09.2005) ........................................................................................... 247 4.0.2.243 (26.09.2005) ........................................................................................... 248 4.0.2.244 (29.09.2005) ........................................................................................... 249 4.0.2.245 (30.09.2005) ........................................................................................... 250 4.0.2.246 (12.10.2005) ........................................................................................... 251 4.0.2.247 (12.10.2005) ........................................................................................... 252 4.0.2.248 (12.10.2005) ........................................................................................... 253 4.0.2.249 (14.10.2005) ........................................................................................... 254 4.0.2.250 (18.10.2005) ........................................................................................... 255 4.0.2.251 (18.10.2005) ........................................................................................... 256 4.0.2.252 (30.10.2005) ........................................................................................... 257 4.0.2.253 (30.10.2005) ........................................................................................... 258 4.0.2.254 (31.10.2005) ........................................................................................... 259 4.0.2.255 (31.10.2005) ........................................................................................... 260 4.0.2.256 (01.11.2005) ........................................................................................... 261 4.0.2.257 (02.11.2005) ........................................................................................... 262 4.0.2.258 (04.11.2005) ........................................................................................... 263 orgAnice SQL Versionen - Seite 7 von 510 4.0.2.259 (09.11.2005) ........................................................................................... 264 4.0.2.260 (10.11.2005) ........................................................................................... 265 4.0.2.261 (10.11.2005) ........................................................................................... 266 4.0.2.262 (10.11.2005) ........................................................................................... 267 4.0.2.263 (16.11.2005) ........................................................................................... 268 4.0.2.264 (17.11.2005) ........................................................................................... 269 4.0.2.265 (18.11.2005) ........................................................................................... 270 4.0.2.266 (09.12.2005) ........................................................................................... 271 4.0.2.267 (16.12.2005) ........................................................................................... 272 4.0.2.268 (16.12.2005) ........................................................................................... 273 4.0.2.269 (18.12.2005) ........................................................................................... 274 4.0.2.270 (21.12.2005) ........................................................................................... 275 4.0.2.271 (25.12.2005) ........................................................................................... 276 4.0.2.272 (25.12.2005) ........................................................................................... 277 4.0.2.273 (30.12.2005) ........................................................................................... 278 4.0.2.274 (03.01.2006) ........................................................................................... 279 4.0.2.275 (03.01.2006) ........................................................................................... 280 4.0.2.276 (06.01.2006) ........................................................................................... 281 4.0.2.277 (06.01.2006) ........................................................................................... 282 4.0.2.278 (18.01.2006) ........................................................................................... 283 4.0.2.279 (18.01.2006) ........................................................................................... 284 4.0.2.280 (19.01.2006) ........................................................................................... 285 4.0.2.281 (26.01.2006) ........................................................................................... 286 4.0.2.282 (22.02.2006) ........................................................................................... 287 4.0.2.283 (06.03.2006) ........................................................................................... 288 4.0.2.284 (23.04.2006) ........................................................................................... 289 4.0.2.300 (01.09.2005) ........................................................................................... 290 4.0.2.301 (01.09.2005) ........................................................................................... 291 4.0.2.302 (11.09.2005) ........................................................................................... 292 4.0.2.303 (11.09.2005) ........................................................................................... 293 4.0.2.304 (14.09.2005) [4.0.2.240 -> 4.0.2.242] ..................................................... 294 4.0.2.305 (15.09.2005) ........................................................................................... 295 4.0.2.306 (15.09.2005) ........................................................................................... 296 4.0.2.307 (16.09.2005) ........................................................................................... 297 4.0.2.308 (17.09.2005) ........................................................................................... 298 4.0.2.309 (21.09.2005) ........................................................................................... 299 orgAnice SQL Versionen - Seite 8 von 510 4.0.2.310 (21.09.2005) ........................................................................................... 300 4.0.2.311 (22.09.2005) ........................................................................................... 301 4.0.2.312 (22.09.2005) ........................................................................................... 302 4.0.2.313 (22.09.2005) ........................................................................................... 303 4.0.2.314 (11.10.2005) ........................................................................................... 304 4.0.2.315 (11.10.2005) [ -> 4.0.2.245] .................................................................... 305 4.0.2.316 (12.10.2005) [ -> 4.0.2.247] .................................................................... 306 4.0.2.317 (12.10.2005) ........................................................................................... 307 4.0.2.318 (12.10.2005) [ -> 4.0.2.248] .................................................................... 308 4.0.2.319 (14.10.2005) ........................................................................................... 309 4.0.2.320 (18.10.2005) ........................................................................................... 310 4.0.2.321 (31.10.2005) [ -> 4.0.2.253] .................................................................... 311 4.0.2.322 (31.10.2005) [ -> 4.0.2.254] .................................................................... 312 4.0.2.323 (02.11.2005) [ -> 4.0.2.257] .................................................................... 313 4.0.2.324 (16.11.2005) [ -> 4.0.2.263] .................................................................... 314 4.0.2.325 (12.12.2005) ........................................................................................... 316 4.0.2.326 (16.12.2005) [-> 4.0.2.268] ..................................................................... 317 4.0.2.327 (18.12.2005) [-> 4.0.2.269] ..................................................................... 318 4.0.2.328 (21.12.2005) ........................................................................................... 319 4.0.2.329 (21.12.2005) [4.0.2.269 -> 4.0.2.270] ..................................................... 320 4.0.2.330 (25.12.2005) [4.0.2.270 -> 4.0.2.271] ..................................................... 321 4.0.2.331 (30.12.2005) [4.0.2.271 -> 4.0.2.273] ..................................................... 322 4.0.2.332 (03.01.2006) [4.0.2.273 -> 4.0.2.274] ..................................................... 323 4.0.2.333 (03.01.2006) [4.0.2.274 -> 4.0.2.275] ..................................................... 324 4.0.2.334 (06.01.2006) [4.0.2.275 -> 4.0.2.277] ..................................................... 325 4.0.2.335 (18.01.2006) [4.0.2.277 -> 4.0.2.279] ..................................................... 326 4.0.2.336 (19.01.2006) [4.0.2.279 -> 4.0.2.280] ..................................................... 327 4.0.2.337 (26.01.2006) [4.0.2.280 -> 4.0.2.281] ..................................................... 328 4.0.2.338 (11.02.2006) ........................................................................................... 329 4.0.2.339 (24.02.2006) ........................................................................................... 330 4.0.2.340 (06.03.2006) ........................................................................................... 331 4.0.2.341 (06.04.2006) ........................................................................................... 332 4.0.2.342 (23.04.2006) ........................................................................................... 333 {3.1.4|4.0.2}.400 (18.12.2005) [4.0.2.221 -> 224] ................................................... 334 {3.1.4|4.0.2}.402 (03.01.2006) [-> 4.0.2.332] .......................................................... 335 4.0.2.403 (31.01.2006) [-> 4.0.2.337] ..................................................................... 336 orgAnice SQL Versionen - Seite 9 von 510 4.0.2.404 (31.01.2006) ........................................................................................... 338 4.0.2.405 (02.02.2006) ........................................................................................... 339 4.0.2.406 (02.02.2006) ........................................................................................... 340 4.0.2.407 (11.02.2006) ........................................................................................... 341 4.0.2.408 (11.02.2006) ........................................................................................... 342 4.0.2.409 (27.02.2006) ........................................................................................... 343 4.0.2.410 (06.03.2006) ........................................................................................... 344 4.0.2.411 (21.03.2006) ........................................................................................... 345 4.0.2.412 (24.03.2006) ........................................................................................... 346 4.0.2.413 (27.03.2006) ........................................................................................... 348 4.0.2.414 (01.04.2006) ........................................................................................... 349 4.0.2.415 (11.04.2006) ........................................................................................... 350 4.0.2.416 (12.04.2006) ........................................................................................... 352 4.0.2.417 (18.04.2006) ........................................................................................... 353 4.0.2.418 (23.04.2006) ........................................................................................... 354 4.0.2.500 (18.04.2006) [abgezweigt von 4.0.2.417] ................................................ 355 4.0.2.501 (19.04.2006) ........................................................................................... 356 4.0.2.502 (23.04.2006) ........................................................................................... 357 4.0.2.503 (26.04.2006) ........................................................................................... 359 4.0.2.504 (11.05.2006) ........................................................................................... 360 4.0.2.505 (15.05.2006) ........................................................................................... 361 4.0.2.506 (16.05.2006) ........................................................................................... 363 4.0.2.507 (20.05.2006) ........................................................................................... 364 4.0.2.508 (25.06.2006) ........................................................................................... 365 4.0.2.509 (29.06.2006) ........................................................................................... 366 4.0.2.510 (30.06.2006) ........................................................................................... 367 4.0.2.511 (08.07.2006) ........................................................................................... 368 4.0.2.512 (13.07.2006) ........................................................................................... 369 4.0.2.513 (21.07.2006) ........................................................................................... 370 4.0.2.514 (27.07.2006) ........................................................................................... 371 4.0.2.515 (07.08.2006) ........................................................................................... 372 4.0.2.516 (17.08.2006) ........................................................................................... 373 4.0.2.517 (05.09.2006) ........................................................................................... 374 4.0.2.518 (02.10.2006) ........................................................................................... 375 4.0.2.519 (11.10.2006) ........................................................................................... 376 4.0.2.520 (26.11.2006) ........................................................................................... 377 orgAnice SQL Versionen - Seite 10 von 510 4.0.2.521 (01.12.2006) ........................................................................................... 378 4.0.2.522 (05.12.2006) ........................................................................................... 379 4.0.2.523 (06.12.2006) ........................................................................................... 380 4.0.2.524 (19.01.2007) ........................................................................................... 381 4.0.2.525 (22.01.2007) ........................................................................................... 382 4.0.2.526 (26.01.2007) ........................................................................................... 383 4.0.2.600 (08.08.2006) [abgezweigt von 4.0.2.512] ................................................ 384 4.0.2.601 (17.08.2006) ........................................................................................... 387 4.0.2.602 (19.08.2006) ........................................................................................... 389 4.0.2.603 (24.08.2006) ........................................................................................... 390 4.0.2.604 (29.08.2006) ........................................................................................... 391 4.0.2.605 (30.08.2006) ........................................................................................... 392 4.0.2.606 (05.09.2006) ........................................................................................... 393 4.0.2.607 (06.09.2006) ........................................................................................... 394 4.0.2.608 (07.09.2006) ........................................................................................... 395 4.0.2.609 (12.09.2006) ........................................................................................... 396 4.0.2.611 (14.09.2006) ........................................................................................... 397 4.0.2.612 (25.09.2006) ........................................................................................... 398 4.0.2.613 (02.10.2006) ........................................................................................... 399 4.0.2.614 (13.10.2006) ........................................................................................... 400 4.0.2.615 (16.10.2006) ........................................................................................... 401 4.0.2.616 (23.10.2006) ........................................................................................... 402 4.0.2.617 (23.10.2006) ........................................................................................... 403 4.0.2.618 (25.10.2006) ........................................................................................... 404 4.0.2.619 (25.10.2006) ........................................................................................... 405 4.0.2.620 (26.10.2006) ........................................................................................... 406 4.0.2.621 (26.10.2006) ........................................................................................... 407 4.0.2.622 (27.10.2006) ........................................................................................... 408 4.0.2.623 (27.10.2006) ........................................................................................... 409 4.0.2.624 (01.11.2006) ........................................................................................... 410 4.0.2.625 (01.11.2006) ........................................................................................... 411 4.0.2.626 (01.11.2006) ........................................................................................... 412 4.0.2.627 (02.11.2006) ........................................................................................... 413 4.0.2.628 (02.11.2006) ........................................................................................... 414 4.0.2.629 (03.11.2006) ........................................................................................... 415 4.0.2.630 (06.11.2006) ........................................................................................... 416 orgAnice SQL Versionen - Seite 11 von 510 4.0.2.631 (07.11.2006) ........................................................................................... 417 4.0.2.632 (08.11.2006) ........................................................................................... 418 4.0.2.633 (23.11.2006) ........................................................................................... 419 4.0.2.634 (23.11.2006) ........................................................................................... 420 4.0.2.635 (23.11.2006) ........................................................................................... 421 4.0.2.636 (23.11.2006) ........................................................................................... 422 4.0.2.637 (28.11.2006) ........................................................................................... 423 4.0.2.638 (28.11.2006) ........................................................................................... 424 4.0.2.639 (06.12.2006) ........................................................................................... 425 4.0.2.640 (06.12.2006) ........................................................................................... 426 4.0.2.641 (06.12.2006) ........................................................................................... 427 4.0.2.642 (07.12.2006) ........................................................................................... 428 4.0.2.643 (19.12.2006) ........................................................................................... 429 4.0.2.644 (03.01.2007) ........................................................................................... 432 4.0.2.645 (05.01.2007) ........................................................................................... 433 4.0.2.646 (08.01.2007) ........................................................................................... 434 4.0.2.647 (09.01.2007) ........................................................................................... 435 4.0.2.648 (15.01.2007) ........................................................................................... 436 4.0.2.649 (19.01.2007) ........................................................................................... 437 4.0.2.650 (19.01.2007) ........................................................................................... 438 4.0.2.651 (22.01.2007) ........................................................................................... 439 4.0.2.652 (26.01.2007) ........................................................................................... 440 4.0.2.653 (30.01.2007) ........................................................................................... 441 4.0.2.654 (05.02.2007) ........................................................................................... 442 4.0.2.655 (07.02.2007) ........................................................................................... 443 4.0.2.656 (08.02.2007) ........................................................................................... 444 4.0.2.657 (08.02.2007) ........................................................................................... 445 4.0.2.658 (11.02.2007) ........................................................................................... 446 4.0.2.659 (19.02.2007) ........................................................................................... 447 4.0.2.660 (02.03.2007) ........................................................................................... 448 4.0.2.661 (02.03.2007) ........................................................................................... 449 4.0.2.662 (05.03.2007) ........................................................................................... 450 4.0.2.663 (05.03.2007) ........................................................................................... 451 4.0.2.664 (06.03.2007) ........................................................................................... 452 4.0.2.665 (08.03.2007) ........................................................................................... 453 4.0.2.666 (08.03.2007) ........................................................................................... 454 orgAnice SQL Versionen - Seite 12 von 510 4.0.2.667 (09.03.2007) ........................................................................................... 455 4.0.2.668 (12.03.2007) ........................................................................................... 456 4.0.2.669 (13.03.2007) ........................................................................................... 457 4.0.2.670 (13.03.2007) ........................................................................................... 458 4.0.2.671 (14.03.2007) ........................................................................................... 459 4.0.2.672 (14.03.2007) ........................................................................................... 460 4.0.2.673 (19.03.2007) ........................................................................................... 461 4.0.2.674 (19.03.2007) ........................................................................................... 462 4.0.2.675 (20.03.2007) ........................................................................................... 463 4.0.2.676 (21.03.2007) ........................................................................................... 464 4.0.2.677 (29.03.2007) ........................................................................................... 465 4.0.2.678 (29.03.2007) ........................................................................................... 466 4.0.2.679 (30.03.2007) ........................................................................................... 467 4.0.2.680 (02.04.2007) ........................................................................................... 468 4.0.2.681 (03.04.2007) ........................................................................................... 469 4.0.2.682 (03.04.2007) ........................................................................................... 470 4.0.2.683 (04.04.2007) ........................................................................................... 471 4.0.2.684 (24.04.2007) ........................................................................................... 472 4.0.2.685 (28.04.2007) ........................................................................................... 473 4.0.2.686 (07.05.2007) ........................................................................................... 474 4.0.2.687 (09.05.2007) ........................................................................................... 475 4.0.2.688 (22.05.2007) ........................................................................................... 476 4.0.2.689 (25.05.2007) [Abzweigung 4.0.2.800] ..................................................... 477 4.0.2.690 (05.06.2007) ........................................................................................... 478 4.0.2.691 (06.06.2007) ........................................................................................... 479 4.0.2.692 (11.06.2007) ........................................................................................... 480 4.0.2.693 (11.06.2007) ........................................................................................... 482 4.0.2.694 (11.06.2007) ........................................................................................... 483 4.0.2.695 (12.06.2007) ........................................................................................... 484 4.0.2.696 (01.07.2007) ........................................................................................... 485 4.0.2.697 (18.07.2007) ........................................................................................... 486 4.0.2.698 (20.07.2007) ........................................................................................... 487 4.0.2.699 (20.08.2007) ........................................................................................... 488 4.0.2.700 (22.08.2007) ........................................................................................... 489 4.0.2.701 (23.08.2007) ........................................................................................... 490 4.0.2.702 (31.08.2007) ........................................................................................... 491 orgAnice SQL Versionen - Seite 13 von 510 4.0.2.703 (04.09.2007) ........................................................................................... 492 4.0.2.704 (04.09.2007) ........................................................................................... 493 4.0.2.705 (14.09.2007) ........................................................................................... 494 4.0.2.706 (17.09.2007) ........................................................................................... 495 4.0.2.707 (17.09.2007) ........................................................................................... 496 4.0.2.708 (18.09.2007) ........................................................................................... 497 4.0.2.709 (25.09.2007) ........................................................................................... 498 4.0.2.710 (02.10.2007) ........................................................................................... 499 orgAnice SQL Versionen - Seite 14 von 510 4.0.2.1 (15.08.2004) OrgDbServer: SQL-Tabellen: Fehler bei Logout führen nicht mehr zum Absturz. OrgDbServer: Neue Eigenschaft Field.SqlName. Gibt den bei Field.SqlExpression verwendeten Feldnamen ohne Tabellennamen und ohne Anführungszeichen zurück. orgAnice SQL Versionen - Seite 15 von 510 4.0.2.2 (15.08.2004) OrgDbServer: Das Reinitialisieren der SQL-Connection beim Setzen des Connection-Strings funktioniert. OrgSqlExport: Nach erfolgreicher Übernahme der Strukturänderung wird der Connection-String in der Datenbank neu gesetzt, was zur Reinitialisierung der SQL-Connection führt. orgAnice SQL Versionen - Seite 16 von 510 4.0.2.3 (15.08.2004) OrgDbServer: Database.MakeSqlStructureConsistent benötigt Admin-Rechte. OrgDbServer: Cache für SQL-Übersetzungen von Parser-Requests berücksichtigte die Optionen für die Übersetzung nicht. orgAnice SQL Versionen - Seite 17 von 510 4.0.2.4 (15.08.2004) OrgDbServer: Die neue Methode Database.ResetFieldSqlNames (hidden) macht das, was bisher Database.MakeSqlStructureConsistent gemacht hat: Das Zurücksetzen eventueller durch Feldumbenennung entstandener Alias-Namen. OrgDbServer: Methode Database.MakeSqlStructureConsistent ruft für ein neu erzeugtes OrgSqlExport-Objekt die Methoden UseDatabase und MakeConsistent auf und reicht eventuell zurückgegebene Fehlercodes durch. Die Methode prüft, ob die Datenbank exklusiv geöffnet ist. Der Aufruf von ResetFieldSqlNames erfolgt aus OrgSqlExport. Kann das OrgSqlExport-Objekt nicht erzeugt werden, kommt der neue Fehlercode ORGDB_E_CANTCREATESQLEXPORTOBJECT. OrgData: Neues Kommando CMD_CFG_MAKESQLSTRUCTURECONSISTENT. Ist auf der Oberfläche per Toolbar (links neben VBA) oder per Menüpunkt unter „DatenbankObjekte“ erreichbar. Ruft Database.MakeSqlStructureConsistent auf und produziert bei eventuellen Fehlern eine Message-Box. Ist verfügbar, falls die Datenbank mit Admin-Rechten geöffnet ist und auf SQL-Tabellen zugegriffen wird. OrgErrorTexts: Fehlertext für neuen Fehlercode ORGDB_E_CANTCREATESQLEXPORTOBJECT: „OrgSqlExport.exe ist auf diesem System nicht installiert.“ orgAnice SQL Versionen - Seite 18 von 510 4.0.2.10 (16.08.2004) OrgDbServer: Eigenschaft Database.SqlStructureConsistency gibt jetzt bei inkonsistenten Datenbanken False zurück. Die Eigenschaft wird durch folgende Aktionen gesetzt: - Erzeugen oder Löschen einer Tabelle - Dann, wenn unter KeyStorage der Index-Baum gelöscht wird; das passiert bei: + Änderungen der Feldstruktur + Änderungen eines Index-Ausdrucks oder einer Index-String-Länge + Änderungen von persistenten Variablen oder Custom-Functions, auf die aus IndexAusdrücken zugegriffen wird Die Eigenschaft wird durch Aufruf von ResetFieldSqlNames (aus OrgSqlExport) gelöscht. Bei Änderung des Flags wird das Event Database.SqlStructureConsistency gefeuert. OrgDbServer: Über in der SQL-Datenbank fehlende Tabellen oder Felder wird nur einmal Bericht im SQL-Fehlerprotokoll erstattet, um den Benutzer nicht zu irritieren. Bei neu angelegten Tabellen oder Feldern wird das Fehlen im SQL-Server gar nicht berichtet. OrgData: Klick oder Doppelklick auf eine Listenzeile im Konfigurations-Modus erzeugte unerwünschte Effekte. OrgData: Reaktion auf das Event Database.SqlStructureConsistency: Neuzeichnen der Toolbar (nur im Konfigurations-Modus) orgAnice SQL Versionen - Seite 19 von 510 4.0.2.11 (16.08.2004) OrgDbServer: Index.DeleteIsamTree setzt bei SQL-Tabellen nicht mehr das Flag Database.SqlStructureConsistency. orgAnice SQL Versionen - Seite 20 von 510 4.0.2.12 (16.08.2004) OrgDbServer: Ist OrgSqlExport nicht registriert, wird der korrekte Fehlercode ORGDB_E_CANTCREATESQLEXPORTOBJECT geliefert. OrgData: Tool-Tip für OrgSqlExport angepaßt. orgAnice SQL Versionen - Seite 21 von 510 4.0.2.13 (03.09.2004) OrgDbServer: Import-Anweisung für OrgSqlExport durch Include-Anweisung ersetzt. OrgSqlExport: Binär-Kompatibilität eingestellt. orgAnice SQL Versionen - Seite 22 von 510 4.0.2.14 (03.09.2004) OrgDbServer: Database.License: Es werden Lizenznummern bis zu 255 Zeichen Länge akzeptiert. OrgData: OE: Es werden Lizenznummern bis zu 255 Zeichen Länge akzeptiert. orgAnice SQL Versionen - Seite 23 von 510 4.0.2.15 (11.09.2004) KeyStorage: Neue Methode IKeyStorage::GetPreviousHeaderVersion. Gibt die Header-Version an, wie sie beim Öffnen der Datei aufgefunden wurde. OrgDbServer: Eine Datenbank der Version 4.0.2.14 oder früher wird beim ersten Öffnen als „SQL Struktur inkonsistent“ markiert. OrgDbServer: Intern: Unterstützung von Anfragen mit mehreren Ergebnis-Mengen verbessert. OrgDbServer: Code zur Ermittlung der SQL-Syntax zur Deklaration einer Variable eines bestimmten Typs. OrgDbServer: ORGDB_NAV_GONEXT durch internes Flag ersetzt. OrgDbServer: Umstellung auf neue Markierungs-Strategie ist erfolgt. Es gibt jetzt eine globale Index-Tabelle, die aus drei Feldern besteht: TableOid, UserOid, Cookie. Dort erfolgt die Zuordnung zwischen Paaren Benutzer/Tabelle und Cookies, die in der eigentlichen Markierungstabelle aus Speicherplatz- und Laufzeitgründen solche Paare repräsentieren. In diese Tabelle werden nur Datensätze eingefügt, nie verändert oder gelöscht. Das Cookie wird beim Refresh der Tabelle (=beim Start der Datenbank) abgefragt und als Programm-Variable im OrgDbServer abgelegt. Ferner gibt es eine globale Markierungs-Tabelle pro Datenbank. Sie enthält lediglich zwei Felder: Cookie (entspricht dem Cookie aus der Index-Tabelle) und RecordNo. Ein Datensatz in einer orgAnice-Tabelle ist genau dann markiert, wenn es einen entsprechenden Datensatz in der globalen Markierungstabelle gibt. Die Abfragen, die Datensätze markieren bzw. Markierungen lesen, konnten deutlich vereinfacht werden. Jetzt wird intern nicht mehr mit Zahlen (1/0 für markiert/nicht markiert), sondern mit logischen Ausdrücken gearbeitet. Tests mit insgesamt 1,5 Millionen markierten Datensätzen insgesamt lieferten eine sehr gute Performance bei allen die Markierungen betreffenden Operationen. OrgDbServer: Für Operationen, die sich vom aktuellen Datensatz aus über einen Index sortiert bewegen (z.B. Skip, GetValues, SearchText, ...), wurde die Abfrage komplett umgeschrieben. Jetzt wird im ersten Schritt mit ein oder zwei Abfragen eine temporäre Tabelle aus Datensatz-Nummern gefüllt, die alle Datensatznummern der nächsten n Datensätze ausgehend vom aktuellen enthält. Im zweiten Schritt wird die temporäre Tabelle ausgewertet und es werden entsprechend der n-te oder die ersten n Datensätze abgefragt. Grund dafür ist, daß der SQL-Server nicht zu performanter Kooperation unter Benutzung eines impliziten Abfrage-Ausdrucks zu bewegen war. Es ist eine deutliche Performance-Verbesserung spürbar, insbesondere bei Indizes mit vielen gleichen Index-Werten (Adressen.Kurzname in der Firmendatenbank) und bei Sichtbarkeitseinschränkungen. OrgDbServer: Bei gesetzter Sichtbarkeits-Einschränkung und Operationen, die nicht auf unsichtbare Datensätze zugreifen, wird nicht mehr abgefragt, ob der aktuelle Datensatz markiert ist: Er ist es je nach Sichtbarkeitseinstellungen. OrgDbServer: Index-Felder erhalten jetzt den Präfix __Org__ anstelle von __Org_. Grund: orgAniceIndizes könnten (theoretisch) RecordOid oder RecordNo heißen. OrgData: TableChanged-Event reagiert auf TC_VISIBILITY (Umschalten der Sichtbarkeit alle/nur (nicht) markierte) jetzt korrekt mit dem Aktualisieren der Information über die sichtbaren Datensätze. OrgSqlExport: Index-Felder erhalten jetzt den Präfix __Org__ anstelle von __Org_. orgAnice SQL Versionen - Seite 24 von 510 OrgSqlExport: Umstellung der Markierungs-Tabellen wird durchgeführt. Eventuelle BenutzerMarkierungen gehen dabei verloren. OrgSqlExport: Bei der Entfernung aller Objekte aus der kopierten Datenbank werden die Bezeichner jetzt von Gänsefüßchen umschlossen. OrgSqlExport: Alle OrgReplication-Indizes werden bei der Umstellung aus der Datenbank entfernt. OrgSqlExport: Die redundanten Index-Felder werden jetzt nach dem Export per SQL-Abfrage gefüllt. Grund: Beim Füllen während des Exports wurden manche Datensätze (offenbar durch einen Bug im SQL-Server) ausgelassen und enthalten NULL-Werte anstelle der korrekten Index-Werte. OrgSqlExport: Die Felder, auf die ein Index gesetzt ist, werden als „NOT NULL“ markiert. Grund: Skip funktioniert sonst für diese Datensätze nicht korrekt. OrgSqlExport: Der Verweis auf das RecordNo-Feld wurde aus allen SQL-Indizes entfernt. OrgSqlExport: Minimieren des Status-Fensters bringt die Übernahme der Strukturänderungen nicht mehr zum Fehlschlagen. KsVersionReset: Header-Version wird entsprechend der Version der KsVersionReset.exe zurückgesetzt. Beim Zurücksetzen wird im Erfolgsfall die Versions-Nummer in der MessageBox angegeben. orgAnice SQL Versionen - Seite 25 von 510 4.0.2.16 (11.09.2004) OrgData: Beim Füllen der Listenansicht im aktiven Tabellenlayout wird beim nächsten Druck auf eine vertikale Cursor- oder auf eine Bildlauf-Taste der Repeat-Count ignoriert. Dadurch wird ein „Fortlaufen“ beim Dauer-Skippen verhindert. OrgData: Bei der Direktsuche beginnt die Suche ab dem zweiten Zeichen beim aktiven Index: Nach erfolgreicher Suche können die Indizes vor dem aktiven Index den Suchtext nicht enthalten, da bereits ein kürzerer Text nicht gefunden werden konnte. orgAnice SQL Versionen - Seite 26 von 510 4.0.2.17 (13.09.2004) OrgDbServer: Zählen von allen und von markierten Datensätzen entkoppelt. Beschleunigt das Zählen aller Datensätze. OrgDbServer: Zählen von markierten Datensätzen beschleunigt: Zählen geschieht nur mit Zugriff auf die Markierungs-Tabelle. OrgDbServer: _SetMarked zählt jetzt markierte und demarkierte Datensätze mit. Hat sich nichts verändert, kommt der Fehlercode ORGDB_S_NOP, und es werden keine ÄnderungsEvents gefeuert. OrgDbServer: Bei „Nur markierte anzeigen“ wird ein neu eingefügter Datensatz gleich markiert. orgAnice SQL Versionen - Seite 27 von 510 4.0.2.18 (13.09.2004) OrgDbServer: KS-DBs: Durch eine Änderung in der Bit-Array-Implementation wurde u.a. bei jedem MarkCondition-Aufruf (CCurrentUserMarks::WriteAll) die Größe des in der DB gespeicherten Markierungs-Arrays verdoppelt. Jetzt werden nur noch die Positionen gespeichert, die nicht 0 sind. orgAnice SQL Versionen - Seite 28 von 510 4.0.2.19 (16.09.2004) OrgSqlExport: Option „Daten aus folgender SQL-DB importieren“ für orgAnice-DBs mit SQL-Tabellen gibt jetzt eine Fehlermeldung. Grund: Probleme, die Original- und die kopierte DB gleichzeitig mit Admin-Rechten zu öffnen. OrgSqlImport: Nach jeweils 100 Datensätzen werden die Transaktionen in der Quell- und ZielDatenbank geschrieben und wiedereröffnet. Grund: Einmal „geöffnete“ Dokumente bleiben sonst offen und führen irgendwann zu Speicher-Problemen. orgAnice SQL Versionen - Seite 29 von 510 4.0.2.20 (17.09.2004) OrgDbServer: SET NOCOUNT ON wird zur Verbesserung der Batch-Performance beim Öffnen der Verbindung ausgeführt. OrgSqlExport: Verbot von NULL-Werten für Index-Felder aufgehoben. Grund: INSERT funktioniert sonst nicht. orgAnice SQL Versionen - Seite 30 von 510 4.0.2.21 (17.09.2004) OrgDbServer: Bei client-seitigen Markierungen mit markierender Tabelle wurden falsche Datensätze markiert. orgAnice SQL Versionen - Seite 31 von 510 4.0.2.22 (17.09.2004) SCL: Ausgabe des aktuellen Stack-Trace funktioniert auch, wenn die Protokollierung per NO_STACKTRACE abgeschaltet wurde. OrgDbServer: Bei Events wird die Aufrufverfolgung fortgesetzt. orgAnice SQL Versionen - Seite 32 von 510 4.0.2.23 (17.09.2004) OrgDbServer: interne Optimierungen orgAnice SQL Versionen - Seite 33 von 510 4.0.2.24 (17.09.2004) OrgDbServer: Wird ein Dokument-Feld durch einen Parser-Request benutzt, wird auch das RecordOID-Feld der Tabelle als benutzt markiert. Grund: Um den Parser-Request auszuwerten, muß das Dokument geöffnet werden, und dafür wird die Record-OID benötigt. orgAnice SQL Versionen - Seite 34 von 510 4.0.2.25 (17.09.2004) OrgDbServer: Alle Methoden und Eigenschaften, die Arrays von OrgDbServer-Objekten zurückgeben (ParserRequest.UsedFields, .UsedCustomFunctions, .UsedPersistVars, Table.Sum), funktionieren jetzt auch, wenn das Database-Objekt in einem anderen Prozeß liegt, z.B. beim Übernehmen der Strukturänderungen im OrgSqlExport. OrgSqlExport: Workaround für UsedFields entfernt. orgAnice SQL Versionen - Seite 35 von 510 4.0.2.26 (20.09.2004) OrgDbServer: Neue Eigenschaft Database.ReplicaID. Speichert eine bis zu dreistellige Zeichenfolge. OrgData: OE Datenbank: Eingabefeld für Replikat-ID. orgAnice SQL Versionen - Seite 36 von 510 4.0.2.27 (21.09.2004) OrgDbServer: Database::put_ReplicaId akzeptiert keine Replikat-IDs, die Ziffern enthalten. OrgDbServer: SQL-Variante der Präfix-AutoCount-Indizes implementiert. Bei der Vergabe von AutoCount-Werten wird die Replikat-ID der aktuellen Datenbank als Präfix verwendet. Der Zähler wird dabei aus den Datensätzen gewonnen, die die Replikat-ID der aktuellen Datenbank als Präfix haben. OrgDbServer: Ermittlung des nächsten Zähler-Werts für AutoCount-Indizes gegen ungültige Datensätze stabilisiert. Kann kein neuer Zählerwert vergeben werden, kommt der neue Fehlercode ORGDB_E_AUTOCOUNTFULL. OrgData: GPF nach „Datensätze löschen...“ Wechsel in Benutzermodus behoben. OrgErrorTexts: Text für neuen Fehlercode hinzugefügt. orgAnice SQL Versionen - Seite 37 von 510 4.0.2.28 (26.09.2004) KeyStorage: CKsTree::_FirstName belegt m_Key auch dann, wenn der Schlüssel nicht gefunden wurde. Notwendig für IsamFindNext und IsamFindPrev. KeyStorage: IsamFindNext neu implementiert unter Verwendung der bereits vorhandenen Methode CKsTree::_FirstName. CKsTree::_NextName entfernt. KeyStorage: Neue Methode IsamFindPrev, findet den nächstkleineren Schlüssel in einem ISAMBaum. OrgDbServer: Neue Methode Table.FindPrev. Positioniert auf den Datensatz, dessen Schlüsselwert auf dem aktiven Index echt kleiner als der vorgegebene Wert ist. OrgDbServer: Bei EOF positioniert Skip 0 jetzt bei allen Tabellen-Typen auf den ersten anstatt auf den letzten Datensatz. OrgDbServer: Table.Find, Table.FindPrev und Table.FindNext schneiden den Index-Wert nicht mehr auf die Index-Länge ab. OrgDbServer: Das Neu-Belegen von AutoCount-Werten funktioniert jetzt wieder für AutoCountIndizes über Long-Felder. orgAnice SQL Versionen - Seite 38 von 510 4.0.2.29 (26.09.2004) OrgDbServer: KeyStorage-Variante der Präfix-AutoCount-Indizes implementiert. Bei der Vergabe von AutoCount-Werten wird die Replikat-ID der aktuellen Datenbank als Präfix verwendet. Der Zähler wird dabei aus den Datensätzen gewonnen, die die Replikat-ID der aktuellen Datenbank als Präfix haben. orgAnice SQL Versionen - Seite 39 von 510 4.0.2.30 (26.09.2004) OrgDbServer: Enthält der Lizenzschlüssel nicht den Feature-Code „SYNCH“, verhält sich die Eigenschaft Database.ReplicaId wie folgt: Lesen: Rückgabe eines Leerstrings Schreiben: Fehlercode ORGDB_E_LICENSEFEATUREMISSING. Neu angelegte AutoCount-Werte haben keinen Präfix. OrgData: OE Datenbank: Enthält der Lizenzschlüssel nicht den Feature-Code „SYNCH“, wird das Eingabefeld für die Replikat-ID ausgegraut. orgAnice SQL Versionen - Seite 40 von 510 4.0.2.31 (26.09.2004) OrgSqlExport: Übernahme der Strukturänderungen funktioniert auch, wenn sich die Datenbank auf einem entfernten SQL-Server befindet. orgAnice SQL Versionen - Seite 41 von 510 4.0.2.32 (03.10.2004) SCL: Neue Methode Scl_CompareStringLike. Implementiert einen LIKE-Vergleich analog zum SQL-Server. Folgende Sonderzeichen werden unterstützt: % – beliebige Zeichenkette (inkl. Leerstring) _ – ein beliebiges Zeichen [ac] – a oder c [a-c] – a bis c entsprechend der aktuellen Sortierreihenfolge, z.B. „ä“ LIKE „[a-c]“ für die Standart-Sortierreihenfolge [^a] – alles außer a [^a-c] – alles außer a bis c [a-zA-Z] – analog [^a-zA-Z] – analog \ – nächstes Zeichen verliert seine eventuelle Sonderzeichen-Bedeutung, auch innerhalb von [] Extrem-Beispiele: \\ – \ (einzige Möglichkeit, den Backslash zu kodieren) [%_[] – % oder _ oder [ (diese Sonderzeichen zählen in Klammern nicht) [a\-b] – a oder - oder b (Backslash hebt Sonderzeichen-Wirkung auf) [a^] – a oder ^ (^ gilt nur als Negation, wenn es als erstes Zeichen auftritt) ] – ] (schließende ohne öffnende Klammer gilt als einzelnes Zeichen) Folgende Muster-Typen werden als fehlerhaft deklariert und liefern bei einem Vergleich immer FALSE: abc\ [abc [abc\ [a-\ Folgende bei der SQL-Server-Implementation existierende Sonderfälle werden explizit unterstützt: [^] – ^ [a-] – a oder Bei folgenden Mustern (nicht Mustertypen!) weicht das Verhalten vom SQL-Server vom Verhalten der Methode ab, da hier das Verhalten vom SQL-Server nicht erklärbar ist: „-“ LIKE „[ --]“: SQL-Server liefert FALSE „-“ LIKE „[ -\-]“: SQL-Server liefert FALSE „-“ LIKE „[\ --]“: SQL-Server liefert (korrekt) TRUE „^“ LIKE „[^^]“:SQL-Server liefert TRUE „^“ LIKE „[^\^]“:SQL-Server liefert (korrekt) FALSE „^“ LIKE „[^a^]“:SQL-Server liefert (korrekt) FALSE Ungültige Unicode-Zeichen (?): Werden beim SQL-Server nicht einmal beim Vergleich mit _ akzeptiert OrgDbServer: Unterstützung für neuen Operator Like implementiert. Funktionalität wie in Scl_CompareStringLike. orgAnice SQL Versionen - Seite 42 von 510 4.0.2.33 (04.10.2004) OrgDbServer: Neues Enum OrgDbUserActivityEnum für User.Activity. Enthält drei Werte: Passiv, permanente Benutzung, konkurrierende Benutzung. OrgDbServer: Neue Eigenschaft User.Activity, ersetzt User.Active. Mit Vorgänger-Versionen kompilierte Komponenten funktionieren, dort wird User.Active entsprechend auf User.Activity umgeleitet. Beim Neuerstellen einer Komponente müssen Zugriffe auf User.Active entsprechend umgeschrieben werden. Benutzer, die bisher aktiv waren, erhalten für diese Eigenschaft den Wert ORGDB_USERACTIVITY_PERMANENT. Passive Benutzer erhalten ORGDB_USERACTIVITY_PASSIVE. OrgDbServer: Users.Create erwartet jetzt ein OrgDbUserActivityEnum anstelle eines Bool als Aktivität-Parameter. Mit Vorgänger-Versionen kompilierte Komponenten funktionieren. Beim Neuerstellen einer Komponente muß darauf geachtet werden, daß der bisher als Bool deklarierte Parameter jetzt ein OrgDbUserActivityEnum ist. Wenn versehentlich True übergeben wird, wird ORGDB_USERACTIVITY_PERMANENT verwendet. OrgData: Custom-Function-Editor: Das neue Schlüsselwort Like wird korrekt eingefärbt. OrgData: OE User, OE Users: Umstellung auf dreiwertige Aktivität-Eigenschaft. orgAnice SQL Versionen - Seite 43 von 510 4.0.2.34 (06.10.2004) OrgDbServer: Erweitertes Lizenzkonzept umgesetzt. Der Lizenzschlüssel hat jetzt Platz für eine zweite Benutzeranzahl, die von der ersten mit einem * getrennt notiert wird. Beispiel: OFFICE-4.0-020*010-DP*Q*SYNCH-.... Diese Zahl entspricht der maximalen Anzahl konkurrierender Benutzer, die gleichzeitig angemeldet sein dürfen. Das Lizenznummern-Format ist vollständig abwärtskompatibel, auch was die Prüfsumme angeht. Bisherige Lizenznummern behalten ihre Gültigkeit. OFFICE-4.0020--... ist eine gültige Lizenznummer. Die Zahl vor dem * entspricht der Maximalanzahl gleichzeitig angemeldeter Benutzer. (Bisher: Maximale Anzahl aktiver Benutzer, Erläuterung s.u.) Die Lizenzprüfungsroutine wurde wie folgt erweitert: - Die Anzahl permanenter Benutzer (ORGDB_USERACTIVITY_PERMANENT) ist beschränkt durch die Maximalanzahl gleichzeitig angemeldeter Benutzer. In unserem Beispiel darf es nicht mehr als 20 permanente Benutzer geben. - Die Anzahl konkurrierender Benutzer wird nicht beschränkt. - Die Anzahl gleichzeitig angemeldeter konkurrierender Benutzer wird durch die Lizenz beschränkt. In unserem Beispiel dürfen nie mehr als 10 konkurrierende Benutzer gleichzeitig angemeldet sein, auch wenn das „Kontingent“ permanenter Benutzer nicht ausgeschöpft ist. - Die Anzahl konkurrierender Benutzer, die gleichzeitig angemeldet sein darf, hängt auch von der Anzahl permanenter Benutzer ab. Sind in unserem Beispiel 15 permanente Benutzer in der Datenbank vorhanden, dürfen sich maximal 5 konkurrierende Benutzer gleichzeitig anmelden. (Grundsatz: konkurrierende Lizenz ist teurer als permanente Lizenz, ein Benutzer kann eine konkurrierende Lizenz nach Belieben in eine permanente umwandeln.) - Versucht sich ein konkurrierender Benutzer anzumelden und wird dabei festgestellt, daß zu viele konkurrierende Benutzer angemeldet sind, kommt die neue Fehlermeldung ORGDB_E_TOOMANYCONCURRENTUSERS. Bei unserem Beispiel würde bei 15 permanenten Benutzern der sechste konkurrierende Benutzer die Fehlermeldung bekommen. - Es dürfen nicht mehr als fünfmal so viele Sessions offen sein wie die maximale Anzahl Benutzer, unabhängig von den Benutzern, die mit den Sessions arbeiten. In unserem Beispiel ist bei 100 Sessions Schluß. OrgDbServer: Die Core-Function Marked(„blabla“) liefert jetzt False zurück, wenn „blabla“ kein gültiger Tabellenname ist. Bisher war in diesem Fall der Rückgabewert aus unbekannten Gründen True. OrgErrorText: Fehlertext für neuen Fehlercode ORGDB_E_TOOMANYCONCURRENTUSERS: „Ihre Datenbank-Lizenz erlaubt keine weiteren gleichzeitig angemeldeten konkurrierenden Benutzer. Bitte warten Sie, bis sich ein anderer konkurrierender Benutzer abgemeldet hat.“ orgAnice SQL Versionen - Seite 44 von 510 4.0.2.36 (06.10.2004) OrgDbServer: OrgBasic-Operator Like: Das Suchmuster [^] wurde in der ursprünglichen Implementation wie \^ behandelt. Zitat: Folgende bei der SQL-Server-Implementation existierende Sonderfälle werden explizit unterstützt: [^] – ^ Jetzt wird [^] so interpretiert, daß es auf jedes Zeichen paßt. (Entsprechend der Definition von [^: „nicht diese Zeichen“, also „nicht kein Zeichen“, also „alle Zeichen“.) Grund: Der SQL-Server macht es entgegen bisheriger Annahmen genauso. OrgSqlExport: Wenn der Text in den Protokoll-TextBoxes die maximale Länge von 65535 Zeichen überschreitet, wird er vorn abgeschnitten. orgAnice SQL Versionen - Seite 45 von 510 4.0.2.37 (11.10.2004) OrgDbServer: SQL-Server-Sessionverwaltung: Arbeitete mit administrativen Freigaben, die aber nur benutzt werden dürfen, wenn der Benutzer Administratorrechte hat. Jetzt werden die administrativen Freigaben intern in Laufwerksbuchstaben zurückverwandelt. orgAnice SQL Versionen - Seite 46 von 510 4.0.2.38 (11.10.2004) OrgDbServer: ParserRequest.SqlExpression um optionalen Parameter erweitert, der das Aussehen des ausgegebenen Ausdrucks mitbestimmt. Keine Auswirkung auf bestehende VBProjekte. OrgSqlExport: Beim Übernehmen der Strukturänderungen wird die bisher als Backup verbleibende Datenbank gelöscht. Der Ursprungszustand der Datenbank kann problemlos aus der Backup-Datei wiederhergestellt werden. Auslöser: Hinweis von Herr Veinbergs (LeBit). OrgSqlExport: Bei Indizes auf einem Feld wird das entsprechende Feld in der SQL-Datenbank als „NOT NULL“ markiert. OrgSqlExport: Die SaveCheck-ParserRequests erscheinen als „table constraint“ auch in der SQLDatenbank, falls sie nach SQL übersetzbar sind. Ist ein SaveCheck-ParserRequest nicht nach SQL übersetzbar, erscheint eine Warnung im Protokollfenster. OrgSqlExport: Beim Zurückspielen des Backups werden die neu angelegten Daten- und Log-Dateien jetzt mit den korrekten Datei-Endungen (.mdf bzw. .ldf) versehen. OrgSqlExport: Bei der Übernahme der Strukturänderungen werden jetzt alle bestehenden orgAniceTabellen in der SQL-Datenbank gelöscht und anschließend neu aufgebaut. Grund: ALTER TABLE erlaubt nicht alles, was in CREATE TABLE erlaubt ist. OrgSqlExport: Das Ändern der aktiven Datenbank geschieht jetzt per USE anstelle per Neu-Öffnen der ADO-Verbindung. orgAnice SQL Versionen - Seite 47 von 510 4.0.2.39 (11.10.2004) OrgDbServer: Bei Änderung des SaveCheck-ParserRequests ist eine erneute Übernahme der Strukturänderungen erforderlich. Die Datenbank wird entsprechend auf „inkonsistent“ gesetzt. OrgSqlExport: Es wird jetzt pro Feld mit SaveCheck-ParserRequest ein eingener Constraint angelegt. Namens-Kollisionen werden durch unterschiedliche Präfixe vermieden. orgAnice SQL Versionen - Seite 48 von 510 4.0.2.40 (11.10.2004) OrgDbServer: Die Datenbank wird nur dann auf „inkonsistent“ gesetzt, wenn sich der SaveCheckParserRequest eines Felds wirklich geändert hat. OrgSqlExport: Es wird jetzt pro Feld mit SaveCheck-ParserRequest ein eingener benannter Constraint angelegt. Dadurch erhält der SQL-Benutzer genauere Information, was beim Schreiben eines Datensatzes schiefgelaufen ist. orgAnice SQL Versionen - Seite 49 von 510 4.0.2.41 (19.10.2004) KsVersionReset: Pi-Datenbanken mit Version kleiner als 3.1.5.1 werden auf den Stand von 3.1.0.0 zurückgesetzt. Somit kann dieses Tool auch für Pi-Datenbanken verwendet werden. orgAnice SQL Versionen - Seite 50 von 510 4.0.2.42 (19.10.2004) OrgDbServer: SQL: Markierungs-Operationen (insbesondere für Table.MarkCondition) optimiert. Die bisherige Implementation der Markierungs-Operation funktionierte zwar, führte jedoch unter manchen Szenarien (z.B. bei Table.MarkCondition) zu unnötigen Abfragen. OrgSqlExport: Für jede Tabelle wird jetzt das Feld __Org_RecordNo indiziert. Dadurch werden Markierungs-Operationen insbesondere bei sehr großen Tabellen beschleunigt. orgAnice SQL Versionen - Seite 51 von 510 4.0.2.43 (19.10.2004) OrgDbServer: Table.GetValues: SQLEX_CHECKNULL eingefügt. orgAnice SQL Versionen - Seite 52 von 510 4.0.2.44 (26.10.2004) OrgDbServer: SQL-Tabellen: Insert und Write arbeiten mit variablen Parametern. OrgDbServer: SQL-Tabellen: Write in einer Tabelle ohne Datensätze funktioniert. orgAnice SQL Versionen - Seite 53 von 510 4.0.2.45 (27.10.2004) OrgDbServer: Das Erzeugen, Ändern oder Löschen eines Index macht die Datenbank „SQLinkonsistent“, so daß eine Neu-Übernahme der Strukturänderungen notwendig wird. OrgDbServer: Alle Datenbanken, die zuletzt mit Version .44 oder früher geöffnet wurden, werden auf „SQL-inkonsistent“ gesetzt, so daß eine Neu-Übernahme der Strukturänderungen notwendig wird. Grund: Strukturrelevante Änderungen im OrgSqlExport in Version .42. orgAnice SQL Versionen - Seite 54 von 510 4.0.2.46 (27.10.2004) OrgDbServer: SQL: Der Command-Timeout wird beim Öffnen der Verbindung auf 120 Sekunden (=2 Minuten) gesetzt. orgAnice SQL Versionen - Seite 55 von 510 4.0.2.47 (28.10.2004) OrgDbServer: SQL: Der Command-Timeout wird beim Erzeugen eines Command-Objects auf 120 Sekunden (=2 Minuten) gesetzt. orgAnice SQL Versionen - Seite 56 von 510 4.0.2.48 (11.11.2004) KeyStorage: Fehler KS_E_LOCKED, der bei erneuter Ausführung von Commit nach Fehlschlagen von Commit auftrat, behoben. orgAnice SQL Versionen - Seite 57 von 510 4.0.2.49 (11.11.2004) OrgDbServer: SQL-Tabellen, Table.Sum: SQL-Abfrage war fehlerhaft formuliert, was zu Fehlern bei Sortierung der Gruppen-Ergebnisse nach Anzahl der Elemente, Maximum oder Summe geführt hat. Behoben. orgAnice SQL Versionen - Seite 58 von 510 4.0.2.50 (18.11.2004) OrgSqlExport: Quellcode-Pflege durchgeführt, kleine Unschönheiten beseitigt. Die beiden riesigen Export-Routinen (800 bzw. 500 Zeilen) wurden in Teil-Routinen aufgeteilt. orgAnice SQL Versionen - Seite 59 von 510 4.0.2.51 (18.11.2004) OrgSqlExport: Felder, die nicht NULL sein dürfen, weil über sie ein Index definiert ist, erhalten jetzt den dem Feldtyp entsprechenden Default-Wert (Leerstring, 0 oder Null-Datum). orgAnice SQL Versionen - Seite 60 von 510 4.0.2.52 (18.11.2004) OrgDbServer: (1583): Wird versucht, einen Datensatz mit bereits existierendem Schlüsselwert bei einem eindeutigen Index einzufügen, kommt die korrekte Fehlermeldung ORGDB_E_UNIQUEINDEX. Bisher wurde dies nur vom SQL-Server abgefangen, ohne die entsprechende orgAnice-Fehlermeldung zu liefern. orgAnice SQL Versionen - Seite 61 von 510 4.0.2.53 (18.11.2004) OrgDbServer: Folgende Vorgehensweise führte bei einer Tabelle mit einem AutoCount-Index zu dem Fehler KS_E_INVALIDBLOCKNO: - Mindestens ein Datensatz wurde bereits angelegt - Alle Datensätze von Hand löschen - Datensatz neu anlegen Der Grund war die Umstellung der AutoCount-Vergabe auf Replikat-IDs. OrgData: Feldinhalte wurden nach Änderungen der Feldstruktur falschen Controls zugeordnet, falls kein Progress-Event gefeuert wurde. orgAnice SQL Versionen - Seite 62 von 510 4.0.2.54 (18.11.2004) OrgData: Beim Einfügen und Löschen von Datensätzen wird jetzt auch die Anzahl sichtbarer Datensätze aktualisiert. orgAnice SQL Versionen - Seite 63 von 510 4.0.2.55 (26.11.2004) OrgDbServer: Bei länger dauernden SQL-Abfragen kommt das Progress-Event mit Progress-Code ORGDB_PROGRESS_SQLEXECUTINGQUERY regelmäßig mit einem Progress von 0.5. Das wird durch asynchrone Ausführung (adAsyncExecute) und regelmäßige Abfrage des Kommando-Status erreicht. Diese Abfragen können jetzt auch abgebrochen werden, wobei die Cancel-Methode aufgerufen wird. Die Events werden sofort nach Ausführung, ohne Berücksichtigung des FirstProgressTimeouts, regelmäßig gefeuert. Der Grund dafür ist, daß ADO bei asynchronen Anfragen eine eigene Message-Loop erzeugt, so daß Maus- und Tastatur-Nachrichten weiterhin an das Anwendungs-Fenster weitergeleitet werden, was unkontrollierbare Ergebnisse liefert. Durch das sofortige Abfeuern des ProgressEvents kann bereits vor der Ausführung ein (Dummy-)Fenster erzeugt werden, das alle Nachrichten filtert. Das Argument pObject des Progress-Events bleibt NULL (Nothing), bis die im FirstProgressTimeout angegebene Zeit verstrichen ist. OrgDbServer: Bei SQL-Abfragen mit Progress-Event wird der Timeout auf Unendlich gesetzt. Der Abfragen-Timeout bleibt auf „Standard“, wenn kein Progress-Event verschickt wird. OrgData: Progress-Event-Handler erzeugt für den Progress-Code ORGDB_PROGRESS_SQLEXECUTINGQUERY einen „Abbrechen“-Knopf im Progress-Fenster. Das Progress-Fenster ist initial unsichtbar, erst bei pObject <> NULL ( FirstProgressTimeout verstrichen) wird es sichtbar. orgAnice SQL Versionen - Seite 64 von 510 4.0.2.56 (27.11.2004) Alle Module: Bei der Zeichenketten-Darstellung von Gleitpunktzahlen wurde eine zu hohe Genauigkeit verwendet, so daß z.B. die Zahl 92.32 als 92.31999....9997 dargestellt wurde. Behoben. orgAnice SQL Versionen - Seite 65 von 510 4.0.2.57 (27.11.2004) OrgSqlExport: Beim Anwendungsfall „Index über ein Feld, Quelldatenbank enthält NULL-Werte in diesem Feld“ funktioniert der Neuaufbau der Datenbank korrekt. orgAnice SQL Versionen - Seite 66 von 510 4.0.2.58 (27.11.2004) OrgData: Bei dem Fehler ORGDB_E_CLIENTABORT wird in den Methoden ModalErrorMessage und ModalDescErrorMessage keine MessageBox mehr angezeigt. orgAnice SQL Versionen - Seite 67 von 510 4.0.2.59 (30.11.2004) OrgDbServer: Die bisherige Übersetzung der OrgBasic-Funktion Date() nach SQL gab aufgrund einer Konvertierungs-Anomalie nach 12:00 Uhr das nächste Datum zurück. Korrigiert, Aufrufe dieser Methode werden jetzt nach CAST(CAST(CAST(GETDATE() AS float) AS int) AS datetime) übersetzt. orgAnice SQL Versionen - Seite 68 von 510 4.0.2.60 (02.12.2004) OrgData: OE Benutzer: Text „Aktivität“ durch „Status“ ersetzt. OrgSqlExport: Die Indizes für Datensatz-OID und Datensatz-Nummer wurden nicht angelegt. Behoben. orgAnice SQL Versionen - Seite 69 von 510 4.0.2.61 (02.12.2004) OrgDbServer: CUser::put_Activity: Beim Aktivieren von Benutzern werden jetzt genau so viele Benutzer zugelassen, wie in der Lizenz vermerkt. orgAnice SQL Versionen - Seite 70 von 510 4.0.2.62 (02.12.2004) OrgDbServer: SQL-Tabellen: Das Ändern der Replikat-ID (Database.ReplicaId) macht ein Übernehmen der Strukturänderungen nach SQL notwendig. OrgDbServer: Bei SQL-Tabellen werden AutoCount-Felder nicht mehr ausgefüllt, es wird davon ausgegangen, daß dies serverseitig geschieht. OrgDbServer: Falls eine Datenbank zuletzt mit Server-Version vor .62 geöffnet wurde, wird bei dieser Datenbank die Übernahme der Strukturänderungen nach SQL erforderlich. OrgSqlExport: Zu jedem AutoCount-Index wird jetzt ein Trigger angelegt, das sich um die Neuvergabe der AutoCount-Werte kümmert. Die Vergabe geschieht dabei nach demselben Algorithmus wie bisher. Replikat-IDs werden unterstützt. OrgSqlExport: Hilfs-UDFs werden auch im Fall der Übernahme der Strukturänderungen neu angelegt. orgAnice SQL Versionen - Seite 71 von 510 4.0.2.63 (09.12.2004) OrgSqlExport: Beim Neu-Export ist eine zusätzliche Protokollierung in eine Datei möglich. Die Datei wir dabei im Unterverzeichnis „Logs“ der OrgSqlExport.exe angelegt. Die Einstellung, ob protokolliert werden soll, wird beim nächsten Start wiederhergestellt. orgAnice SQL Versionen - Seite 72 von 510 4.0.2.64 (09.12.2004) OrgDbServer: Falls eine Datenbank zuletzt mit Server-Version vor .64 geöffnet wurde, wird bei dieser Datenbank die Übernahme der Strukturänderungen nach SQL erforderlich. OrgSqlExport: Alle AutoCount-Trigger mit dem Attribut „NOT FOR REPLICATION“ belegt, damit bei einer eventuellen SQL-Replikation kein neuer AutoCount-Wert vergeben wird. orgAnice SQL Versionen - Seite 73 von 510 4.0.2.65 (09.12.2004) OrgSqlExport: Bei der Übernahme der Strukturänderungen wird kein Backup mehr erzeugt. Stattdessen werden alle Operationen an der „lebendigen“ Datenbank durchgeführt. Um Atomizität zu sichern, wird der gesamte Prozeß der Struktur-Übernahme innerhalb einer benannten Transaktion ausgeführt. Tritt ein Fehler auf, wird die gesamte Transaktion (!) zurückgesetzt. Die Transaktion hat eine Größe von etwas mehr als einem GB, so daß das Rücksetzen eine Weile dauern kann. Zum Eröffnen der Transaktion wird die SQL-Syntax BEGIN TRANSACTION OrgSqlExport WITH MARK verwendet. Das ermöglicht eine Recovery bis zu diesem Punkt, um bei Bedarf die durch OrgSqlExport gemachten Änderungen rückgängig machen zu können. Das ganze bringt bei erfolgreichem Ablauf einen Performance-Vorteil. orgAnice SQL Versionen - Seite 74 von 510 4.0.2.66 (09.12.2004) OrgSqlExport: Das Füllen der redundanten Index-Felder passiert jetzt mit einer einzigen Abfrage anstelle wie bisher mit einer Abfrage pro Index. OrgSqlExport: Problem beim Löschen von Constraints behoben: Funktionierte nicht gut, wenn Recordsets noch offen waren. orgAnice SQL Versionen - Seite 75 von 510 4.0.2.67 (20.12.2004) OrgDbServer: Bei Datenbanken mit KeyStorage-Tabellen wurde die Eigenschaft Database.SqlStructureConsistency fälschlicherweise mit TRUE ausgewertet, wenn die Datenbank aus SQL nach KeyStorage durch Setzen der Eigenschaft TableType „zurücktransformiert“ wurde und das interne Inkonsistenz-Flag noch gesetzt war. orgAnice SQL Versionen - Seite 76 von 510 4.0.2.68 (20.12.2004) OrgDbServer: Index-Prqs wurden nicht ausgewertet, wenn der aktuelle Datensatz auf EOF stand. Das führte u.a. dazu, daß das Einfügen in leere Tabellen nicht funktionierte. OrgDbServer: Das Löschen von Indizes funktioniert. OrgSqlExport: Das Exportieren einer KeyStorage-Datenbank nach SQL funktioniert wieder. orgAnice SQL Versionen - Seite 77 von 510 4.0.2.69 (09.01.2005) Alle Module: Interne Änderungen, u.a. für lint. Alle Module: TypeLib neu erstellt. Der neue MIDL kommt mit optionalen nicht-VARIANTArgumenten nicht klar! OrgDbServer: Beim Starten von Datenbanken mit SQL-Tabellen mit fehlerhafter Connection gibt es keinen GPF mehr. OrgSqlExport: Die Übernahme der Strukturänderungen funktioniert wieder. OrgSqlExport: Beim Anlegen von Tabellen und UDFs wird jetzt explizit „dbo“ als Besitzer angegeben. Grund: Tabellen und UDFs haben Besitzer und müssen vollständig (inkl. Besitzer) qualifiziert werden, OrgDbServer benutzt hierfür immer „dbo“. Achtung: Der Export schlägt fehl, wenn der aktuelle Benutzer keine Objekte mit Besitzer „dbo“ anlegen darf. orgAnice SQL Versionen - Seite 78 von 510 4.0.2.70 (10.01.2005) OrgData: Abfrage der Datenbank-Eigenschaft HideProgressBars war fehlerhaft. Behoben. orgAnice SQL Versionen - Seite 79 von 510 4.0.2.71 (10.01.2005) Alle Module: Copyright-Angabe auf 2005 erweitert. orgAnice SQL Versionen - Seite 80 von 510 4.0.2.72 (10.01.2005) OrgDbServer: SQL-Tabellen: Beim Einfügen oder Ändern von Datensätzen wurden die Datensatzpuffer in CTable nicht noch einmal eingelesen. Wegen serverseitiger Vergabe von AutoCount-Werten entstanden dadurch falsche Feldinhalte in AutoCount-Feldern. Das äußerte sich darin, daß nach dem Anlegen eines MasterDatensatzes die Detail-Datensätze nicht korrekt aktualisiert wurden. orgAnice SQL Versionen - Seite 81 von 510 4.0.2.73 (10.01.2005) OrgDbServer: SQL-Tabellen: Bei Tabellen mit mehr als einem Dokument-Feld funktionierte die Zuweisung von Dokumenten zum „nicht-ersten“ Dokument-Feld nicht korrekt. Behoben. orgAnice SQL Versionen - Seite 82 von 510 4.0.2.74 (10.01.2005) OrgData: Für Debug-Builds wurde der Befehl für das Umschalten zwischen Konfigurations- und Benutzermodus auf den Shortcut Ctrl+F12 (statt F12) gelegt, da F12 bei Debug-Builds in den Debugger springt. orgAnice SQL Versionen - Seite 83 von 510 4.0.2.75 (10.01.2005) OrgDbServer: Memo-Felder ab einer bestimmten Länge konnten nicht geschrieben werden. Behoben. orgAnice SQL Versionen - Seite 84 von 510 4.0.2.76 (12.01.2005) OrgDbServer: Wurden mehr als 8000 Bytes Dokument-Daten auf einmal gelesen, so enthielten nur die ersten 8000 Bytes echte Daten, der Rest war mit Nullen gefüllt. Dies trat unter anderem in CDocument::_Clone auf, was beim Kopieren von Dokumenten benutzt wird. Dadurch funktionierten alle Dokument-Kopiervorgänge von SQL aus nicht. orgAnice SQL Versionen - Seite 85 von 510 4.0.2.77 (18.01.2005) OrgDbServer: Dokumente: CLockBytes greift jetzt auf COrgDocumentImp zu, nicht umgekehrt. orgAnice SQL Versionen - Seite 86 von 510 4.0.2.78 (18.01.2005) OrgDbServer: Dokumente: CSqlLockBytes greift jetzt auf CSqlDocumentImp zu, nicht umgekehrt. orgAnice SQL Versionen - Seite 87 von 510 4.0.2.79 (18.01.2005) OrgDbServer: Verzicht auf CSqlLockBytes, Implementations-Unterschiede sind nur in C*DocumentImp verankert.. orgAnice SQL Versionen - Seite 88 von 510 4.0.2.80 (18.01.2005) Alle Module: Lint-Fehler entfernt. orgAnice SQL Versionen - Seite 89 von 510 4.0.2.81 (19.01.2005) OrgDbServer: Benutzung von „prepared commands“ vorerst ausgebaut. Grund: Bei prepared commands darf sich die Größe von String-Parametern im Nachhinein nicht verändern, aus den Variant-Argumenten läßt sich die Maximalgröße jedoch nicht herleiten. Prepared commands sind erst möglich, wenn die Argument-Größe (und auch Argument-Typ) Bestandteil der CQuery-Objekte ist. orgAnice SQL Versionen - Seite 90 von 510 4.0.2.82 (19.01.2005) Alle Module: Lint ist jetzt für den täglichen Gebrauch einsatzbereit. orgAnice SQL Versionen - Seite 91 von 510 4.0.2.83 (23.01.2005) OrgDbServer: Schnittstellenmethoden werden jetzt ausschließlich in den .cpp-Modulen, nicht mehr in Main.h oder Parser.h, definiert. orgAnice SQL Versionen - Seite 92 von 510 4.0.2.84 (23.01.2005) OrgDbServer: Alle leeren Error:-Handler entfernt. orgAnice SQL Versionen - Seite 93 von 510 4.0.2.85 (23.01.2005) OrgDbServer: Error-Handler sollten als letzten Befehl „return hr“ haben. orgAnice SQL Versionen - Seite 94 von 510 4.0.2.86 (23.01.2005) OrgDbServer: Zwei Leerzeilen nach Variablen-Deklaration. orgAnice SQL Versionen - Seite 95 von 510 4.0.2.87 (24.01.2005) OrgDbServer: BEGIN_ERROR_HANDLING und END_ERROR_HANDLING. orgAnice SQL Versionen - Seite 96 von 510 4.0.2.88 (24.01.2005) OrgDbServer: Definition einer Konstante THIS_FILE für jedes Modul. orgAnice SQL Versionen - Seite 97 von 510 4.0.2.89 (24.01.2005) OrgDbServer: Die meisten Methoden mit NO_THROW deklariert. Grund: Notwendig, damit nicht abgefangene Exceptions mit Lint analysiert werden können. orgAnice SQL Versionen - Seite 98 von 510 4.0.2.90 (25.01.2005) OrgDbServer: Alle Methoden mit NO_THROW deklariert. Nicht notwendig wegen Lint-Flag +fet, wird im nächsten Release entfernt. orgAnice SQL Versionen - Seite 99 von 510 4.0.2.91 (31.01.2005) OrgDbServer: NO_THROW entfernt. orgAnice SQL Versionen - Seite 100 von 510 4.0.2.92 (31.01.2005) interne Optimierungen orgAnice SQL Versionen - Seite 101 von 510 4.0.2.93 (31.01.2005) OrgDbServer: CSqlTableImp::DeleteRecords löschte in Detail-Tabellen immer alle Datensätze, auch wenn in der zu löschenden Tabelle die Sichtbarkeit eingeschränkt war. orgAnice SQL Versionen - Seite 102 von 510 4.0.2.94 (10.02.2005) OrgDbServer: SQL-Tabellen: Beim Löschen von Datensätzen wurden alle Markierungen für diese Datensatznummer (auch in anderen Tabellen) gelöscht. Das war u.a. für das seltsame Verhalten beim Löschen aller sichtbaren Datensätze verantwortlich. orgAnice SQL Versionen - Seite 103 von 510 4.0.2.95 (06.03.2005) Versions.rtf nach Versions.doc umbenannt. Alle Module: Versions-Dateien .ver bearbeitet, so dass Änderungen in der Projekt-Version sofort sichtbar werden. OrgDbServer: SQL-Tabellen: GoTop und Skip funktionieren auch ohne vorheriges Setzen des aktiven Index. OrgImExport: Version für orgAnice 4 erstellt. orgAnice SQL Versionen - Seite 104 von 510 4.0.2.96 (06.03.2005) OrgDbServer: Beim Öffnen einer Datenbank mit Version 4.0.2.95 oder früher wird der SQL-Status auf „inkonsistent“ gesetzt. Grund: Änderungen im OrgSqlExport. OrgSqlExport: SaveCheckPrq-s, die sich auf eine andere Tabelle beziehen, werden nicht als CHECK-Constraint in die SQL-DB übernommen. Es wird eine entsprechende Warnung ins Protokoll eingefügt. orgAnice SQL Versionen - Seite 105 von 510 4.0.2.97 (06.03.2005) OrgDbServer: orgAnice Database Server SQL: Markieren von markierten Datensätzen bricht mit Fehler ab. Behoben. orgAnice SQL Versionen - Seite 106 von 510 4.0.2.98 (11.03.2005) OrgData: Beim Öffnen eines Dokuments per Doppelklick in der Listenansicht wurde, falls das Dokument in einer anderen Session offen war, nicht darauf hingewiesen. War die erste Spalte in der Listenansicht ein Dokument, konnte es nicht per Doppelklick geöffnet werden. Beim Öffnen eines Dokuments erscheint in jedem Fall eine Sanduhr. Behoben. orgAnice SQL Versionen - Seite 107 von 510 4.0.2.99 (11.03.2005) interne Optimierungen orgAnice SQL Versionen - Seite 108 von 510 4.0.2.100 (11.03.2005) interne Optimierungen orgAnice SQL Versionen - Seite 109 von 510 4.0.2.101 (11.03.2005) interne Optimierungen orgAnice SQL Versionen - Seite 110 von 510 4.0.2.105 (16.03.2005) Keine Änderungen. orgAnice SQL Versionen - Seite 111 von 510 4.0.2.106 (17.03.2005) – SQL: SQL-Replikation und Views Keine Änderungen. orgAnice SQL Versionen - Seite 112 von 510 4.0.2.107 (17.03.2005) – SQL: SQL-Replikation und Views OrgSqlExport: Anlegen einer internen Tabelle __Org_DbProps, in der datenbankspezifische Eigenschaften gespeichert werden. OrgSqlExport: Die (interne) Eigenschaft ServerVersion in der Tabelle __Org_DbProps speichert die Version, mit der die Datenbank zuletzt per OrgSqlExport bearbeitet wurde. OrgDbServer: Prüfung der Eigenschaft ServerVersion, damit Updates an der SQL-Datenbank unabhängig von der ODB-Datei erzwungen werden können. orgAnice SQL Versionen - Seite 113 von 510 4.0.2.108 (17.03.2005) – SQL: SQL-Replikation und Views OrgDbServer: Änderung der Eigenschaft ReplicaId löst keine SQL-Struktur-Inkonsistenz mehr aus. Statt dessen wird die interne Eigenschaft ReplicaId in der Tabelle __Org_DbProps beschrieben. orgAnice SQL Versionen - Seite 114 von 510 4.0.2.109 (18.03.2005) – SQL: SQL-Replikation und Views OrgSqlExport: Sichten werden bei der Übernahme der Strukturänderungen ignoriert. orgAnice SQL Versionen - Seite 115 von 510 4.0.2.110 (18.03.2005) OrgData: COM: Eigenschaft Application.ApcObject gibt das APC-Objekt als IDispatch zurück. Grund: Nur so funktioniert das Arbeiten mit dem APC-Objekt über Prozess-Grenzen hinweg. orgAnice SQL Versionen - Seite 116 von 510 4.0.2.111 (18.03.2005) OrgData: COM: Methoden Workspace.SaveIcon und FormControl.SaveIcon. Speichern das jeweilige Symbol als .ico-Datei. Workaround: Das Speichern per SavePicture pFormControl.Icon, „C:\Test.ico“ setzt die transparente Farbe auf schwarz, daran scheint sich nichts ändern zu lassen. orgAnice SQL Versionen - Seite 117 von 510 4.0.2.112 (18.03.2005) OrgData: orgAnice Data Pi: .SaveIcon stürzt nicht mehr ab, wenn das betreffende Objekt kein Icon besitzt. Stattdessen wird der neue Fehlercode ORGDATA_E_NOICON zurückgegeben. orgAnice SQL Versionen - Seite 118 von 510 4.0.2.113 (27.03.2005) – SQL: SQL-Replikation und Views OrgDbServer: Insert bei SQL-Tabellen sucht sich jetzt den neuen Datensatz anhand der RecordOid und nicht anhand der RecordNo. Das beseitigt die Positionierungs-Probleme nach Insert bei Einsatz mit der SQL-Server-Replikation. orgAnice SQL Versionen - Seite 119 von 510 4.0.2.114 (27.03.2005) OrgData: Neue Methode FormControls.CreateDefaultForm und ListColumns.CreateDefaultList. orgAnice SQL Versionen - Seite 120 von 510 4.0.2.115 (27.03.2005) OrgDbServer: DBF-Import: Progress-Event wird gefeuert. OrgDbServer: DBF-Import: Leere Datums-Werte werden jetzt korrekt als leeres Datum importiert. orgAnice SQL Versionen - Seite 121 von 510 4.0.2.116 (05.04.2005) Keine Änderungen. orgAnice SQL Versionen - Seite 122 von 510 4.0.2.117 (07.04.2005) OrgDbServer: Neuer Schalter ORGDB_SQLEX_NOMEMOFIELDS zur Erzeugung von SQLÜbersetzungen für ParserRequests. Bei Benutzung dieses Schalters schlägt die Übersetzung fehl, wenn der Quell-Ausdruck auf Memo-Felder zugreift. OrgSqlExport: SaveCheckPrq‟s, die auf Memo-Felder zugreifen, werden ignoriert. OrgSqlExport: Indizes über Memo-Felder werden korrekt erzeugt. orgAnice SQL Versionen - Seite 123 von 510 4.0.2.118 (08.04.2005) OrgSqlExport: Jetzt werden benutzerdefinierte Trigger bei der Übernahme der Strukturänderungen nicht mehr gelöscht. orgAnice SQL Versionen - Seite 124 von 510 4.0.2.120 (08.04.2005) interne Optimierungen orgAnice SQL Versionen - Seite 125 von 510 4.0.2.121 (22.04.2005) Interne Änderungen an OrgExport und OrgImport. orgAnice SQL Versionen - Seite 126 von 510 4.0.2.122 (22.04.2005) Keine Änderung. orgAnice SQL Versionen - Seite 127 von 510 4.0.2.123 (22.04.2005) – Merge mit 4.0.2.113 Enthält alle Änderungen, die bis einschließlich Version 4.0.2.113 im Zweig „SQL: SQL-Replikation und Views“ hinzugekommen sind. orgAnice SQL Versionen - Seite 128 von 510 4.0.2.124 (22.04.2005) Bug: OrgImport: Kein Absturz mehr, wenn ein nicht definiertes Feld verwendet wird. Bug: OrgImport, OrgExport: Diverse Schönheitsfehler behoben. orgAnice SQL Versionen - Seite 129 von 510 4.0.2.125 (22.04.2005) Bug: SQL-Tabellen: Szenario: - Sichtbeschränkung in einer übergeordneten Tabelle - Sortieren nach Index „ID“ in der untergeordneten Tabelle - Positionieren auf einen Datensatz der untergeordneten Tabelle, bei dem der übergeordnete Datensatz nicht sichtbar ist. Funktioniert (wieder) korrekt. orgAnice SQL Versionen - Seite 130 von 510 4.0.2.126 (23.04.2005) COM: OrgDbServer.idl gesäubert, um Kompatibilität zu orgAnice 3.1 wiederherzustellen. Die Eigenschaft User.Active existiert wieder. Es wird empfohlen, alle Komponenten für orgAnice 4.0 neu zu erstellen. Es sollte auch ohne Neuerstellen nichts gravierendes passieren, trotzdem sollte generell nach Schnittstellenänderungen neu kompiliert werden. Die VBA-Projekte in OrgData werden automatisch beim Start neu erstellt. orgAnice SQL Versionen - Seite 131 von 510 4.0.2.127 (23.04.2005) Keine Änderung. orgAnice SQL Versionen - Seite 132 von 510 4.0.2.128 (23.04.2005) Bug: OrgSqlExporrt: AutoCount-Indizes werden unter SQL nie als Unique-Indizes angelegt. Es gab Probleme mit dem Einfügen mehrerer Datensätze per INSERT-Abfrage und mit leeren AutoCount-Feldinhalten. Bei Datenbanken, die mit Version 4.0.2.127 oder früher geöffnet wurden, wird das „SQL dirty“-Flag gesetzt, so dass eine Übernahme der Strukturänderungen möglich ist. orgAnice SQL Versionen - Seite 133 von 510 4.0.2.129 (23.04.2005) – Merge mit 4.0.2.113 Der Merge-Vorgang aus 4.0.2.123 war nicht ganz vollständig. Enthält alle Änderungen, die bis einschließlich Version 4.0.2.113 im Zweig „SQL: SQL-Replikation und Views“ hinzugekommen sind. orgAnice SQL Versionen - Seite 134 von 510 4.0.2.130 (23.04.2005) Bug: Einige SQL-Hilfsfunktionen funktionierten nicht bei SQL-Servern, die standardmäßig Groß-/Kleinschreibung beachten. (Meldung von Herrn Adolph.) Feature: OrgSqlExport prüft vor dem Export-Vorgang die Versionsnummer des OrgDbServer auf Übereinstimmung mit der eigenen Versionsnummer und gibt im Fehlerfall eine Fehlermeldung aus. orgAnice SQL Versionen - Seite 135 von 510 4.0.2.131 (23.04.2005) – Merge mit 4.0.2.113 Der Merge-Vorgang aus 4.0.2.129 war immer noch nicht ganz vollständig. Enthält alle Änderungen, die bis einschließlich Version 4.0.2.113 im Zweig „SQL: SQL-Replikation und Views“ hinzugekommen sind. orgAnice SQL Versionen - Seite 136 von 510 4.0.2.132 (24.04.2005) Bug: (1604) Bug Prio B: orgAnice Database Server SQL: Absturz OfficeSQL-DB (KSVersion) nach löschen eines Feldes Wenn man in der Office SQL-DB (KS-Version) ein Feld löscht stürzt beim Wechsel in den Benutzermodus die Datenbank ab. Behoben. orgAnice SQL Versionen - Seite 137 von 510 4.0.2.133 (24.04.2005) Feature: (1614) Todo Prio B: orgAnice Data: APC.SecurityLevel verändern Der APC.SecurityLevel lautet immer 2 (axSecurityMedium), das Verändern über das Setzen der Eigenschaft wird nicht persistent gespeichert. Der APC.SecurityLevel sollte aber zunächst standardmäßig auf 1 (axSecurityNone) gesetzt werden. Grund: Es wird berichtet, dass das Einbinden von ActiveX-Komponenten von Drittherstellern sich so auswirkt, dass die Benutzer immer die Verwendung von darauf basierenden Steuerelemente bestätigen müssen. Die Suche im Internet ergab nur Treffer im Zusammenhang mit Word-VBA: dort hieß es, dass man die MakroSicherheitsstufe in Word auf niedrig setzten sollte. Security-Level wird beim Start von VBA auf axSecurityNone gesetzt. orgAnice SQL Versionen - Seite 138 von 510 4.0.2.134 (24.04.2005) Feature: Farbverlauf wird bei Zugriff über die Terminal-Dienste deaktiviert. orgAnice SQL Versionen - Seite 139 von 510 4.0.2.135 (24.04.2005) Keine Änderungen. orgAnice SQL Versionen - Seite 140 von 510 4.0.2.136 (11.05.2005) Feature: KeyStorage: Kleinere Verbesserungen und Sicherheits-Maßnahmen. Feature: KeyStorage: Analyse-Routine verbessert. Neue Datei OidErr.log wird ausgegeben, die alle nicht auffindbaren OID-Schlüssel enthält. Bug: KeyStorage: Interner Fehler, der zu inkonsistenten Datenbanken hätte führen können, aber bisher keine Auswirkungen hatte, behoben. orgAnice SQL Versionen - Seite 141 von 510 4.0.2.137 (11.05.2005) Feature: OrgDbServer: Document.DefaultExtension liefert die Document-ClassID, falls der Registry-Eintrag „DefaultExtension“ fehlt. Im Explorer werden Dateien mit registrierter GUID als Erweiterung korrekt dargestellt, allerdings dann ohne Erweiterung. Feature: OrgDbServer: Compact: Die in der Datenbank befindlichen Dokumente, die nicht beim Kompaktieren übernommen wurden (z.B. defekter Datensatz, ...), werden im Dateisystem im Datenbank-Verzeichnis abgelegt. Der Dateiname ist die interne Dokument-OID (nichtssagend), die Dateierweiterung wird anhand der DokumentInformation (Document.DefaultExtension) ermittelt. orgAnice SQL Versionen - Seite 142 von 510 4.0.2.138 (11.05.2005) Problem: OrgImport: Beim Erzeugen der initialen Feldzuordnung (=Import ohne Import-Regel) werden auch Dokument-Felder korrekt zugeordnet. Feature: OrgData: Unterstützung von aus Dokument-Feldern bestehenden Parser-Requests in Listenspalten hinzugefügt. orgAnice SQL Versionen - Seite 143 von 510 4.0.2.139 (13.05.2005) Bug: OrgExport: Kein Absturz mehr bei Export nach CSV ohne Textqualifizierer („<Keine>“). orgAnice SQL Versionen - Seite 144 von 510 4.0.2.140 (13.05.2005) Problem: Das Rücksetzen auf den Tabellentyp „KeyStorage“ ist jetzt im OrgData-Objekt-Editor auch bei fehlender Verbindung zum SQL-Server möglich. orgAnice SQL Versionen - Seite 145 von 510 4.0.2.141 (22.05.2005) Bug: orgAnice Database Server SQL: Konvertieren einer o3.1-Datei ins 4.0-Format Benutzer Nach dem Konvertieren einer Datenbank aus dem 3.1-Format passiert folgendes: Wenn eine 4.0-Lizenz eingegeben wird, die weniger Benutzer besitzt als in der 3.1-DB eingetragen, dann erscheint schließlich die Fehlermeldung 0x8004103D ORGDB_E_TOOMANYCONCURRENTUSERS Dann ist es nicht mehr möglich, sich an der Datenbank anzumelden - es erscheint immer wieder diese Fehlermeldung, ohne, dass man die Chance hat eine neue Lizenznummer einzutragen. In diesem Fall sollte aber die Lizenznummer mit ORGDB_E_TOOMANYUSERS 0x80041035 abgewiesen werden. Behoben. Problem: Kleinere optische Probleme beim Upgrade von 3.1 auf 4.0 behoben. orgAnice SQL Versionen - Seite 146 von 510 4.0.2.142 (22.05.2005) Problem: OrgDbServer: Table.MarkCondition: Rückgabewert der Anzahl markierter Datensätze unterschied sich zwischen KS- und SQL-Version. Behoben. orgAnice SQL Versionen - Seite 147 von 510 4.0.2.143 (24.05.2005) SCL: Mögliches „out of bounds write“ behoben. OrgDbServer: Compact ist toleranter gegenüber defekten Datensätzen. Der Fehler E_FAIL tritt nicht mehr auf. orgAnice SQL Versionen - Seite 148 von 510 4.0.2.144 (24.05.2005) interne Optimierungen orgAnice SQL Versionen - Seite 149 von 510 4.0.2.145 (24.05.2005) KeyStorage: Analyse gibt in der Datei OidTree.log den Titel eines Schlüssels aus, falls der Name nicht vorhanden ist. orgAnice SQL Versionen - Seite 150 von 510 4.0.2.147 (26.05.2005) Migration nach .NET durchgeführt. orgAnice SQL Versionen - Seite 151 von 510 4.0.2.148 (30.05.2005) KeyStorage: Neue Methode CKeyStorage::IsamGetAll. KeyStorage: Analyse: Ausgabe in OidTree.log um die OIDs erweitert. Die OID erscheint 1x pro Eintrag, so dass sie leicht gefunden werden kann. OrgDbServer: Compact sucht jetzt Datensätze, zu denen es einen Eintrag im RecordOid-Index gibt, die aber auf „normalem“ Weg nicht gefunden werden konnten. orgAnice SQL Versionen - Seite 152 von 510 4.0.2.149 (30.05.2005) KeyStorage: Bei Commit fehlte ein entscheidendes FlushFileBuffers. Das könnte für Datenbankfehler verantwortlich gewesen sein. Ein anderes, weniger kritisches FlushFileBuffers wurde stattdessen entfernt. orgAnice SQL Versionen - Seite 153 von 510 4.0.2.150 (31.05.2005) OrgData: CloseRequest- und AutoClose-Makros werden nicht mehr aufgerufen, wenn OrgData per COM gestartet wird. Bei den Makros AutoOpen und ModeChanged war das schon immer der Fall. OrgData: Freigabereihenfolge in CApplication::_Exit geändert. Grund: _WriteAppData produziert u.U. COM-Aufrufe zu OrgDbServer, die bisher fehlschlugen, falls sich der Server in einem anderen Prozess befand. OrgData: _WriteAppData optimiert: Das Access-Objekt wird nur angefordert, wenn wirklich geschrieben werden soll. orgAnice SQL Versionen - Seite 154 von 510 4.0.2.151 (01.06.2005) OrgData: Neue Eigenschaften Workspace.HasIcon und FormControl.HasIcon As Boolean. Geben zurück, ob dem Objekt ein Icon zugeordnet ist. Notwendig, da bei Zugriff über COM die Eigenschaft .Icon nicht funktioniert. OrgData: Neue Methoden ImageList.Save und .Load zum Speichern einer ImageList in einer Datei und zum anschließenden Laden. orgAnice SQL Versionen - Seite 155 von 510 4.0.2.152 (01.06.2005) OrgSqlImport: Problem beim Importieren von im SQL-Betrieb neu angelegten Tabellen behoben. orgAnice SQL Versionen - Seite 156 von 510 4.0.2.153 (01.06.2005) OrgDbServer: SaveAs mit ausgewählten Tabellen speichert nicht mehr alle Dokumente im Dateisystem ab. OrgDbServer: IDL: Für OrgReplication verwendete Konstanten waren falsch definiert. Führte u.a. zu Fehler (1631) Bug Prio B: orgAnice Database Server 3.1: Database.SaveAs. orgAnice SQL Versionen - Seite 157 von 510 4.0.2.154 (01.06.2005) OrgSqlImport: Problem beim Importieren von im SQL-Betrieb neu angelegten Tabellen behoben. Der Fix aus 4.0.2.152 war fehlerhaft. orgAnice SQL Versionen - Seite 158 von 510 4.0.2.155 (02.06.2005) OrgData: ImageLists.Create war fehlerhaft. orgAnice SQL Versionen - Seite 159 von 510 4.0.2.156 (02.06.2005) OrgData: (1641) Todo Prio B: orgAnice Data SQL: Frage "Datensatz speichern?" Beim Verlassen eines Datensatzes erscheint die Frage "Datensatz speichern?", wenn sich die Inhalte der Steuerelemente von den Feldinhalten unterscheiden und zwar unabhägig davon, ob der Benutzer überhaupt irgendetwas in einen Steuerelement geändert hat. Das Layout sollte aber mit einer Art "Dirty"-Flag arbeiten, das erst dann gesetzt wird, wenn tatsächlich in einem Steuerelement etwas geändert wird. Sonst erscheint die Frage auch beim einfachen Skippen durch die Tabelle, was ziemlich nervig ist. Bsp. Double-Feld mit dem Wert 1,2345. Im Tabellenlayout ist das entsprechende Steuerelement mit 2 Nachkommastellen definiert -> es wird nur 1,23 angezeigt und beim Verlassen des Datensatzes erscheint die Frage. Behoben. In einem Formular hat jedes Control und das Formular selbst ein eigenes DirtyFlag, das bei der ersten Benutzeraktion gesetzt wird. Controls, deren Dirty-Flag gelöscht ist, geben bei der Abfrage des Feldinhalts genau den Wert wieder zurück, den sie beim Setzen erhalten haben. Der Datensatz wird als ungeändert angesehen, wenn das Dirty-Flag für das Formular gelöscht ist. Erreichter Effekt (Erläuterung unter Verwendung des oben geschilderten Beispiels): - Neuer Datensatz, keine Änderung, Positionieren auf einen anderen Datensatz keine Rückfrage - Neuer Datensatz, „Null-Änderung“, Positionieren auf einen anderen Datensatz Rückfrage („Null-Änderung“ = Änderung des Inhalts unter Beibehaltung des Werts, z.B. Leerzeichen einfügen und wieder löschen) - Double-Feld wie oben (1,2345, zwei Dezimalstellen), keine Änderung, Positionieren auf einen anderen Datensatz keine Rückfrage - Double-Feld wie oben (1,2345, zwei Dezimalstellen), Änderung in einem anderen Feld, Positionieren auf einen anderen Datensatz Rückfrage, Feldinhalt bleibt 1,2345 - Double-Feld wie oben (1,2345, zwei Dezimalstellen), Null-Änderung im DoubleFeld, Positionieren auf einen anderen Datensatz Rückfrage, Feldinhalt wird auf 1,23 gesetzt OrgData: Euro-Control: Beim Setzen des Fokus per Tastatur wird auf das Textfeld positioniert, das zuletzt aktiv war. OrgData: Euro-Control: Wird der Text in einem der Textfelder gelöscht, wird er auch im anderen Textfeld gelöscht. (Bisher enthielt z.B. bei EOF das zweite Textfeld „0“, während das erste leer war.) orgAnice SQL Versionen - Seite 160 von 510 4.0.2.157 (02.06.2005) OrgData: In 4.0.2.156 eingebauten Bug behoben: Dem Datensatz zugeordnete Dokumente wurden nicht gespeichert. orgAnice SQL Versionen - Seite 161 von 510 4.0.2.158 (02.06.2005) OrgData: COM: Neue Methode Application.SaveVba. Speichert das VBA-Projekt, falls es dirty ist. Scheint für OrgCustomizer notwendig zu sein. orgAnice SQL Versionen - Seite 162 von 510 4.0.2.159 (03.06.2005) KeyStorage: Hin und wieder erschien bei ausgelastetem Netzwerk die Meldung, dass „die DB von einem Benutzer-Administrator geschlossen worden sei“. Jetzt wird bei DetectShutdown explizit der System-Fehlercode geprüft und nur bei ERROR_LOCK_VIOLATION ein Shutdown eingeleitet. Hoffentlich sieht die Meldung bei ausgelastetem Netzwerk anders aus. orgAnice SQL Versionen - Seite 163 von 510 4.0.2.160 (03.06.2005) OrgData: Änderungen aus 4.0.2.156, 4.0.2.157 rückgängig gemacht. orgAnice SQL Versionen - Seite 164 von 510 4.0.2.160 (08.06.2005) Alle Module: Die Quellcode-Basis für orgAnice 4.0 wird verwendet, um Binaries für orgAnice 3.1 zu erzeugen. Info: Ursprünglich aus 4.0.2.159 verzweigt, Änderungen 159->160 wurden angewendet. orgAnice SQL Versionen - Seite 165 von 510 4.0.2.162 (08.06.2005) OrgDbServer: Compact: Fehlende Keys für Tabellen, deren Existenz vorausgesetzt wird, werden angelegt. (Das behebt die Probleme im OrgSqlImport, die beim ReImportieren von Datenbanken mit im SQL-Modus neu angelegten Tabellen auftraten.) OrgDbServer: Auch im SQL-Tabellen-Modus werden die für den KeyStorage-Modus benötigten Keys angelegt. OrgDbServer: Fehlermeldung ORGDB_E_NEEDCOMPACT, falls ein benötigter Tabellen-Key nicht vorhanden ist. orgAnice SQL Versionen - Seite 166 von 510 4.0.2.163 (11.06.2005) OrgImExport: Nach dem Splashscreen erschien kein Assistent. Der Fehler hing mit der Umstellung auf .NET (und damit auf ATL 7.1) zusammen, behoben durch Verwendung einer ATL 3.0-Version einer internen Klasse. orgAnice SQL Versionen - Seite 167 von 510 4.0.2164 (12.06.2005) OrgDbServer: (3.1) Das Anlegen neuer Tabellen und andere strukturändernde Operationen führten zu einem Stack-Überlauf. Behoben. orgAnice SQL Versionen - Seite 168 von 510 4.0.2.165 (12.06.2005) OrgData: Application.SaveAs funktionierte nicht, wenn das Projekt dirty war. Behoben. orgAnice SQL Versionen - Seite 169 von 510 4.0.2.166 (13.06.2005) OrgExprEditor: Hilfe-Button entfernt. orgAnice SQL Versionen - Seite 170 von 510 4.0.2.167 (13.06.2005) OrgDbServer: (4.0) Volltextsuche auf numerischen Feldern (auch Ganzzahlfelder) funktioniert wieder. orgAnice SQL Versionen - Seite 171 von 510 4.0.2.168 (13.06.2005) OrgData: Direktsuche fasst alle Zeichen, die sich im Tastaturpuffer befinden, zu einer Suche zusammen. Gerade für schnelle Tipper erhöht sich dadurch die fühlbare Performance spürbar. orgAnice SQL Versionen - Seite 172 von 510 4.0.2.169 (13.06.2005) OrgDbServer: Neue Regel: Wenn die Lizenz keine konkurrierenden Benutzer zulässt, ist es nicht gestattet, einen Benutzer auf „konkurrierend“ zu setzen. Wenn es konkurrierende Benutzer gibt, ist es nicht gestattet, eine Lizenz ohne konkurrierende Benutzer einzutragen. Wird gegen diese Regel verstoßen, kommt der neue Fehlercode ORGDB_E_NOCONCURRENTUSERS (0x8004103E). OrgDbServer: Neue Eigenschaften Database.LicensePermanentUserCount und Database.LicenseConcurrentUserCount. Liefern die registrierte Anzahl permanenter bzw. konkurrierender Benutzer zurück. OrgData: Objekt-Editor: Lässt die aktuelle Lizenz keine konkurrierenden Benutzer zu, ist die „Konkurrierend“-Schaltfläche im Benutzer-Dialog ausgegraut. orgAnice SQL Versionen - Seite 173 von 510 4.0.2.170 (14.06.2005) OrgData: (1641) Todo Prio B: orgAnice Data SQL: Frage "Datensatz speichern?" Beim Verlassen eines Datensatzes erscheint die Frage "Datensatz speichern?", wenn sich die Inhalte der Steuerelemente von den Feldinhalten unterscheiden und zwar unabhägig davon, ob der Benutzer überhaupt irgendetwas in einen Steuerelement geändert hat. Das Layout sollte aber mit einer Art "Dirty"-Flag arbeiten, das erst dann gesetzt wird, wenn tatsächlich in einem Steuerelement etwas geändert wird. Sonst erscheint die Frage auch beim einfachen Skippen durch die Tabelle, was ziemlich nervig ist. Bsp. Double-Feld mit dem Wert 1,2345. Im Tabellenlayout ist das entsprechende Steuerelement mit 2 Nachkommastellen definiert -> es wird nur 1,23 angezeigt und beim Verlassen des Datensatzes erscheint die Frage. Behoben. In einem Formular hat jedes Control und das Formular selbst ein eigenes DirtyFlag, das bei der ersten Benutzeraktion gesetzt wird. Controls, deren Dirty-Flag gelöscht ist, geben bei der Abfrage des Feldinhalts genau den Wert wieder zurück, den sie beim Setzen erhalten haben. Der Datensatz wird als ungeändert angesehen, wenn das Dirty-Flag für das Formular gelöscht ist. Erreichter Effekt (Erläuterung unter Verwendung des oben geschilderten Beispiels): - Neuer Datensatz, keine Änderung, Positionieren auf einen anderen Datensatz keine Rückfrage - Neuer Datensatz, „Null-Änderung“, Positionieren auf einen anderen Datensatz Rückfrage („Null-Änderung“ = Änderung des Inhalts unter Beibehaltung des Werts, z.B. Leerzeichen einfügen und wieder löschen) - Double-Feld wie oben (1,2345, zwei Dezimalstellen), keine Änderung, Positionieren auf einen anderen Datensatz keine Rückfrage - Double-Feld wie oben (1,2345, zwei Dezimalstellen), Änderung in einem anderen Feld, Positionieren auf einen anderen Datensatz Rückfrage, Feldinhalt bleibt 1,2345 - Double-Feld wie oben (1,2345, zwei Dezimalstellen), Null-Änderung im DoubleFeld, Positionieren auf einen anderen Datensatz Rückfrage, Feldinhalt wird auf 1,23 gesetzt orgAnice SQL Versionen - Seite 174 von 510 4.0.2.171 (14.06.2005) OrgDbServer: (1652) Bug Prio A: orgAnice Database Server SQL: .Record schlägt fehl. Die Zuweisung zu der Eigenschaft .Record schlägt in dem folgenden Zusammenhang mit dem Fehler 0x80040841 (KS_E_NOTTRANSACTING) fehl Set odb = Database.NewSession Set tblMaster2 = odb.Tables(ptblMaster.Name) ' Parent-Datensatz duplizieren With tblMaster2 .Record = ptblMaster.Record .Insert End With Das passiert allerdings nur, wenn in dem aktuellen Datensatz interne Dokumente vorhanden sind. Behoben. Das Problem war eine fehlende interne Transaktion in COrgDocumentImp::CreateStorage. orgAnice SQL Versionen - Seite 175 von 510 4.0.2.172 (17.06.2005) OrgDbServer: Database.BeginRead, .EndRead und .Transacting funktionierten nach der Zusammenführung für SQL-DBs anders als bisher. Das führte zu Problemen bei der Ausführung von OrgPrint. Behoben, bisheriges Verhalten wiederhergestellt, Fehlercode ORGDB_E_DEPRECATED entfernt. orgAnice SQL Versionen - Seite 176 von 510 4.0.2.173 (17.06.2005) Keine Änderungen. orgAnice SQL Versionen - Seite 177 von 510 4.0.2.174 (17.06.2005) Keine Änderungen. orgAnice SQL Versionen - Seite 178 von 510 4.0.2.175 (17.06.2005) Keine Änderungen. orgAnice SQL Versionen - Seite 179 von 510 4.0.2.176 (20.06.2005) Alle Module 4: orgAnice Database Server SQL: Erstellen von neuen Datensätze als neue Tabellenberechtigung inkl. einer neuen Eigenschaft .CanInsert. Erledigt. OrgDbServer 4: Zugriff auf Permission-Objekte durch neue PI_*-Enum vereinheitlicht. OrgDbServer 4: Neue Fehlermeldung ORGDB_E_NOINSERTPERMISSION (0x80041045) mit Eintrag in OrgErrorTexts.dll. OrgDbServer 4: Neue Eigenschaften Table.InsertPermission und Table.CanInsert. OrgData 4: OE Tabelle: Unterstützung für neue Insert-Berechtigung. OrgData 4: Fehlt die Einfüge-Berechtigung, ist der Menüpunkt „Neuer Datensatz“ ausgegraut. orgAnice SQL Versionen - Seite 180 von 510 4.0.2.177 (20.06.2005) OrgDbServer 4: orgAnice Database Server SQL: .CanInsert in Verbindung mit SQL-Sichten. Da das Einfügen von neuen Datensätzen in Tabellen, die auf SQL-Sichten basieren, nicht möglich ist, soll .CanInsert in solchen Fällen immer FALSE zurückgeben. orgAnice SQL Versionen - Seite 181 von 510 4.0.2.178 (20.06.2005) OrgDbServer 4: Das Festlegen einer Lizenznummer bei abgelaufener Lizenz schlug für orgAnice SQL-DBs immer mit dem Fehlercode ORGDB_E_LICENSEFEATUREMISSING fehl. Behoben. orgAnice SQL Versionen - Seite 182 von 510 4.0.2.179 (21.06.2005) Alle Module: Zusammenführung mit dem Haupt-Entwicklungszweig von orgAnice 4. Keine Änderungen. orgAnice SQL Versionen - Seite 183 von 510 4.0.2.180 (23.06.2005) OrgData: FormControl.SetValue aktualisierte das Dirty-Flag des Controls nicht. Das führte dazu, dass der gesetzte Wert beim Speichern nicht übernommen wurde. orgAnice SQL Versionen - Seite 184 von 510 4.0.2.181 (23.06.2005) OrgData 4: SQL: Volltextsuche auf Dokument-Feldern führte zu der Fehlermeldung ORGDB_E_WRONGFIELDREDIRECTION. orgAnice SQL Versionen - Seite 185 von 510 4.0.2.182 (23.06.2005) OrgDbServer: KS: Volltextsuche zeigte bei untergeordneten Tabellen keine Progress-Bar an. Behoben. orgAnice SQL Versionen - Seite 186 von 510 4.0.2.183 (24.06.2005) KeyStorage: Zwei neue Fehlercodes KS_E_INVALIDNAMETYPE und KS_E_INVALIDOFFSET anstelle des nichtssagenden E_INVALIDARG. KeyStorage: _FirstName: Setzte m_Key zurück, was falsch war. Das führte zu Problemen beim Navigieren auf verknüpfte Datensätze. OrgDbServer: _ProvideRecNo() setzte m_bRequestingRecNo nicht zurück, wenn beim Abrufen der Datensatznummer ein Fehler auftrat. Das führte dazu, dass manchmal die Relationen nicht korrekt nachgezogen wurden. orgAnice SQL Versionen - Seite 187 von 510 4.0.2.184 (24.06.2005) OrgDbServer: KS: Umwandlung von Dokument- nach String-Feldern funktionierte nicht. Behoben. orgAnice SQL Versionen - Seite 188 von 510 4.0.2.185 (24.06.2005) SCL: GetToken arbeitet mit der CString-Klasse, um Puffer-Überläufe zu vermeiden. OrgData: Text-Control für Control-Eigenschaft „Text“ war einzeilig, aber ES_MULTILINE. Behoben. orgAnice SQL Versionen - Seite 189 von 510 4.0.2.186 (24.06.2005) OrgDbServer: Für orgAnice SQL sind Umlaute in Objekt-Bezeichnern zugelassen! orgAnice SQL Versionen - Seite 190 von 510 4.0.2.187 (24.06.2005) OrgImExport: Stack-Unterlauf bei der Auswertung der ArgumentTypes-Eigenschaft. orgAnice SQL Versionen - Seite 191 von 510 4.0.2.188 (24.06.2005) OrgData: orgAnice Data SQL: OE: Wert einer Eigenschaft Das Eingabecontrol für die Eingabe des Wertes einer Eigenschaft lässt die Eingabe von nur einer Zeile zu. Es sollte mit einem automatischen Zeilenumbruch ausgestattet sein. Behoben. orgAnice SQL Versionen - Seite 192 von 510 4.0.2.189 (27.06.2005) OrgDbServer: Neue Methode Database.Close. Schließt die Datenbank und versetzt das Database-Objekt in den Zustand nach der Erzeugung. orgAnice SQL Versionen - Seite 193 von 510 4.0.2.190 (02.07.2005) Änderungen im Code für orgAnice Pi. orgAnice SQL Versionen - Seite 194 von 510 4.0.2.191 (04.07.2005) Alle Module: Auslagerung der Prüfung, ob ein Name gültig ist, nach Organice.h. OrgDbServer: Prüfung auf Gültigkeit von Feldbezeichnern verfeinert. Ein ungeänderter Feldname bleibt in jedem Fall gültig. OrgData: OE Felder: Angepasst an neue OrgDbServer-Regelung. orgAnice SQL Versionen - Seite 195 von 510 4.0.2.192 (11.07.2005) Alle Module: interne Optimierungen orgAnice SQL Versionen - Seite 196 von 510 4.0.2.193 (11.07.2005) Änderungen im Code für orgAnice Pi. orgAnice SQL Versionen - Seite 197 von 510 4.0.2.194 (11.07.2005) OrgDbServer: Neue Methode IsMember für alle Collection-Objekte. orgAnice SQL Versionen - Seite 198 von 510 4.0.2.195 (11.07.2005) interne Optimierungen orgAnice SQL Versionen - Seite 199 von 510 4.0.2.196 (12.07.2005) COM: Neue Objekte Licenses und License mit neuen Methoden und Eigenschaften Licenses.Create, License.Key, License.Name, License.Type, License.UsersCount, License.ValidUntil, License.HasFeature. Die Licenses-Collection ist in dieser Version eine funktionslose Sammlung gültiger Lizenz-Strings. Die Eigenschaften zur Abfrage, Anlegen, und zum Ändern funktionieren. Neue Eigenschaft Database.Licenses. Gibt die Licenses-Collection der Datenbank zurück. Info: Methode HasFeature arbeitet ohne Rücksicht auf Groß-/Kleinschreibung. orgAnice SQL Versionen - Seite 200 von 510 4.0.2.197 (14.07.2005) interne Optimierungen orgAnice SQL Versionen - Seite 201 von 510 4.0.2.198 (15.07.2005) COM: Die Datenbank-Lizenz entspricht dem ersten Element (=Index 0!) der Auflistung Database.Licenses. Der alte License-Schlüssel wird beim Schreiben der DB-Lizenz mit aktualisiert, so dass eine DB auch mit einer älteren Server-Version immer noch geöffnet werden kann. Problem: OrgData: Kleine Fixes im Objekt-Editor behoben. orgAnice SQL Versionen - Seite 202 von 510 4.0.2.199 (15.07.2005) COM: Neue Eigenschaft User.Licenses mit optionalem Parameter für die Aktivität. Gibt alle für einen Benutzer für eine Aktivität registrierten Benutzer zurück. Noch nicht implementiert. orgAnice SQL Versionen - Seite 203 von 510 4.0.2.200 (18.07.2005) COM: Die Eigenschaft User.Activity kann wie gewohnt verwendet werden. Wird der Parameter für die Lizenz weggelassen, wird die Datenbank-Lizenz verwendet. Dadurch benötigt vorhandener Code keine Änderung. Aufrufe der Eigenschaft User.Activity werden intern in Zugriffe auf die neue ActiveLicenses-Collection umgesetzt. Dort kann man für einen Benutzer festlegen, welche Lizenzen in welchem Activity-Modus arbeiten. Möchte ein Add-On prüfen, ob der aktuelle Benutzer für die Add-On-Lizenz aktiv ist, geht das am Besten mit der Abfrage Database.Users.CurrentUser.Activity(„LIZENZNAME“) = ORGDB_USERACTIVITY_PERMANENT orgAnice SQL Versionen - Seite 204 von 510 4.0.2.201 (18.07.2005) Feature: Die Gleichheit der Seriennummern für alle Lizenzen innerhalb der Datenbank wird erzwungen. Neue Fehlercodes ORGDB_E_WRONGSERIALNUMBER (beim Änderungsversuch der S/N einer Add-On-Lizenz) und ORGDB_E_CANTCHANGESERIALNUMBER (beim Änderungsversuch der S/N der DB-Lizenz). orgAnice SQL Versionen - Seite 205 von 510 4.0.2.202 (20.07.2005) interne Optimierungen orgAnice SQL Versionen - Seite 206 von 510 4.0.2.203 (20.07.2005) Bug: OrgReplication funktionierte nicht mit leeren Tabellen. Behoben. orgAnice SQL Versionen - Seite 207 von 510 4.0.2.204 (20.07.2005) Problem: Beim Löschen einer Lizenz (License.Drop) werden alle Verweise eventueller Benutzer auf diese Lizenz mitgelöscht. Das Löschen ist sofort sichtbar. orgAnice SQL Versionen - Seite 208 von 510 4.0.2.205 (22.07.2005) COM: OrgDbLicenseEnum wurde um die Option ORGDB_LICENSE_ADDON erweitert. Diese Option wird bei License.Type immer dann gesetzt, wenn es sich bei der Lizenz nicht um die Datenbanklizenz handelt. COM: Neue Bequemlichkeits-Eigenschaft Licenses.DbLicense. Gibt das 0-te Element der Auflistung zurück. COM: Neue Eigenschaften License.FeatureCodes und License.SerialNumber. Feature: OrgData: Objekt-Editor Lizenzen fertiggestellt. Einziges Manko: Wird eine DB-Lizenz mit einer abweichenden Seriennummer eingegeben, müssen die Add-On-Lizenzen manuell gelöscht werden. orgAnice SQL Versionen - Seite 209 von 510 4.0.2.206 (25.07.2005) COM: Neue Eigenschaft ActiveLicenses.Activity. Gibt zurück, ob es sich bei der Auflistung um permanente oder konkurrierende Lizenzen handelt. Feature: Objekt-Editor „Aktive Lizenzen“ fertiggestellt. Abhängigkeiten zwischen Objekten werden korrekt auf die Tree-Struktur abgebildet, bei Bedarf werden die entsprechenden Items zugeklappt und nach Aufklappen neu aufgebaut. Beispiel: Beim Löschen einer Lizenz wird sie aus allen ActiveLicenses mitgelöscht. Das wird auch im Objekt-Editor-Tree sofort reflektiert. Text: OrgErrorTexts: Kleinere Änderungen in der Terminologie: „Lizenz-Typ“ wird zu „Lizenz-Name“, da „Lizenz-Typ“ anderweitig verwendet wird. orgAnice SQL Versionen - Seite 210 von 510 4.0.2.207 (25.07.2005) Regel: Prüfung auf Einhaltung der statischen Lizenz-Regeln wurde für die Fälle „Neuer Benutzer“, „Änderung der Activity für einen Benutzer“ und „Änderung der Lizenz“ revidiert und in eine zentrale Methode ausgelagert. Die Lizenz-Regeln werden wie folgt definiert: - Aufbau der Lizenznummer: NAME-XXX*YYY-... oder NAME-XXX-: XXX – Höchstanzahl Benutzer, YYY – Höchstanzahl gleichzeitig angemeldeter konkurrierender Benutzer - Grundsatz: Konkurrierende Lizenzen sind teurer als permanente. Es dürfen (mit Verminderung der gleichzeitig zulässigen konkurrierenden Benutzer) mehr permanente Benutzer vergeben werden, als die Lizenz eigentlich zulässt. - Ein Benutzer darf immer passiv sein. - Es darf nicht mehr als XXX permanente Benutzer geben. - Falls die Lizenz konkurrierende Benutzer zulässt (YYY > 0), muss sich mindestens ein regulärer Benutzer (nicht DEVELOPMENT!) mit allen Lizenzrechten anmelden dürfen können. - Falls die Lizenz keine konkurrierenden Benutzer zulässt (YYY = 0 oder fehlt), darf es keine konkurrierenden Benutzer geben. Regel: Prüfung auf Einhaltung der dynamischen Lizenz-Regeln (Login) wurde in eine zentrale Methode ausgelagert. Die Lizenz-Regeln werden wie folgt definiert: - Ein passiver Benutzer darf sich nie anmelden. - Ein permanenter Benutzer darf sich immer anmelden. - Ein konkurrierender Benutzer darf sich nur dann anmelden, wenn: 1. Anzahl angemeldeter konkurrierender Benutzer <= YYY, sonst ORGDB_E_TOOMANYCONCURRENTUSERS 2. Anzahl permanenter + Anzahl angemeldeter konkurrierender Benutzer <= XXX, sonst ORGDB_E_TOOMANYPERMANENTUSERS (bei Anzahl permanenter = XXX) oder ORGDB_E_TOOMANYCONCURRENTUSERS (bei Anzahl permanenter < XXX). COM: Neue Fehlermeldungen. ORGDB_E_CANTCHANGEADMINRIGHTSFORACTIVEUSER kommt, wenn versucht wird, die Admin-Rechte des aktuellen Benutzers zu verändern. ORGDB_E_TOOMANYPERMANENTUSERS kommt, wenn die Lizenz konkurrierende Benutzer zulässt, die Anmeldung eines konkurrierenden Benutzers aber nicht möglich ist, weil alle konkurrierenden Benutzer-Plätze mit permanenten Lizenzen belegt sind. COM: Neue Methoden License.CanAddUser und License.CanChangeActivity. Geben zurück, ob ein neuer Benutzer mit einer gegebenen Activity erzeugt werden kann bzw. ob die Activity eines bestehenden Benutzers verändert werden darf. Feature: OE Benutzer: Darf ein neuer oder ein bestehender Benutzer nicht auf „Permanent“ oder „Concurrent“ gesetzt werden, ist der entsprechende Radio-Button ausgegraut. OE ActiveLicenses: Darf eine Lizenz nicht zu einer ActiveLicenses-Auflistung hinzugefügt werden, erscheint sie auch nicht in der Auswahl. Fehlertexte: Die die Lizenzierung betreffenden Fehlertexte wurden angepasst, so dass sie die Fehlerursache genauer erläutern. Neuer Text für ORGDB_E_TOOMANYPERMANENTUSERS: "Obwohl Ihre Lizenz konkurrierende Benutzer erlaubt, können Sie sich nicht anmelden. Es existieren zu viele permanente Benutzer zu dieser Lizenz. Bitte wenden Sie sich an Ihren Datenbankadministrator." Neuer Text für ORGDB_E_CANTCHANGEADMINRIGHTSFORACTIVEUSER: "Die Administratorrechte des aktiven Benutzers dürfen nicht verändert werden." orgAnice SQL Versionen - Seite 211 von 510 4.0.2.208 (01.08.2005) Bug: Das Anlegen von Benutzern setzt deren Aktivität auf den beim Anlegen vorgegebenen Wert. (Bisher wurde immer „passiv“ vergeben“.) Feinheit: OE Lizenz: Löschen-Button ist bei der Datenbank-Lizenz ausgegraut. orgAnice SQL Versionen - Seite 212 von 510 4.0.2.209 (01.08.2005) COM: Neue Methode License.Login. Prüft in der gegenwärtigen Fassung, ob der aktuelle Benutzer für diese Lizenz registriert ist und ob die Lizenz-Version mit der Anwendungs-Version übereinstimmt. Jedes Add-On sollte diese Methode einmal aufrufen. orgAnice SQL Versionen - Seite 213 von 510 {3.1.4|4.0.2}.210 (02.08.2005) COM: Neue Methode License.Check. Prüft die Lizenz in dieser Reihenfolge auf allgemeine Gültigkeit: - Lizenz-Version (nur, falls die DB nicht read-only geöffnet wurde) - Ablaufdatum (nur, falls die DB nicht read-only geöffnet wurde) - Übereinstimmung der Seriennummer Liefert einen entsprechenden Fehler, Wird auch von License.Login aufgerufen. Regel: Bei dem Eintragen eines neuen Lizenzschlüssels (neue Lizenz oder Änderung einer bestehenden Lizenz) muss das Ablaufdatum in der Zukunft liegen, die Version muss korrekt sein und die Seriennummer muss mit der der DB-Lizenz übereinstimmen. Regel: Beim Lesen einer bereits vorhandenen Add-On-Lizenz aus der Datenbank wird die Version, das Ablaufdatum und die Seriennummer nicht geprüft. Die Prüfung erfolgt in License.Check bzw. License.Login. Das bedeutet, dass problemlos von 3.1 auf 4.0 aktualisiert werden kann, ohne die Zuordnung der Lizenzen zu den Benutzern zu zerstören. Ebenso ist es jetzt möglich, die Seriennummer der DB-Lizenz zu ändern: Die Add-On-Lizenzen werden einfach ungültig, können aber aktualisiert werden. COM: Fehlercode ORGDB_E_CANTCHANGESERIALNUMBER entfällt ersatzlos. Feature: OE Lizenz: Falls die Prüfung der Lizenz per License.Check einen Fehler erzeugt, wird der Fehlertext im Objekt-Editor in Fett-Schrift angezeigt. orgAnice SQL Versionen - Seite 214 von 510 4.0.2.211 (03.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 215 von 510 4.0.2.212 (04.08.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 216 von 510 4.0.2.213 (05.08.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 217 von 510 4.0.2.214 (05.08.2005) Nicht veröffentlicht. orgAnice SQL Versionen - Seite 218 von 510 4.0.2.214 (05.08.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 219 von 510 4.0.2.215 (05.08.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 220 von 510 4.0.2.216 (06.08.2005) Feature 3.1: Beim Öffnen einer 4.0-DB wird automatisch OrgDbConvert aufgerufen, um daraus eine 3.1-DB zu erzeugen. Bei Bedarf könnte dies in OrgData vorher abgefragt werden. orgAnice SQL Versionen - Seite 221 von 510 4.0.2.217 (07.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 222 von 510 4.0.2.218 (07.08.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 223 von 510 4.0.2.219 (08.08.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 224 von 510 4.0.2.220 (09.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 225 von 510 4.0.2.221 (09.08.2005) Feature: OrgSqlExport: In Abhängigkeit vom Vorhandensein der Add-On-Lizenz mit dem Namen „FT“ wird das Feld „DocExtension“ mit dem zugehörigen Trigger in der Dokument-Tabelle angelegt oder auch wieder entfernt. Im Feld wird redundant die für die Volltext-Kataloge benötigte textuelle Extension gespeichert. Wird eine Add-On-Lizenz mit dem Namen „FT“ hinzugefügt oder entfernt, wird eine Übernahme der Strukturänderungen nach SQL notwendig. orgAnice SQL Versionen - Seite 226 von 510 4.0.2.222 (10.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 227 von 510 4.0.2.223 (10.08.2005) OrgDbServer: Neue CoreFunction Contains(sTable As String, sFieldList As String, sFind As String). Wird bei einer Übersetzung in ein entsprechendes CONTAINS-Prädikat umgewandelt, das eine Volltextkatalog-Suche einleitet. Contains(„Aktivitaeten“, „Memo“, „suchtext“) wird dabei zum SQL-Prädikat CONTAINS(„Aktivitaeten“.„Memo“, ‚suchtext‟) umgeformt. Die Übersetzung schlägt fehl, wenn einer der drei Parameter etwas anderes als eine String-Konstante ist. Der OrgBasic-Parser kennt keine Konstantenfaltung, daher ist ein Aufruf wie Contains(„Aktivitaeten“, „Memo“, „such“ & „text“) bisher nicht möglich. Funktioniert in dieser Version nur, wenn sFieldList ein einzelner Feldbezeichner für ein Textfeld (auch Memo-, nicht Dokument-Feld!) ist. Ist auf dem betreffenden Feld kein Volltextindex definiert, kommt ein Laufzeitfehler vom SQL-Server. Ist nur sinnvoll in Verbindung mit einer direkt im SQL-Server ausgeführten Operation: Die direkte Auswertung liefert immer False. Hinweis: Das CONTAINS-Prädikat erwartet oft Gänsefüßchen im Suchtext. OrgBasic unterstützt schon seit längerem die Verwendung doppelter Gänsefüßchen ("") innerhalb einer String-Konstante wie in VB: Daraus wird ein einzelnes Gänsefüßchen im String. Also: Der OrgBasic-Ausdruck """" = Chr(34) ergibt True. orgAnice SQL Versionen - Seite 228 von 510 4.0.2.224 (16.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 229 von 510 4.0.2.225 (16.08.2005) Keine Änderungen, nicht veröffentlicht. orgAnice SQL Versionen - Seite 230 von 510 4.0.2.226 (16.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 231 von 510 4.0.2.227 (16.08.2005) Laufzeit: KS: Das Löschen von Datensätzen per Table.DeleteRecords benötigte überproportional viel Zeit, wenn viele Datensätze zu löschen waren. Behoben. orgAnice SQL Versionen - Seite 232 von 510 4.0.2.228 (17.08.2005) Problem: KS-Tabellen: Feldwerte für String-Felder fester Länge werden bei Bedarf verkürzt. Im Normalfall werden zwar nur genausoviele Zeichen gespeichert wie die Feldlänge angibt, das kann sich aber z.B. durch Datenbank-Defekte ändern. Der OrgSqlExport funktioniert jetzt auch mit solchen defekten Datenbanken. orgAnice SQL Versionen - Seite 233 von 510 4.0.2.229 (17.08.2005) Nicht veröffentlicht. orgAnice SQL Versionen - Seite 234 von 510 4.0.2.230 (17.08.2005) Feature: Neue CoreFunction DocLinkName. Funktioniert analog zu DocText. Gibt den DateiNamen des verknüpften Dokuments im Dokument-Feld zurück. orgAnice SQL Versionen - Seite 235 von 510 4.0.2.231 (17.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 236 von 510 4.0.2.232 (17.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 237 von 510 4.0.2.233 (17.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 238 von 510 4.0.2.234 (18.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 239 von 510 4.0.2.235 (20.08.2005) Dateiname: Die Datei heißt ab sofort OrgDbConvert2.dll, um Namenskonflikte mit OrgDbConvert.dll aus orgAnice Pi (Umstellung von 3.0 auf 3.1) zu vermeiden. OrgErrorTexts wurde angepaßt. Die Copy-Scripts kopieren die neue Datei ins Unterverzeichnis „Converter\“. Die Datei existiert ab sofort auch in der Version 3.1.4.*. Diese Version ist aber bis auf weiteres identisch mit 4.0.2.* (abgesehen von der Versionsnummer). orgAnice SQL Versionen - Seite 240 von 510 4.0.2.236 (20.08.2005) Log: OrgDbConvert produziert Protokoll-Ausgaben beim Anlegen von Verknüpfungen in <Prozess-Dateiname>.log – beim automatischen Konvertieren also in OrgData.log. orgAnice SQL Versionen - Seite 241 von 510 4.0.2.237 (20.08.2005) Log: OrgDbConvert: Protokoll-Ausgaben beim Anlegen von Verknüpfungen erweitert. orgAnice SQL Versionen - Seite 242 von 510 4.0.2.238 (20.08.2005) Log: OrgDbConvert: Protokoll-Ausgaben wieder entfernt. orgAnice SQL Versionen - Seite 243 von 510 4.0.2.239 (21.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 244 von 510 4.0.2.240 (22.08.2005) Bug 3.1: Stürzte bei manchen Dokument-Links ab. Behoben. orgAnice SQL Versionen - Seite 245 von 510 4.0.2.241 (13.09.2005) Bug: orgAnice Data SQL: Arbeitsbereich mit Tabellenlayout ohne Tabelle 1. Arbeitsbereich mit einer Spalte mit einer Rahmen 2. Dem Rahmen ist ein TblLt zugeordnet 3. Dem TblLt ist keine Tbl zugeordnet, TblLt besitzt keine Steuerelemente Wenn ein solcher Arbeitsbereich im Konfigurationsmodus aktiviert wird, dann verursacht das Umschalten in den Benutzermodus einen Abstutz von orgData. Behoben. orgAnice SQL Versionen - Seite 246 von 510 4.0.2.242 (14.09.2005) COM: OrgSqlExport: Neue Methode Application.ExportFromODBEx. Benötigt für SQLReplikation. orgAnice SQL Versionen - Seite 247 von 510 4.0.2.243 (26.09.2005) Lizenzierung: Beim Zuweisen eines Werts an die Eigenschaft Database.ReplicaId wird geprüft, ob eine AddOn-Lizenz „REPLICATION“ existiert und gültig ist. Es wird kein „Login“ auf diese Lizenz ausgeführt. Gibt es die Lizenz nicht, kommt der neue Fehlercode ORGDB_E_ADDONLICENSEMISSING. Änderung: OE: Eingabefeld für ReplicaID ist immer ausgegraut. COM: OrgSqlExport: Die Methoden ExportFromODB und ExportFromODBEx reichen einen eventuell durch die Export-Routine verursachten Fehler an den Aufrufer weiter. orgAnice SQL Versionen - Seite 248 von 510 4.0.2.244 (29.09.2005) OE: Eingabefeld für ReplicaID entfernt. orgAnice SQL Versionen - Seite 249 von 510 4.0.2.245 (30.09.2005) Bug: Makro-gesteuerte Reports als CSV oder HTML funktionierten nicht. Behoben. orgAnice SQL Versionen - Seite 250 von 510 4.0.2.246 (12.10.2005) Bug: Fehler im Objekt-Editor konnte OrgData zum Absturz bringen und möglicherweise auch z.B. Tabellenlayouts verschwinden lassen. Behoben. orgAnice SQL Versionen - Seite 251 von 510 4.0.2.247 (12.10.2005) Keine Änderung. orgAnice SQL Versionen - Seite 252 von 510 4.0.2.248 (12.10.2005) Problem: OrgImExport: Ausdrucks-Editor unterscheidet jetzt zwischen drei Fehlerursachen: Syntax-Fehler, ungültige Tabelle, ungültiges Feld. (Bisher wurde immer nur „SyntaxFehler“ angezeigt. „Ungültige Tabelle“ wurde bisher gar nicht abgeprüft!) Problem: OrgImExport: Auch bei Zugriff auf eine orgAnice-Datenquelle zeigt der AusdrucksEditor nur eine Tabelle an. Der Zugriff auf verknüpfte Tabellen ist ohnehin (noch) nicht möglich. orgAnice SQL Versionen - Seite 253 von 510 4.0.2.249 (14.10.2005) Keine Änderungen orgAnice SQL Versionen - Seite 254 von 510 4.0.2.250 (18.10.2005) Refakturierung im großen Stil. orgAnice SQL Versionen - Seite 255 von 510 4.0.2.251 (18.10.2005) Feature: OrgDbServer: Wenn ein Dokument erzeugt oder gespeichert wird, wird (bei SQL-DBs) die Erweiterung in das DocExtension-Feld in den entsprechenden Datensatz eingetragen. Das funktioniert für alle Dokument-Typen, für die die Eigenschaft Document.DefaultExtension funktioniert, also auch für PDF und TXT. Bei bereits bestehenden Datenbanken wird die Übernahme der Strukturänderungen angeboten, nach der Übernahme ist bei allen eingebetteten Dokumenten das DocExtension-Feld gefüllt. Bitte bei bereits bestehenden Datenbanken das Feld DocExtension manuell auf 256 Zeichen Breite setzen (Typ nvarchar(256))! Sonst wird bei einem Dokument mit einer Erweiterung länger als drei Zeichen das Anlegen des Dokuments fehlschlagen. COM: Neue Methode UpdateDocExtension. Aktualisiert das Feld __Org_Documents.DocExtension in der zugrunde liegenden SQL-DB mit der tatsächlichen Erweiterung der Dokumente, allerdings nur bei Dokumenten, bei denen die Extension NULL ist. Funktioniert nur, wenn eine Lizenz mit dem Typ „FT“ in der Datenbank vertreten ist und der aktive Benutzer dafür freigeschaltet ist. Feature: OrgData: Kommandozeilenparameter /RIGHTS akzeptiert jetzt auch none, all, db oder user als Argument Beispiel: OrgData.exe C:\Test.odb /USER:ADMIN /RIGHTS:ALL Problem: OrgImExport: Kleinen Schönheitsfehler beim Ausdruckseditor behoben. Refakturierung. orgAnice SQL Versionen - Seite 256 von 510 4.0.2.252 (30.10.2005) Fehlerhaft, bitte nicht verwenden. orgAnice SQL Versionen - Seite 257 von 510 4.0.2.253 (30.10.2005) Feature 4.1: Um den Volltext eines Dokuments zu extrahieren, wird die IFilter-Schnittstelle benutzt. Falls keine solche Schnittstelle für einen Dokumenttyp registriert ist, wird der Standard-Filter verwendet. Bei Word- und Excel-Dokumenten kann der Text direkt aus der Datenbank extrahiert werden. PDF-Dokumente werden bei Verwendung des Adobe PDF IFilter-s in eine temporäre Datei im Temp-Verzeichnis zwischengespeichert. In jedem Fall kümmert sich der OrgDbServer um alles, die Client-Anwendung braucht nach wie vor nichts weiter zu tun, als Document.Text aufzurufen. Es ist allerdings eine Verbesserung der Performance zu erwarten, da in keinem Fall OLE gestartet werden muss. Das Feature wird aktiv, wenn der Featurecode „ORG41“ in der DB-Lizenz existiert oder wenn eine gültige AddOn-Lizenz „FT“ vorhanden ist. Es werden keinerlei Events bei der Extraktion des Volltexts gefeuert. Das kann bei Bedarf nachgeholt werden. orgAnice SQL Versionen - Seite 258 von 510 4.0.2.254 (31.10.2005) Problem: OrgDbServer: Document.SaveAs speichert PDF-Dokumente auch dann korrekt, wenn sie als eingebettete OLE-Objekte und nicht als Package in der Datenbank vorliegen. Für PDFs muss der Schlüssel PackageOnFileDrop nicht mehr manuell eintragen werden. Bitte auch für das Setup berücksichtigen. Diese Änderung bezieht sich wirklich nur auf PDF-Dokumente. Für andere Dateitypen mit demselben Problem müsste die Routine gesondert angepasst werden. orgAnice SQL Versionen - Seite 259 von 510 4.0.2.255 (31.10.2005) Feature: Markieren funktioniert, sobald Leseberechtigung auf die Tabelle und auf die Datenbank und physikalische Schreibberechtigung auf die Datenbankdatei gegeben ist. Somit ist das Markieren erlaubt, wenn ein Benutzer keinen DatenbankSchreibzugriff hat. COM: OrgDbServer: Neue Eigenschaft Table.CanMark. Wird von OrgData abgeprüft. orgAnice SQL Versionen - Seite 260 von 510 4.0.2.256 (01.11.2005) Feature: OrgDbServer: Der Volltext von eingebetteten Dokumenten wird redundant im Feld DocText der __OrgDocuments-Tabelle gespeichert. Das Füllen dieses Felds geschieht vorerst nur manuell mit der neuen Methode Documents.UpdateDocTexts. OrgSqlExport legt dieses Feld automatisch an und füllt es (durch Aufruf von UpdateDocTexts) mit Inhalt. Funktioniert nur, wenn die AddOn-Lizenz „FT“ vorhanden ist. Bei bereits bestehenden Datenbanken wird die Übernahme der Strukturänderungen angeboten. COM: Neue Methode Documents.UpdateDocTexts. Aktualisiert das Feld __Org_Documents.DocText in der zugrunde liegenden SQL-DB mit dem Volltext der eingebetteten Dokumente, allerdings nur bei Dokumenten, bei denen der Feldinhalt NULL ist. Funktioniert nur, wenn eine Lizenz mit dem Typ „FT“ in der Datenbank vertreten ist und der aktive Benutzer dafür freigeschaltet ist. orgAnice SQL Versionen - Seite 261 von 510 4.0.2.257 (02.11.2005) Problem: Das Speichern eines eingebetteten PDF-Dokuments funktioniert auch dann, wenn das Dokument offen ist. Dadurch funktioniert auch das Auslesen des Volltexts, wenn das Dokument offen ist. Glitch: Session-OID wurde irrtümlicherweise beim Anlegen von Links vergeben. Das äußerte sich bei SQL-Tabellen in einem nicht leeren Eintrag im Feld SessionOID in der __Org_Documents-Tabelle, hatte aber keine weiteren Auswirkungen. Behoben. GPF: Acrobat Reader 7 stürzt bei eingebetteten PDF-Dokumenten nicht mehr ab. Optimierung: Zugriffssperren-Optimierung bei Dokumenten. GUI: Schlägt das Speichern eines Dokuments im Dateisystem fehl (Kontextmenü des Dokument-Controls -> Speichern unter...), kommt eine Fehler-MessageBox. GUI: „Dokument von Vorlage erstellen und verknüpfen“ aktivierte manchmal ein anderes Fenster, nachdem die Vorlage ausgewählt wurde. Behoben. orgAnice SQL Versionen - Seite 262 von 510 4.0.2.258 (04.11.2005) Performance: Prüfung für AddOn-Lizenzen, die vom OrgDbServer benötigt werden, beschleunigt. Performance: SQL-Tabellen: Document.Text wertet bei eingebetteten Dokumenten das redundante Feld aus, das den Volltext speichert, aus und gibt dessen Inhalt zurück, falls es nicht NULL ist. Das funktioniert gegenwärtig nur, wenn die AddOn-Lizenz „FT“ in der Datenbank vorhanden ist und gültig ist. orgAnice SQL Versionen - Seite 263 von 510 4.0.2.259 (09.11.2005) SQL-Struktur: SQL-Tabellen, „FT“-Lizenz: Neues Feld „DocTextModificationTime“. Zur Ermittlung der Gültigkeit des redundant gespeicherten Volltexts wird der Inhalt dieses Felds mit „DocModificationTime“ verglichen. Das betrifft die Methode UpdateDocText, die u.a. vom OrgSqlExport aufgerufen wird. OrgSqlExport kümmert sich um das Anlegen des Felds, diese Version bietet eine Neu-Übernahme der Strukturänderungen an, wenn die DB vorher mit einer älteren Version geöffnet wurde. Einschränkung: SQL-Tabellen, „FT“-Lizenz: Der von der Eigenschaft Document.Text zurückgegebene Volltext wird nur dann manuell berechnet, wenn der Inhalt des Felds „DocText“ NULL ist. Das heißt, wenn der redundant gespeicherte Volltext vorhanden, aber nicht mehr aktuell ist, wird trotzdem die Version aus dem Cache zurückgegeben. Eventuell wäre ein Schalter für die Eigenschaft Document.Text denkbar, der angibt, ob die Version aus dem Cache verwendet oder immer der aktuelle Volltext berechnet werden soll. Feature: SQL-Tabellen, „FT“-Lizenz: Beim Speichern eines Dokuments wird der redundant gespeicherte Volltext immer aktualisiert. Nachteil: Bei Packager-Objekten geschieht bei jedem Schließen ein Speichern, auch wenn sich das verpackte Objekt nicht verändert hat. Eventuelle Fehler bei der Extraktion oder beim Schreiben des Volltexts werden stillschweigend ignoriert. Daher ist es sinnvoll, wenn im Hintergrund ein Dienst hin und wieder Documents.UpdateDocText aufruft. Es war im lokalen Einsatz kein Performance-Nachteil zu spüren. Nachteil: Benutzer, die regelmäßig speichern, erzeugen dadurch hohen Traffic zum SQL-Server. Dem kann Abhilfe geschaffen werden, indem der redundante Volltext erst beim Schließen zurückgeschrieben wird. Das geht aber momentan nicht, da das Schließen von Packager-Objekten (noch) nicht zuverlässig ermittelt werden kann. OrgDbServer: Bei Datenbanken, die zuletzt mit Version 4.0.2.258 oder älter geöffnet wurden, wird die SQL-Konsistenz auf „dirty“ gesetzt, so dass eine Ausführung von OrgSqlExport möglich ist. orgAnice SQL Versionen - Seite 264 von 510 4.0.2.260 (10.11.2005) COM: Für Packager-Dokumente kommt ein DocumentOpen-Event zusammen mit dem DocumentVerb-Event. Ein DocumentClosedEvent kommt beim Schließen des Packager-Objekts –selbst wenn die Packager.exe oder die Dokument-Anwendung im Task-Manager abgeschossen wird. Probleme: Kleinere Probleme bei der Volltext-Extraktion behoben. Feature: Sind Packager-Dokument geöffnet, wird der Benutzer beim Schließen per MessageBox aufgefordert, diese manuell zu schließen. Leider besteht hier keine Möglichkeit, diese automatisch zu speichern und zu schließen. orgAnice SQL Versionen - Seite 265 von 510 4.0.2.261 (10.11.2005) Performance: SQL-Tabellen, „FT“-Lizenz: Die Ermittlung des redundanten Volltexts erfolgt erst beim Schließen des Dokuments, nicht wie bisher bei jedem Speichern. orgAnice SQL Versionen - Seite 266 von 510 4.0.2.262 (10.11.2005) Performance: SQL-Tabellen, „FT“-Lizenz: Die Ermittlung des redundanten Volltexts erfolgt erst beim Schließen des Dokuments und nur, wenn das Dokument während der Anzeige gespeichert wurde. Leider werden Packager-Dokumente immer gespeichert, unabhängig davon, ob sie verändert wurden, so dass hier auch immer eine NeuErmittlung des Volltexts erfolgt. orgAnice SQL Versionen - Seite 267 von 510 4.0.2.263 (16.11.2005) Optimierung: Konvertierung nach SQL verbessert. Problem: Protokoll-Texte verändert und erweitert. Problem: KS-Tabellen: Wenn in einem Feld mit Typ Datum intern offensichtlicher Müll gespeichert ist, wird ein Standard-Datumswert zurückgegeben (1.1.100 oder 31.12.9999). orgAnice SQL Versionen - Seite 268 von 510 4.0.2.264 (17.11.2005) GPF: Absturz beim Einfügen von Leerzeilen (ohne Tabulator/Leerzeichen) im OrgDataCustomFunctionEditor behoben. Problem: OrgSqlExport -> OrgSqlImport -> OrgSqlExport funktioniert. (Probleme bei Dokumenten behoben.) Bug: War die REPLICATION-AddOn-Lizenz abgelaufen oder aus anderen Gründen nicht mehr zugänglich, war ein anschließendes Anmelden an der Datenbank nicht mehr möglich. Behoben. Problem: KeyStorage: Der Schlüssel Database\License wurde nicht aktualisiert, wenn Database\Licenses(0) aktualisiert wurde. Behoben. GPF: [3.1.4.138 -> .139] Duplizieren eines Datensatzes mit Dokument und anschließendes Öffnen des Dokuments (ohne den duplizierten Datensatz zu speichern) führte zu einer Schutzverletzung bei OrgData. Behoben. orgAnice SQL Versionen - Seite 269 von 510 4.0.2.265 (18.11.2005) Problem: SQL-Tabellen, FT-Lizenz: Das Speichern des Volltexts in der __Org_DocumentsTabelle wurde für eingebettete PDF-Dokumente nicht durchgeführt. Behoben. Problem: SQL-Tabellen, FT-Lizenz: Die Methode Documents.UpdateDocTexts ist durch Änderungen in Version .262 funktionslos geworden. Behoben. orgAnice SQL Versionen - Seite 270 von 510 4.0.2.266 (09.12.2005) Problem: OrgDbServer: (1680) Bug Prio A: orgAnice Database Server SQL: Duplizieren von Datensätzen mit .Insert Das Duplizieren von Datensätzen mit dem bloßen Aufruf der Methode .Insert ist in einer SQL-DB nicht mehr möglich. Es wird zwar ein neuer Datensatz angelegt, aber so, als ob vorher .Record = .DefaultRecord aufgerufen worden wäre (d.h. die Feldvorbelegungen sind ausgewertet, Felder ohne Vorbelegung sind leer). Einen Workaround stellt der Aufruf von .Record = .Record dar, nichtsdestotrotz müssen wir das aus Pi bekannte Verhalten (einfaches .Insert dupliziert den Datensatz) wiederherstellen. Behoben. orgAnice SQL Versionen - Seite 271 von 510 4.0.2.267 (16.12.2005) ShowStop: Manchmal verschwanden neu erzeugte Word-Dokumente, wenn das Word-Makro den Datensatz speicherte. Behoben. Dieses Problem wurde Im 4.0.2.266er eingeführt. orgAnice SQL Versionen - Seite 272 von 510 4.0.2.268 (16.12.2005) Problem: VBA friert auch nach mehrfacher Betätigung des Buttons „Visual Basic-Editor“ im Objekt-Editor nicht mehr ein. Beim Anzeigen des VBA-Editors wird das VBA-Projekt immer gesperrt, auch wenn der Aufruf aus dem Objekt-Editor erfolgt. (Bisher war das nicht der Fall, ein möglicher Grund für VBA-Konsistenz-Probleme.) Außerdem wird der VBA-Editor nach Aufruf immer in den Vordergrund gebracht. Texte: (1681) Bug Prio B: orgAnice Data Pi: OE: Aufzählung "Berechtigte Benutzer": Es fehlt zwei Mal ein "s": IST: "Nicht augewählt" "Augewählt" SOLL: "Nicht ausgewählt" "Ausgewählt" Behoben. Problem: Objekt-Editor: Das Sortieren von UserMarkExpressions oder SumExpressions mit doppelt vergebenen Namen führte zur Fehlermeldung 0x80070057. Behoben. Problem: Längenbeschränkung (32767 Zeichen) für CustomFunction-Editor aufgehoben. GPF: Absturz bei der Aktivierung des OE über Rechtsklick auf Listenspalten behoben. Rechte Maustaste auf Listenspalten-Header, Abbruch im OE, Rechte Maustaste auf Listenspalte, Abbruch im OE, Rechte Maustaste auf Listenspalten-Header, Abbruch im OE -> Absturz orgAnice SQL Versionen - Seite 273 von 510 4.0.2.269 (18.12.2005) COM: Neuer Fehlercode ORGDB_E_WRONGTABLETYPE. COM: OrgDbServer: Neue Eigenschaft Table.SqlUserMarksCookie. Gibt den Cookie-Wert an, der in der SQL-Tabelle __Org_UserMarks2 für die markierten Datensätze des aktuellen Benutzers und der entsprechenden Tabelle zuständig ist. Für KeyStorage-DBs erzeugt diese Eigenschaft den neuen Fehlercode ORGDB_E_WRONGTABLETYPE. Diese Eigenschaft ist dafür geeignet, SQL-seitig auf die in orgAnice für den aktuellen Benutzer markierten Datensätze zuzugreifen. Das soll am Beispiel „Abfrage aller markierten Adressen“ illustriert werden. - Abfrage der Eigenschaft für die Tabelle „Adressen“ (VB): Dim lCookie As Long lCookie = Database.Tables("Adressen").SqlUserMarksCookie - Formulierung der SQL-Abfrage (VB): Dim sQuery As String sQuery = "SELECT * FROM Adressen RIGHT OUTER JOIN __Org_UserMarks2 ON Adressen.__Org_RecordNo = __Org_UserMarks2.RecordNo WHERE __Org_UserMarks2.Cookie = " & lCookie - Alternative Abfrage ohne JOIN (VB): Dim sQuery As String sQuery = "SELECT Adressen.* FROM Adressen, __Org_UserMarks2 WHERE Adressen.__Org_RecordNo = __Org_UserMarks2.RecordNo AND __Org_UserMarks2.Cookie = " & lCookie - Ausführen der Abfrage mit ADO: Dim pRecordset As ADODB.Recordset Set pRecordset = Database.Connection.Execute(sQuery) „ Abfrage des Recordset Auf ähnliche Art und Weise können bestehende Markierungen für den aktuellen Benutzer durch Änderungen an der __Org_UserMarks2-Tabelle modifiziert werden. orgAnice SQL Versionen - Seite 274 von 510 4.0.2.270 (21.12.2005) Problem: OrgData, OE: Anlegen von Indizes, SumExpressions und UserMarkExpressions funktionierte seit 4.0.2.268 nicht mehr. Behoben. orgAnice SQL Versionen - Seite 275 von 510 4.0.2.271 (25.12.2005) Keine Änderungen orgAnice SQL Versionen - Seite 276 von 510 4.0.2.272 (25.12.2005) Bug: Bei Verwendung der CoreFunction Eval im Ausdruck bei einer Listenspalte konnte es passieren, dass die Vorschau statt der gewohnten „XXXXXXX“ tatsächliche Feldinhalte enthielt. Behoben. COM: Neuer Fehlercode ORGDB_E_EVALARGUMENTINVALID. ("Der Zugriff auf Feldvariablen beim Argument der Kernfunktion Eval ist untersagt, wenn Eval innerhalb einer Bulk-Methode verwendet wird.") Wird gegenwärtig nicht nach außen weitergereicht. Problem: Die Eval-Funktion kann bedingt auch unter SQL in Listenspalten-Ausdrücken (direkt oder indirekt) verwendet werden. Voraussetzung ist, dass die Auswertung des Arguments (=Ausdrucks) möglich ist, ohne auf Feldinhalte zuzugreifen. Also: Eval(„Name()“) und Eval(„Iif(Len(Adressen->Vorname) = 0, Name(), Telefon()“) sind erlaubt, Eval(Iif(Len(Adressen->Vorname) = 0, „Name()“, „Telefon()“) ist nicht erlaubt. Im letzteren Fall gibt Eval einfach einen Leerstring zurück. Das Verhalten von OrgData an dieser Stelle ist gewöhnungsbedürftig: Eine Zelle einer solchen Spalte wird erst dann korrekt gefüllt, wenn der Datensatzzeiger über dieser Zelle positioniert wird. Die Eval-Funktion wurde in Listenspalten mancher Kundendatenbanken indirekt verwendet. (Tabelle Rechnungen oder Rechnungspositionen.) Bisher wurden dafür überlange SQL-Abfragen erzeugt, so dass ein Arbeiten nicht möglich war. OrgData: Tritt beim Auswerten einer Listenspalte ein Fehler auf, wird die Fehlerbeschreibung zusammen mit dem Fehlercode in dieser Listenspalte angezeigt. orgAnice SQL Versionen - Seite 277 von 510 4.0.2.273 (30.12.2005) Keine Änderungen orgAnice SQL Versionen - Seite 278 von 510 4.0.2.274 (03.01.2006) Jahreswechsel: Jahreszahlen angepasst. Letzte Fundstellen von "bit by bit" und "dexcon" zu "orgAnice Software GmbH" umgewandelt. orgAnice SQL Versionen - Seite 279 von 510 4.0.2.275 (03.01.2006) Problem: Das Extrahieren des Volltexts bei „Standardbenutzern“ ohne Administratorrechte funktioniert jetzt. orgAnice SQL Versionen - Seite 280 von 510 4.0.2.276 (06.01.2006) Bug: Nach Benutzung der ELO-Schnittstelle führte das Schließen des OrgDataHauptfensters zu einer Schutzverletzung. Behoben. orgAnice SQL Versionen - Seite 281 von 510 4.0.2.277 (06.01.2006) Bug: OrgDbConvert konnte keine Dateien größer als 4 GB konvertieren. Behoben. orgAnice SQL Versionen - Seite 282 von 510 4.0.2.278 (18.01.2006) Nicht verwenden orgAnice SQL Versionen - Seite 283 von 510 4.0.2.279 (18.01.2006) Intern: Verzicht auf Erstellen der entsprechenden 3.1-Versionen. Ab sofort gibt es diese Stände nur in der Ausprägung 4.0.2.XXX. Die 3.1-Versionen werden „automatisch“ mitgepflegt und können bei Bedarf wieder erstellt werden. Problem: SQL-Tabellen: Indizes über Bool-Felder werden korrekt unterstützt. OE: OE Index, SQL-Tabellen: Buttons "Indexstruktur löschen" und "Indexstruktur aufbauen" werden ausgegraut. Feature: OrgSqlExport: Fehler bei der Ausführung einer Abfrage produzieren eine MessageBox, die die Fehlerursache anzeigt und eine Wiederholung oder ein Ignorieren anbietet. Das Ignorieren eines Fehlers bei einer Abfrage gibt den Fehlermeldungs-Text aus. Performance: Eine Beschleunigung des Erst-Exports von Tabellen mit vielen internen Dokumenten ist zu erwarten. Convenience: Auch bei eindeutigen Indizes wird zuerst ein Index erzeugt, der nicht eindeutig ist. Anschließend wird geprüft, ob der Index nur eindeutige Werte enthält. Wenn ja, wird der Index auf "eindeutig" gesetzt, wenn nein, wird eine Warnung protokolliert. Dadurch führt eine fehlerhafte Erkennung von Duplikaten bei eindeutigen Indizes nicht mehr zum Abbruch eines – möglicherweise langwierigen – SQL-Exports. orgAnice SQL Versionen - Seite 284 von 510 4.0.2.280 (19.01.2006) Problem: (3.1.4.147 -> .148) Positionieren auf VBA-Module und -Makros funktioniert jetzt einwandfrei. Unschönheit: Direktsuche im Modus "Neuer Datensatz" gibt jetzt einen Hinweiston. Vorher wurde brav gesucht, was ein unschönes Verhalten an der Oberfläche zur Folge hatte. Feature: Timeout der Direktsuche ist konfigurierbar. Dazu muss entweder eine Datenbank-, eine öffentliche oder eine private Benutzereigenschaft "DirectSearchTimeout" vergeben werden, die den neuen Timeout-Wert in Millisekunden angibt. Die private Benutzereigenschaft hat Vorrang vor der öffentlichen, die wiederum Vorrang vor der DB-Eigenschaft hat. Lässt sich der Wert der Eigenschaft nicht in eine ganze Zahl umwandeln oder ist das Ergebnis eine negative Zahl, wird der Wert ignoriert. Standardwert ist 1000 (eine Sekunde). orgAnice SQL Versionen - Seite 285 von 510 4.0.2.281 (26.01.2006) Bug: SQL: OrgBasic-Ausdrücke der Form "Not (? And ?)" (und viele andere) wurden semantisch fehlerhaft nach SQL übersetzt, da der zu negierende Ausdruck nicht geklammert wurde. Beispiel: OrgBasic-Ausdruck: Not (A And B) SQL-Übersetzung (fehlerhaft): NOT A AND B (NOT A) AND B SQL-Übersetzung (korrekt): NOT (A AND B) Tweak: OrgData: Unterstützung für Tabellen-Eigenschaft "OrgDataNoAutoRecCount". Diese Tabellen-Eigenschaft wird für jede angezeigte Tabelle abgefragt und als Bool-Wert interpretiert. Ist sie True, so wird die Datensatzanzahl nur auf explizite Anforderung hin (Taste F5 bzw. Menüpunkt Ansicht/Aktualisieren) bestimmt. Die Anzeige in der Statuszeile ist unverändert, unbekannte Datensatzanzahlen werden als "?" dargestellt. orgAnice SQL Versionen - Seite 286 von 510 4.0.2.282 (22.02.2006) SQL: Die SQL-Hilfsfunktion __Org_Val verhielt sich anders als die OrgBasic-Funktion Val. Beispielsweise ergibt Val("1abc") bei der Auswertung 1, das war bei __Org_Val anders. Die Implementation von __Org_Val wurde korrigiert, um das Verhalten so gut wie möglich an das von Val anzupassen. Um die neue Funktion __Org_Val einzuspielen, muss die Datenbankstruktur nach SQL übernommen werden (per OrgSqlExport). Da die meisten Kunden von dieser Diskrepanz bisher nicht betroffen zu sein schienen, wurde darauf verzichtet, eine „Übernahme der Strukturänderungen“ verpflichtend zu machen. -> 3.1.4.150 Grafik: Wechseln zwischen Arbeitsbereichen geschieht unter Windows XP flackerfrei und unter Windows 2000 und früher mit weniger Flackern. Grafik: Grafikfehler (schwarzer Rand) beim Rechts-Scroll eines ListViews in Verbindung mit ImageList-Spalten behoben. Grafik: Grafikfehler (schwarzer Rand) beim Rechts-Scroll eines ListViews in Verbindung mit ImageList-Spalten behoben. GPF: Absturz beim Löschen von Formular-Controls behoben. COM: OrgExport, OrgImport: Methode Application.Execute funktioniert, wenn vorher OpenDatabase aufgerufen wurde und Visible auf False gesetzt bleibt. -> 3.1.4.151 Lizenzpolitik: Das schreibgeschützte Öffnen von Datenbanken mit abgelaufener oder ungültiger Lizenz ist wieder möglich. (Regression .128 -> .129) Pufferüberlauf: Puffer für Löschberechtigungs-Ausdruck war zu klein. Dadurch konnten Löschberechtigungs-Ausdrücke, die z.B. einen Umlaut enthielten, nicht vergeben werden. orgAnice SQL Versionen - Seite 287 von 510 4.0.2.283 (06.03.2006) GPF: SQL-Tabellen: Der Aufruf Table.MarkCondition(Nothing) führt nicht mehr zu einem Absturz, sondern markiert (wie schon unter 3.1) alle Datensätze. Regression: OrgData: Tabelleneigenschaft "OrgDataLinkedDocDefaultFilePrq“: Das Ergebnis der Auswertung wird nicht mehr um eventuelle Backslashes bereinigt. Dadurch ist (wie bisher auch unter 3.1) die automatisierte Ablage von externen Dokumenten in Unterverzeichnissen wieder möglich. Eventuell enthaltene sonstige verbotene Zeichen (/ : * ? " < > |) werden nach wie vor entfernt. orgAnice SQL Versionen - Seite 288 von 510 4.0.2.284 (23.04.2006) Problem: OrgDbServer: Bei einer Markierungs- oder Summierungs-Operation sofort nach dem Öffnen einer Datenbank per COM wurden die Relationen nicht berücksichtigt, was zu einer fehlerhaften Markierung bzw. Summierung führte. Ärgernis: Seit 4.0.2.260 wird beim Schließen geprüft, ob Packager-Objekte geöffnet sind. Leider funktioniert das bei Outlook-Objekten nicht ganz zuverlässig. Jetzt werden beim Schließen von OrgData eventuell geöffnete interne Outlook-Objekte (Dateiendung .msg) ignoriert. Problem: Während der gesamten Anzeigedauer des Kontext-Menüs des Dokument-Controls wurde eine OrgDbServer-Transaktion offen gehalten. Jetzt wird die Transaktion so kurz wie möglich gehalten. (Dieses Problem ist in der 200+-Reihe entstanden.) GPF: OrgDbServer: Aufruf von Table.SearchText mit einem „zu großen“ (=mehr Elemente als Felder in der Tabelle) Bool-Array als Argument führte zu einem Absturz. (Dieses Problem ist in orgAnice 4.0 entstanden.) Bug: OrgSqlExport: Die SQL-UDF __Org_StringToDate war fehlerhaft, sie gab ein um einen Tag verschobenes Datum zurück. Sie wird bei der Auswertung der CoreFunction StringToDate verwendet. Da der Fehler schon sehr alt ist, wird diese Funktion vermutlich nur extrem selten verwendet. Daher ist eine Neu-Übernahme der Strukturänderungen nicht verpflichtend. GPF: OrgData: Tabellen-Layouts ohne Tabelle verursachen keinen Absturz mehr. -> 3.1.4.152: Problem: Beim Abarbeiten des AutoClose-Makros kann (jetzt wieder) über COM auf die Datenbank zugegriffen werden. Dieses Problem ist aller Wahrscheinlichkeit nach in 3.1.4.107 entstanden. orgAnice SQL Versionen - Seite 289 von 510 4.0.2.300 (01.09.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 290 von 510 4.0.2.301 (01.09.2005) OrgDbServer 3.1: Die Reihenfolge BeginRead -> BeginTransaction -> Write -> Commit -> EndRead gab die Schreibsperre erst beim EndRead frei. Jetzt wird sie bereits bei Commit freigegeben. Dasselbe gilt für BeginTransaction -> BeginRead -> Write -> Commit -> EndRead und BeginTransaction -> Write -> BeginRead -> Commit -> EndRead. Dadurch sollte sich die beobachtbare Anzahl von Sperr-Konflikten im laufenden Betrieb reduzieren. orgAnice SQL Versionen - Seite 291 von 510 4.0.2.302 (11.09.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 292 von 510 4.0.2.303 (11.09.2005) Fehlertext: Fehlertexte für veraltete/zu neue Server-Version: "Die auf diesem Rechner installierte Version von orgAnice ist veraltet. Bitte führen Sie ein Update auf dieser Arbeitsstation durch."/"Die Datenbank wird derzeit mit einer älteren Version von orgAnice betrieben. Um die Arbeit fortzusetzen, schließen Sie bitte die Datenbank auf allen anderen Arbeitsstationen und aktualisieren Sie alle Arbeitsstationen." (Begriff “Server” wurde durch “orgAnice” ersetzt, um den Anwender nicht zu verwirren – welcher Server, …?) Englische Version: "The release of orgAnice installed on this workstation is out of date. Please upgrade this workstation."/"The database is currently run with an older release of orgAnice. To continue, please close the database on all workstations and upgrade all workstations." orgAnice SQL Versionen - Seite 293 von 510 4.0.2.304 (14.09.2005) [4.0.2.240 -> 4.0.2.242] GPF: (1662) Bug Prio B: orgAnice Data SQL: Arbeitsbereich mit Tabellenlayout ohne Tabelle 1. Arbeitsbereich mit einer Spalte mit einer Rahmen 2. Dem Rahmen ist ein TblLt zugeordnet 3. Dem TblLt ist keine Tbl zugeordnet, TblLt besitzt keine Steuerelemente Wenn ein solcher Arbeitsbereich im Konfigurationsmodus aktiviert wird, dann verursacht das Umschalten in den Benutzermodus einen Abstutz von orgData. Behoben. COM: OrgSqlExport: Neue Methode Application.ExportFromODBEx. Benötigt für SQLReplikation. orgAnice SQL Versionen - Seite 294 von 510 4.0.2.305 (15.09.2005) Keine Änderungen. orgAnice SQL Versionen - Seite 295 von 510 4.0.2.306 (15.09.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 296 von 510 4.0.2.307 (16.09.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 297 von 510 4.0.2.308 (17.09.2005) Feature: Gibt es innerhalb einer Auflistung zwei Objekte mit demselben Titel, gibt die Eigenschaft DisplayName für diese Auflistungen den Titel gefolgt vom Namen in eckigen Klammern zurück. Beispiel: Zwei Objekte mit den Namen „N1“ und „N2“ innerhalb einer Auflistung haben beide denselben Titel „T“. Dann gibt die Eigenschaft DisplayName für die Objekte die Strings „T [N1]“ bzw. „T [N2]“ zurück. Die Eigenschaft DisplayName wird zur Anzeige des Objektnamens an der Oberfläche verwendet. Motiviert wurde diese Änderung dadurch, dass bei Bearbeitung einer Kundendatenbank erhöhter Support-Aufwand entstand, weil zwei Objekte denselben Titel hatten und dadurch verwechselt wurden. orgAnice SQL Versionen - Seite 298 von 510 4.0.2.309 (21.09.2005) COM: Eigenschaft DisplayName diverser Objekte um optionalen Parameter Options erweitert, der angibt, wie der Rückgabetext formatiert werden soll: ORGDB_DISPLAYNAME_NORMAL: ‚Titel‟, wenn es einen Titel gibt; ‚[Name]‟, wenn es keinen Titel gibt ORGDB_DISPLAYNAME_UNIQUE: ‚Titel‟, wenn der Titel eindeutig innerhalb der Aufzählung ist; ‚Titel [Name]‟, wenn es ein weiteres Objekt mit demselben Titel gibt; ‚[Name]‟, wenn es keinen Titel gibt ORGDB_DISPLAYNAME_NAMEANDTITLE: ‚Name (Titel)‟, wenn es einen Titel gibt; ‚Name‟, wenn es keinen Titel gibt. Undo: Änderung aus 4.0.2.308 rückgängig gemacht: Objektname wird an der Oberfläche nicht mehr in Klammern angezeigt, selbst wenn es in der Auflistung ein anderes Objekt mit demselben Titel gibt. orgAnice SQL Versionen - Seite 299 von 510 4.0.2.310 (21.09.2005) Bug: Table.Insert funktionierte manchmal nicht, wenn nicht alle Indizes aufgebaut waren. Behoben. orgAnice SQL Versionen - Seite 300 von 510 4.0.2.311 (22.09.2005) Problem: Das schreibgeschützte Öffnen einer Datenbank mit ungültiger Lizenznummer funktionierte nicht. Behoben. orgAnice SQL Versionen - Seite 301 von 510 4.0.2.312 (22.09.2005) COM: Im Benutzermodus erzeugt ein Doppelklick auf die Listenansicht ein Application.Command-Event mit Eventcode CMD_USE_LISTVIEW_DBLCLK. Das Event kommt auch, wenn es gar kein Dokument oder gar kein DokumentFeld in dieser Zeile gibt. Es kommt nicht, wenn außerhalb der Datensätze geklickt wird. Es gibt gegenwärtig keine Möglichkeit, das Dokument abzufragen, das im Standard-Event-Handler geöffnet worden wäre. Eine Lösung wäre die Definition eines neuen Events Application.CommandEx, das einen optionalen VARIANTParameter hat. orgAnice SQL Versionen - Seite 302 von 510 4.0.2.313 (22.09.2005) Problem: KS-Tabellen: Die Abfrage von Feldinhalten gab Empty zurück, wenn der Datensatz auf EOF stand. Behoben. Jetzt wird der dem Feldtyp entsprechende „Null-Wert“ zurückgegeben. Das behebt auch das Problem, dass der Zugriff auf ein Feld aus einem ParserRequest mit booleschen Operatoren fehlschlug. (Ausdruckseditor: „SyntaxFehler“). Gemeldet von Stefan Kloss. orgAnice SQL Versionen - Seite 303 von 510 4.0.2.314 (11.10.2005) Refakturierung. (Änderung des Quellcodes, die nach außen hin nichts ändert, aber die Implementation eines komplexeren Features ermöglicht oder einfach nur die Qualität des Codes verbessert.) orgAnice SQL Versionen - Seite 304 von 510 4.0.2.315 (11.10.2005) [ -> 4.0.2.245] Letzte Änderungen aus dem 200+-Zweig eingepflegt. orgAnice SQL Versionen - Seite 305 von 510 4.0.2.316 (12.10.2005) [ -> 4.0.2.247] Letzte Änderungen aus dem 200+-Zweig eingepflegt. orgAnice SQL Versionen - Seite 306 von 510 4.0.2.317 (12.10.2005) Lint. orgAnice SQL Versionen - Seite 307 von 510 4.0.2.318 (12.10.2005) [ -> 4.0.2.248] Letzte Änderungen aus dem 200+-Zweig eingepflegt. orgAnice SQL Versionen - Seite 308 von 510 4.0.2.319 (14.10.2005) Defekt, nicht verwenden. orgAnice SQL Versionen - Seite 309 von 510 4.0.2.320 (18.10.2005) Refakturierung im großen Stil. orgAnice SQL Versionen - Seite 310 von 510 4.0.2.321 (31.10.2005) [ -> 4.0.2.253] Änderungen aus dem 200+-Zweig eingepflegt. Feature 4.1: Um den Volltext eines Dokuments zu extrahieren, wird die IFilter-Schnittstelle benutzt. Falls keine solche Schnittstelle für einen Dokumenttyp registriert ist, wird der Standard-Filter verwendet. Bei Word- und Excel-Dokumenten kann der Text direkt aus der Datenbank extrahiert werden. PDF-Dokumente werden bei Verwendung des Adobe PDF IFilter-s in eine temporäre Datei im Temp-Verzeichnis zwischengespeichert. In jedem Fall kümmert sich der OrgDbServer um alles, die Client-Anwendung braucht nach wie vor nichts weiter zu tun, als Document.Text aufzurufen. Es ist allerdings eine Verbesserung der Performance zu erwarten, da in keinem Fall OLE gestartet werden muss. Das Feature wird aktiv, wenn der Featurecode „ORG41“ in der DB-Lizenz existiert oder wenn eine gültige AddOn-Lizenz „FT“ vorhanden ist. Es werden keinerlei Events bei der Extraktion des Volltexts gefeuert. Das kann bei Bedarf nachgeholt werden. orgAnice SQL Versionen - Seite 311 von 510 4.0.2.322 (31.10.2005) [ -> 4.0.2.254] Änderungen aus dem 200+-Zweig eingepflegt. Problem: OrgDbServer: Document.SaveAs speichert PDF-Dokumente auch dann korrekt, wenn sie als eingebettete OLE-Objekte und nicht als Package in der Datenbank vorliegen. Für PDFs muss der Schlüssel PackageOnFileDrop nicht mehr manuell eintragen werden. Bitte auch für das Setup berücksichtigen. Diese Änderung bezieht sich wirklich nur auf PDF-Dokumente. Für andere Dateitypen mit demselben Problem müsste die Routine gesondert angepasst werden. orgAnice SQL Versionen - Seite 312 von 510 4.0.2.323 (02.11.2005) [ -> 4.0.2.257] Änderungen aus dem 200+-Zweig eingepflegt. Feature: Markieren funktioniert, sobald Leseberechtigung auf die Tabelle und auf die Datenbank und physikalische Schreibberechtigung auf die Datenbankdatei gegeben ist. Somit ist das Markieren erlaubt, wenn ein Benutzer keinen DatenbankSchreibzugriff hat. COM: OrgDbServer: Neue Eigenschaft Table.CanMark. Wird von OrgData abgeprüft. Feature: OrgDbServer: Der Volltext von eingebetteten Dokumenten wird redundant im Feld DocText der __OrgDocuments-Tabelle gespeichert. Das Füllen dieses Felds geschieht vorerst nur manuell mit der neuen Methode Documents.UpdateDocTexts. OrgSqlExport legt dieses Feld automatisch an und füllt es (durch Aufruf von UpdateDocTexts) mit Inhalt. Funktioniert nur, wenn die AddOn-Lizenz „FT“ vorhanden ist. Bei bereits bestehenden Datenbanken wird die Übernahme der Strukturänderungen angeboten. COM: Neue Methode Documents.UpdateDocTexts. Aktualisiert das Feld __Org_Documents.DocText in der zugrunde liegenden SQL-DB mit dem Volltext der eingebetteten Dokumente, allerdings nur bei Dokumenten, bei denen der Feldinhalt NULL ist. Funktioniert nur, wenn eine Lizenz mit dem Typ „FT“ in der Datenbank vertreten ist und der aktive Benutzer dafür freigeschaltet ist. Problem: Das Speichern eines eingebetteten PDF-Dokuments funktioniert auch dann, wenn das Dokument offen ist. Dadurch funktioniert auch das Auslesen des Volltexts, wenn das Dokument offen ist. Glitch: Session-OID wurde irrtümlicherweise beim Anlegen von Links vergeben. Das äußerte sich bei SQL-Tabellen in einem nicht leeren Eintrag im Feld SessionOID in der __Org_Documents-Tabelle, hatte aber keine weiteren Auswirkungen. Behoben. GPF: Acrobat Reader 7 stürzt bei eingebetteten PDF-Dokumenten nicht mehr ab. Optimierung: Zugriffssperren-Optimierung bei Dokumenten. GUI: Schlägt das Speichern eines Dokuments im Dateisystem fehl (Kontextmenü des Dokument-Controls -> Speichern unter...), kommt eine Fehler-MessageBox. GUI: „Dokument von Vorlage erstellen und verknüpfen“ aktivierte manchmal ein anderes Fenster, nachdem die Vorlage ausgewählt wurde. Behoben. orgAnice SQL Versionen - Seite 313 von 510 4.0.2.324 (16.11.2005) [ -> 4.0.2.263] Änderungen aus dem 200+-Zweig eingepflegt. Performance: Prüfung für AddOn-Lizenzen, die vom OrgDbServer benötigt werden, beschleunigt. Performance: SQL-Tabellen: Document.Text wertet bei eingebetteten Dokumenten das redundante Feld aus, das den Volltext speichert, aus und gibt dessen Inhalt zurück, falls es nicht NULL ist. Das funktioniert gegenwärtig nur, wenn die AddOn-Lizenz „FT“ in der Datenbank vorhanden ist und gültig ist. SQL-Struktur: SQL-Tabellen, „FT“-Lizenz: Neues Feld „DocTextModificationTime“. Zur Ermittlung der Gültigkeit des redundant gespeicherten Volltexts wird der Inhalt dieses Felds mit „DocModificationTime“ verglichen. Das betrifft die Methode UpdateDocText, die u.a. vom OrgSqlExport aufgerufen wird. OrgSqlExport kümmert sich um das Anlegen des Felds, diese Version bietet eine Neu-Übernahme der Strukturänderungen an, wenn die DB vorher mit einer älteren Version geöffnet wurde. Einschränkung: SQL-Tabellen, „FT“-Lizenz: Der von der Eigenschaft Document.Text zurückgegebene Volltext wird nur dann manuell berechnet, wenn der Inhalt des Felds „DocText“ NULL ist. Das heißt, wenn der redundant gespeicherte Volltext vorhanden, aber nicht mehr aktuell ist, wird trotzdem die Version aus dem Cache zurückgegeben. Eventuell wäre ein Schalter für die Eigenschaft Document.Text denkbar, der angibt, ob die Version aus dem Cache verwendet oder immer der aktuelle Volltext berechnet werden soll. Feature: SQL-Tabellen, „FT“-Lizenz: Beim Speichern eines Dokuments wird der redundant gespeicherte Volltext immer aktualisiert. Nachteil: Bei Packager-Objekten geschieht bei jedem Schließen ein Speichern, auch wenn sich das verpackte Objekt nicht verändert hat. Eventuelle Fehler bei der Extraktion oder beim Schreiben des Volltexts werden stillschweigend ignoriert. Daher ist es sinnvoll, wenn im Hintergrund ein Dienst hin und wieder Documents.UpdateDocText aufruft. Es war im lokalen Einsatz kein Performance-Nachteil zu spüren. Nachteil: Benutzer, die regelmäßig speichern, erzeugen dadurch hohen Traffic zum SQL-Server. Dem kann Abhilfe geschaffen werden, indem der redundante Volltext erst beim Schließen zurückgeschrieben wird. Das geht aber momentan nicht, da das Schließen von Packager-Objekten (noch) nicht zuverlässig ermittelt werden kann. OrgDbServer: Bei Datenbanken, die zuletzt mit Version 4.0.2.258 oder älter geöffnet wurden, wird die SQL-Konsistenz auf „dirty“ gesetzt, so dass eine Ausführung von OrgSqlExport möglich ist. COM: Für Packager-Dokumente kommt ein DocumentOpen-Event zusammen mit dem DocumentVerb-Event. Ein DocumentClosedEvent kommt beim Schließen des Packager-Objekts –selbst wenn die Packager.exe oder die Dokument-Anwendung im Task-Manager abgeschossen wird. Probleme: Kleinere Probleme bei der Volltext-Extraktion behoben. Feature: Sind Packager-Dokument geöffnet, wird der Benutzer beim Schließen per MessageBox aufgefordert, diese manuell zu schließen. Leider besteht hier keine Möglichkeit, diese automatisch zu speichern und zu schließen. Performance: SQL-Tabellen, „FT“-Lizenz: Die Ermittlung des redundanten Volltexts erfolgt erst beim Schließen des Dokuments, nicht wie bisher bei jedem Speichern. orgAnice SQL Versionen - Seite 314 von 510 Performance: SQL-Tabellen, „FT“-Lizenz: Die Ermittlung des redundanten Volltexts erfolgt erst beim Schließen des Dokuments und nur, wenn das Dokument während der Anzeige gespeichert wurde. Leider werden Packager-Dokumente immer gespeichert, unabhängig davon, ob sie verändert wurden, so dass hier auch immer eine NeuErmittlung des Volltexts erfolgt. Problem:: Protokoll-Texte verändert und erweitert. Problem: KS-Tabellen: Wenn in einem Feld mit Typ Datum intern offensichtlicher Müll gespeichert ist, wird ein Standard-Datumswert zurückgegeben (1.1.100 oder 31.12.9999). orgAnice SQL Versionen - Seite 315 von 510 4.0.2.325 (12.12.2005) Problem: KeyStorage-Tabellen: Bei abgebrochener Netzwerkverbindung friert OrgData nicht mehr ein. Feature: KeyStorage-Tabellen: Wird die Verbindung zur Datenbank unterbrochen (BenutzerAdministrator oder Verbindungs-Fehler), kommt eine erklärende Meldung, und OrgData wird geschlossen. COM: Neues Event Database.ShutdownEx. Tritt immer auf, wenn Shutdown auftritt, zusätzlich wird jedoch noch der Shutdown-Fehlercode (=Grund für Shutdown) mitgeliefert. Oberfläche: In der Statusleiste gibt es eine weitere Spalte für ein Icon. Hier wird eine Stoppuhr angezeigt, wenn der OrgDbServer mit einer langwierigen Operation beschäftigt ist. Die Stoppuhr kommt immer dann, wenn ein Progress-Dialog „Bitte warten Sie, während orgAnice ...“ angezeigt wird. Dieser Progress-Dialog wird aber manchmal ausgeblendet (z.B. beim Aktualisieren der Listenansicht eines Tabellen-Layouts), so dass diese zusätzliche Information hilfreich sein kann, um den Grund für ein Einfrieren von orgAnice herauszufinden. Vorschläge für eine bessere Stoppuhr-Grafik sind willkommen. Problem: OrgErrorTexts: Systemfehler („Zugriff verweigert“, „Ungültiges Handle“, „Netzwerkname ist nicht mehr verfügbar“, ...) werden korrekt in Fehlertexte übersetzt. Kann ein Fehlercode nicht gefunden werden, wird die Hexadezimal-Darstellung des Fehlercodes mit zurückgegeben. orgAnice SQL Versionen - Seite 316 von 510 4.0.2.326 (16.12.2005) [-> 4.0.2.268] GPF: Absturz beim Einfügen von Leerzeilen (ohne Tabulator/Leerzeichen) im OrgDataCustomFunctionEditor behoben. Problem: OrgSqlExport -> OrgSqlImport -> OrgSqlExport funktioniert. (Probleme bei Dokumenten behoben.) Bug: War die REPLICATION-AddOn-Lizenz abgelaufen oder aus anderen Gründen nicht mehr zugänglich, war ein anschließendes Anmelden an der Datenbank nicht mehr möglich. Behoben. Problem: KeyStorage: Der Schlüssel Database\License wurde nicht aktualisiert, wenn Database\Licenses(0) aktualisiert wurde. Behoben. GPF: [3.1.4.138 -> .139] Duplizieren eines Datensatzes mit Dokument und anschließendes Öffnen des Dokuments (ohne den duplizierten Datensatz zu speichern) führte zu einer Schutzverletzung bei OrgData. Behoben. Problem: SQL-Tabellen, FT-Lizenz: Das Speichern des Volltexts in der __Org_DocumentsTabelle wurde für eingebettete PDF-Dokumente nicht durchgeführt. Behoben. Problem: SQL-Tabellen, FT-Lizenz: Die Methode Documents.UpdateDocTexts ist durch Änderungen in Version .262 funktionslos geworden. Behoben. Problem: OrgDbServer: (1680) Bug Prio A: orgAnice Database Server SQL: Duplizieren von Datensätzen mit .Insert Das Duplizieren von Datensätzen mit dem bloßen Aufruf der Methode .Insert ist in einer SQL-DB nicht mehr möglich. Es wird zwar ein neuer Datensatz angelegt, aber so, als ob vorher .Record = .DefaultRecord aufgerufen worden wäre (d.h. die Feldvorbelegungen sind ausgewertet, Felder ohne Vorbelegung sind leer). Einen Workaround stellt der Aufruf von .Record = .Record dar, nichtsdestotrotz müssen wir das aus Pi bekannte Verhalten (einfaches .Insert dupliziert den Datensatz) wiederherstellen. Behoben. ShowStop: Manchmal verschwanden neu erzeugte Word-Dokumente, wenn das Word-Makro den Datensatz speicherte. Behoben. Dieses Problem wurde Im 4.0.2.266er eingeführt. Problem: VBA friert auch nach mehrfacher Betätigung des Buttons „Visual Basic-Editor“ im Objekt-Editor nicht mehr ein. Beim Anzeigen des VBA-Editors wird das VBA-Projekt immer gesperrt, auch wenn der Aufruf aus dem Objekt-Editor erfolgt. (Bisher war das nicht der Fall, ein möglicher Grund für VBA-Konsistenz-Probleme.) Außerdem wird der VBA-Editor nach Aufruf immer in den Vordergrund gebracht. Texte: (1681) Bug Prio B: orgAnice Data Pi: OE: Aufzählung "Berechtigte Benutzer": Es fehlt zwei Mal ein "s": IST: "Nicht augewählt" "Augewählt" SOLL: "Nicht ausgewählt" "Ausgewählt" Behoben. Problem: Objekt-Editor: Das Sortieren von UserMarkExpressions oder SumExpressions mit doppelt vergebenen Namen führte zur Fehlermeldung 0x80070057. Behoben. Problem: Längenbeschränkung (32767 Zeichen) für CustomFunction-Editor aufgehoben. GPF: Absturz bei der Aktivierung des OE über Rechtsklick auf Listenspalten behoben. Rechte Maustaste auf Listenspalten-Header, Abbruch im OE, Rechte Maustaste auf Listenspalte, Abbruch im OE, Rechte Maustaste auf Listenspalten-Header, Abbruch im OE -> Absturz orgAnice SQL Versionen - Seite 317 von 510 4.0.2.327 (18.12.2005) [-> 4.0.2.269] COM: Neuer Fehlercode ORGDB_E_WRONGTABLETYPE. COM: OrgDbServer: Neue Eigenschaft Table.SqlUserMarksCookie. Gibt den Cookie-Wert an, der in der SQL-Tabelle __Org_UserMarks2 für die markierten Datensätze des aktuellen Benutzers und der entsprechenden Tabelle zuständig ist. Für KeyStorage-DBs erzeugt diese Eigenschaft den neuen Fehlercode ORGDB_E_WRONGTABLETYPE. Diese Eigenschaft ist dafür geeignet, SQL-seitig auf die in orgAnice für den aktuellen Benutzer markierten Datensätze zuzugreifen. Das soll am Beispiel „Abfrage aller markierten Adressen“ illustriert werden. - Abfrage der Eigenschaft für die Tabelle „Adressen“ (VB): Dim lCookie As Long lCookie = Database.Tables("Adressen").SqlUserMarksCookie - Formulierung der SQL-Abfrage (VB): Dim sQuery As String sQuery = "SELECT * FROM Adressen RIGHT OUTER JOIN __Org_UserMarks2 ON Adressen.__Org_RecordNo = __Org_UserMarks2.RecordNo WHERE __Org_UserMarks2.Cookie = " & lCookie - Alternative Abfrage ohne JOIN (VB): Dim sQuery As String sQuery = "SELECT Adressen.* FROM Adressen, __Org_UserMarks2 WHERE Adressen.__Org_RecordNo = __Org_UserMarks2.RecordNo AND __Org_UserMarks2.Cookie = " & lCookie - Ausführen der Abfrage mit ADO: Dim pRecordset As ADODB.Recordset Set pRecordset = Database.Connection.Execute(sQuery) „ Abfrage des Recordset Auf ähnliche Art und Weise können bestehende Markierungen für den aktuellen Benutzer durch Änderungen an der __Org_UserMarks2-Tabelle modifiziert werden. orgAnice SQL Versionen - Seite 318 von 510 4.0.2.328 (21.12.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 319 von 510 4.0.2.329 (21.12.2005) [4.0.2.269 -> 4.0.2.270] Problem: OrgData, OE: Anlegen von Indizes, SumExpressions und UserMarkExpressions funktionierte seit 4.0.2.326 nicht mehr. Behoben. orgAnice SQL Versionen - Seite 320 von 510 4.0.2.330 (25.12.2005) [4.0.2.270 -> 4.0.2.271] Nur interne Änderungen. orgAnice SQL Versionen - Seite 321 von 510 4.0.2.331 (30.12.2005) [4.0.2.271 -> 4.0.2.273] Nur interne Änderungen. orgAnice SQL Versionen - Seite 322 von 510 4.0.2.332 (03.01.2006) [4.0.2.273 -> 4.0.2.274] Jahreswechsel: Jahreszahlen angepasst. Letzte Fundstellen von "bit by bit" und "dexcon" zu "orgAnice Software GmbH" umgewandelt. orgAnice SQL Versionen - Seite 323 von 510 4.0.2.333 (03.01.2006) [4.0.2.274 -> 4.0.2.275] Problem: Das Extrahieren des Volltexts bei „Standardbenutzern“ ohne Administratorrechte funktioniert jetzt. orgAnice SQL Versionen - Seite 324 von 510 4.0.2.334 (06.01.2006) [4.0.2.275 -> 4.0.2.277] GPF: Nach Benutzung der ELO-Schnittstelle führte das Schließen des OrgDataHauptfensters zu einer Schutzverletzung. Behoben. Problem: OrgDbConvert konnte keine Dateien größer als 4 GB konvertieren. Behoben. orgAnice SQL Versionen - Seite 325 von 510 4.0.2.335 (18.01.2006) [4.0.2.277 -> 4.0.2.279] Problem: SQL-Tabellen: Indizes über Bool-Felder werden korrekt unterstützt. OE: OE Index, SQL-Tabellen: Buttons "Indexstruktur löschen" und "Indexstruktur aufbauen" werden ausgegraut. Feature: OrgSqlExport: Fehler bei der Ausführung einer Abfrage produzieren eine MessageBox, die die Fehlerursache anzeigt und eine Wiederholung oder ein Ignorieren anbietet. Das Ignorieren eines Fehlers bei einer Abfrage gibt den Fehlermeldungs-Text aus. Performance: Eine Beschleunigung des Erst-Exports von Tabellen mit vielen internen Dokumenten ist zu erwarten. Convenience: Auch bei eindeutigen Indizes wird zuerst ein Index erzeugt, der nicht eindeutig ist. Anschließend wird geprüft, ob der Index nur eindeutige Werte enthält. Wenn ja, wird der Index auf "eindeutig" gesetzt, wenn nein, wird eine Warnung protokolliert. Dadurch führt eine fehlerhafte Erkennung von Duplikaten bei eindeutigen Indizes nicht mehr zum Abbruch eines – möglicherweise langwierigen – SQL-Exports. orgAnice SQL Versionen - Seite 326 von 510 4.0.2.336 (19.01.2006) [4.0.2.279 -> 4.0.2.280] Problem: (3.1.4.147 -> .148) Positionieren auf VBA-Module und -Makros funktioniert jetzt einwandfrei. Unschönheit: Direktsuche im Modus "Neuer Datensatz" gibt jetzt einen Hinweiston. Vorher wurde brav gesucht, was ein unschönes Verhalten an der Oberfläche zur Folge hatte. Feature: Timeout der Direktsuche ist konfigurierbar. Dazu muss entweder eine Datenbank-, eine öffentliche oder eine private Benutzereigenschaft "DirectSearchTimeout" vergeben werden, die den neuen Timeout-Wert in Millisekunden angibt. Die private Benutzereigenschaft hat Vorrang vor der öffentlichen, die wiederum Vorrang vor der DB-Eigenschaft hat. Lässt sich der Wert der Eigenschaft nicht in eine ganze Zahl umwandeln oder ist das Ergebnis eine negative Zahl, wird der Wert ignoriert. Standardwert ist 1000 (eine Sekunde). orgAnice SQL Versionen - Seite 327 von 510 4.0.2.337 (26.01.2006) [4.0.2.280 -> 4.0.2.281] Bug: SQL: OrgBasic-Ausdrücke der Form "Not (? And ?)" (und viele andere) wurden semantisch fehlerhaft nach SQL übersetzt, da der zu negierende Ausdruck nicht geklammert wurde. Beispiel: OrgBasic-Ausdruck: Not (A And B) SQL-Übersetzung (fehlerhaft): NOT A AND B (NOT A) AND B SQL-Übersetzung (korrekt): NOT (A AND B) Tweak: OrgData: Unterstützung für Tabellen-Eigenschaft "OrgDataNoAutoRecCount". Diese Tabellen-Eigenschaft wird für jede angezeigte Tabelle abgefragt und als Bool-Wert interpretiert. Ist sie True, so wird die Datensatzanzahl nur auf explizite Anforderung hin (Taste F5 bzw. Menüpunkt Ansicht/Aktualisieren) bestimmt. Die Anzeige in der Statuszeile ist unverändert, unbekannte Datensatzanzahlen werden als "?" dargestellt. orgAnice SQL Versionen - Seite 328 von 510 4.0.2.338 (11.02.2006) COM: OrgDbServer: Database.NewSession und Server.NewDatabaseSession um optionalen Parameter Options erweitert. Wird ORGDB_NEWSESSION_RECONNECT übergeben, wird für die neue DatenbankSession auch eine neue ADO-Verbindung geöffnet. Standard ist ORGDB_NEWSESSION_NORMAL, hier wird die vorhandene ADO-Verbindung wiederverwendet. Bei KeyStorage-Tabellen zeigt dieser Schalter keine Wirkung. SQL: Die SQL-Hilfsfunktion __Org_Val verhielt sich anders als die OrgBasic-Funktion Val. Beispielsweise ergibt Val("1abc") bei der Auswertung 1, das war bei __Org_Val anders. Die Implementation von __Org_Val wurde korrigiert, um das Verhalten so gut wie möglich an das von Val anzupassen. Um die neue Funktion __Org_Val einzuspielen, muss die Datenbankstruktur nach SQL übernommen werden (per OrgSqlExport). Da die meisten Kunden von dieser Diskrepanz bisher nicht betroffen zu sein schienen, wurde darauf verzichtet, eine „Übernahme der Strukturänderungen“ verpflichtend zu machen. Grafik: Grafikfehler (schwarzer Rand) beim Rechts-Scroll eines ListViews in Verbindung mit ImageList-Spalten behoben. GPF: Möglichen Absturz beim Löschen von Formular-Controls behoben. orgAnice SQL Versionen - Seite 329 von 510 4.0.2.339 (24.02.2006) COM: OrgExport, OrgImport: Methode Application.Execute funktioniert, wenn vorher OpenDatabase aufgerufen wurde und Visible auf False gesetzt bleibt. Lizenzpolitik: Das schreibgeschützte Öffnen von Datenbanken mit abgelaufener oder ungültiger Lizenz ist wieder möglich. (Regression .128 -> .129) Lizenzpolitik: Abgelaufene oder ungültige Lizenzen können nicht mehr in eine Datenbank geschrieben werden. (Regression .128 -> .129) Pufferüberlauf: Puffer für Löschberechtigungs-Ausdruck war zu klein. Dadurch konnten Löschberechtigungs-Ausdrücke, die z.B. einen Umlaut enthielten, nicht vergeben werden. orgAnice SQL Versionen - Seite 330 von 510 4.0.2.340 (06.03.2006) COM: OrgData: Neue Methode ImageList.SaveImage. Ermöglicht das Extrahieren einzelner ImageList-Bilder im .ico- oder .bmp-Format. Einschränkungen: Das Format hängt nicht vom Dateinamen, sondern vom Format ab, in dem die Bilder vorlagen, als sie in die ImageList eingefügt wurden. Außerdem wird bei Icons die transparente Farbe zu Schwarz umgewandelt. -> 4.0.2.283: GPF: SQL-Tabellen: Der Aufruf Table.MarkCondition(Nothing) führt nicht mehr zu einem Absturz, sondern markiert (wie schon unter 3.1) alle Datensätze. Regression: OrgData: Tabelleneigenschaft "OrgDataLinkedDocDefaultFilePrq“: Das Ergebnis der Auswertung wird nicht mehr um eventuelle Backslashes bereinigt. Dadurch ist (wie bisher auch unter 3.1) die automatisierte Ablage von externen Dokumenten in Unterverzeichnissen wieder möglich. Eventuell enthaltene sonstige verbotene Zeichen (/ : * ? " < > |) werden nach wie vor entfernt. -> 4.0.2.284: COM: OrgDbServer, SQL-Tabellen: Bei einer Markierungs- oder Summierungs-Operation sofort nach dem Öffnen einer Datenbank per COM wurden die Relationen nicht berücksichtigt, was zu einer fehlerhaften Markierung bzw. Summierung führte. orgAnice SQL Versionen - Seite 331 von 510 4.0.2.341 (06.04.2006) -> 4.0.2.284: Problem: OrgDbServer: Bei einer Markierungs- oder Summierungs-Operation sofort nach dem Öffnen einer Datenbank per COM wurden die Relationen nicht berücksichtigt, was zu einer fehlerhaften Markierung bzw. Summierung führte. Ärgernis: Seit 4.0.2.260 wird beim Schließen geprüft, ob Packager-Objekte geöffnet sind. Leider funktioniert das bei Outlook-Objekten nicht ganz zuverlässig. Jetzt werden beim Schließen von OrgData eventuell geöffnete interne Outlook-Objekte (Dateiendung .msg) ignoriert. Problem: Während der gesamten Anzeigedauer des Kontext-Menüs des Dokument-Controls wurde eine OrgDbServer-Transaktion offen gehalten. Jetzt wird die Transaktion so kurz wie möglich gehalten. (Dieses Problem ist in der 200+-Reihe entstanden.) GPF: OrgDbServer: Aufruf von Table.SearchText mit einem „zu großen“ (=mehr Elemente als Felder in der Tabelle) Bool-Array als Argument führte zu einem Absturz. (Dieses Problem ist in orgAnice 4.0 entstanden.) Bug: OrgSqlExport: Die SQL-UDF __Org_StringToDate war fehlerhaft, sie gab ein um einen Tag verschobenes Datum zurück. Sie wird bei der Auswertung der CoreFunction StringToDate verwendet. Da der Fehler schon sehr alt ist, wird diese Funktion vermutlich nur extrem selten verwendet. Daher ist eine Neu-Übernahme der Strukturänderungen nicht verpflichtend. -> 3.1.4.152: Problem: Beim Abarbeiten des AutoClose-Makros kann (jetzt wieder) über COM auf die Datenbank zugegriffen werden. Dieses Problem ist aller Wahrscheinlichkeit nach in 3.1.4.107 entstanden. orgAnice SQL Versionen - Seite 332 von 510 4.0.2.342 (23.04.2006) GPF OrgData: Tabellen-Layouts ohne Tabelle verursachen keinen Absturz mehr. orgAnice SQL Versionen - Seite 333 von 510 {3.1.4|4.0.2}.400 (18.12.2005) [4.0.2.221 -> 224] Intern: SQL: Dokument-Felder werden in Form einer LEFT OUTER JOIN-Abfrage abgefragt. (Bisher geschah die Abfrage mit Hilfe einer Unterabfrage.) Das betrifft so ziemlich jede Abfrage, die mit Tabellen arbeitet. Es ist also so ziemlich die gesamte Funktionalität des OrgDbServer unter SQL betroffen. Aus diesem Grund muss diese Version besonders sorgfältig getestet werden. OrgDbServer: Neue CoreFunction Contains(sTable As String, sFieldList As String, sFind As String). Wird bei einer Übersetzung in ein entsprechendes CONTAINS-Prädikat umgewandelt, das eine Volltextkatalog-Suche einleitet. Contains(„Aktivitaeten“, „Memo“, „suchtext“) wird dabei zum SQL-Prädikat CONTAINS(„Aktivitaeten“.„Memo“, ‚suchtext‟) umgeformt. Die Übersetzung schlägt fehl, wenn einer der drei Parameter etwas anderes als eine String-Konstante ist. Der OrgBasic-Parser kennt keine Konstantenfaltung, daher ist ein Aufruf wie Contains(„Aktivitaeten“, „Memo“, „such“ & „text“) bisher nicht möglich. Funktioniert in dieser Version nur, wenn sFieldList ein einzelner Feldbezeichner für ein Textfeld (auch Memo-, nicht Dokument-Feld!) ist. Ist auf dem betreffenden Feld kein Volltextindex definiert, kommt ein Laufzeitfehler vom SQL-Server. Ist nur sinnvoll in Verbindung mit einer direkt im SQL-Server ausgeführten Operation: Die direkte Auswertung liefert immer False. Die Übersetzung nach SQL funktioniert nur, wenn die AddOn-Lizenz „FT“ vorhanden und gültig ist. Hinweis: Das CONTAINS-Prädikat erwartet oft Gänsefüßchen im Suchtext. OrgBasic unterstützt schon seit längerem die Verwendung doppelter Gänsefüßchen ("") innerhalb einer String-Konstante wie in VB: Daraus wird ein einzelnes Gänsefüßchen im String. Also: Der OrgBasic-Ausdruck """" = Chr(34) ergibt True. orgAnice SQL Versionen - Seite 334 von 510 {3.1.4|4.0.2}.402 (03.01.2006) [-> 4.0.2.332] Problem: OrgData, OE: Anlegen von Indizes, SumExpressions und UserMarkExpressions funktionierte seit 4.0.2.326 nicht mehr. Behoben. Erster Eindruck: OrgReplication: Splash-Screen sieht auch bei „großen Schriftarten“ (Bildschirmauflösung 120 dpi) gut aus. Dexcon-Logo aus Splash-Screen entfernt. ShowStop: OrgReplication: Das Anwenden mancher Änderungsprotokolle geriet in eine Endlosschleife. Behoben. Erster Eindruck: OrgReplication: Splash-Screen und Info-Dialog sehen sowohl bei „großen Schriftarten“ als auch bei „kleinen Schriftarten“ gut aus. Erster Eindruck: OrgReplication: “dexcon GmbH” durch “orgAnice Software GmbH” ersetzt. GPF: OrgReplication: Absturz bei Wahl des Menüpunkts „Replizieren“ behoben. ShowStop: Unter Umständen trat bei der Synchronisation ein falsches Verhalten bedingt durch einen Fehler in einer internen Datenstruktur auf. Behoben. Erster Eindruck: OrgReplication: Splash-Screen und Info-Dialog sehen sowohl bei „großen Schriftarten“ als auch bei „kleinen Schriftarten“ gut aus. Erster Eindruck: OrgReplication: “dexcon GmbH” durch “orgAnice Software GmbH” ersetzt. GPF: OrgReplication: Absturz bei Wahl des Menüpunkts „Replizieren“ behoben. ShowStop: Unter Umständen trat bei der Synchronisation ein falsches Verhalten bedingt durch einen Fehler in einer internen Datenstruktur auf. Behoben. Jahreswechsel: Jahreszahlen angepasst. Letzte Fundstellen von "bit by bit" und "dexcon" zu "orgAnice Software GmbH" umgewandelt. orgAnice SQL Versionen - Seite 335 von 510 4.0.2.403 (31.01.2006) [-> 4.0.2.337] Feature 4.1: Rudimentäre Unterstützung für ActiveX-Controls als Formular-Controls. Es existiert ein neuer Control-Typ „ActiveX-Steuerelement“. Die Eigenschaft „Text“ erwartet einen Klassennamen (bei VB-Controls: ProjektName.ControlName) oder eine CLSID ({XXXXXXXX-XXXX-XXXXXXXX-XXXXXXXXXXXX}). Im Konfigurations-Modus wird bisher nur ein Platzhalter angezeigt. Im Benutzer-Modus kann man mit dem Control arbeiten, die Fokus-Umschaltung funktioniert schon. Es wird abgefragt, ob das Control Fokus erwartet (z.B. erwarten Labels keinen Fokus), für VB-Controls lässt sich das durch die Eigenschaft „CanGetFocus“ steuern. Der neue Steuerelement-Typ steht nur dann zur Verfügung, wenn die Datenbank-Lizenz den Feature-Code „ORG41“ enthält. Lässt sich das Control nicht erzeugen, erscheint an der Oberfläche ein Platzhalter, der die Fehlerursache enthält. -> 4.0.2.337 Problem: Das Extrahieren des Volltexts bei „Standardbenutzern“ ohne Administratorrechte funktioniert jetzt. GPF: Nach Benutzung der ELO-Schnittstelle führte das Schließen des OrgDataHauptfensters zu einer Schutzverletzung. Behoben. Problem: OrgDbConvert konnte keine Dateien größer als 4 GB konvertieren. Behoben. Intern: Verzicht auf Erstellen der entsprechenden 3.1-Versionen. Ab sofort gibt es diese Stände nur in der Ausprägung 4.0.2.XXX. Die 3.1Versionen werden „automatisch“ mitgepflegt und können bei Bedarf wieder erstellt werden. Problem: SQL-Tabellen: Indizes über Bool-Felder werden korrekt unterstützt. OE: OE Index, SQL-Tabellen: Buttons "Indexstruktur löschen" und "Indexstruktur aufbauen" werden ausgegraut. Feature: OrgSqlExport: Fehler bei der Ausführung einer Abfrage produzieren eine MessageBox, die die Fehlerursache anzeigt und eine Wiederholung oder ein Ignorieren anbietet. Das Ignorieren eines Fehlers bei einer Abfrage gibt den Fehlermeldungs-Text aus. Performance: Eine Beschleunigung des Erst-Exports von Tabellen mit vielen internen Dokumenten ist zu erwarten. Convenience: Auch bei eindeutigen Indizes wird zuerst ein Index erzeugt, der nicht eindeutig ist. Anschließend wird geprüft, ob der Index nur eindeutige Werte enthält. Wenn ja, wird der Index auf "eindeutig" gesetzt, wenn nein, wird eine Warnung protokolliert. Dadurch führt eine fehlerhafte Erkennung von Duplikaten bei eindeutigen Indizes nicht mehr zum Abbruch eines – möglicherweise langwierigen – SQL-Exports. Problem: (3.1.4.147 -> .148) Positionieren auf VBA-Module und -Makros funktioniert jetzt einwandfrei. Unschönheit: Direktsuche im Modus "Neuer Datensatz" gibt jetzt einen Hinweiston. Vorher wurde brav gesucht, was ein unschönes Verhalten an der Oberfläche zur Folge hatte. Feature: Timeout der Direktsuche ist konfigurierbar. Dazu muss entweder eine Datenbank-, eine öffentliche oder eine private Benutzereigenschaft "DirectSearchTimeout" vergeben werden, die den neuen Timeout-Wert in Millisekunden angibt. Die private Benutzereigenschaft hat Vorrang vor der öffentlichen, die wiederum Vorrang vor der DB-Eigenschaft hat. Lässt sich der Wert der Eigenschaft nicht in eine ganze Zahl umwandeln oder ist das Ergebnis orgAnice SQL Versionen - Seite 336 von 510 eine negative Zahl, wird der Wert ignoriert. Standardwert ist 1000 (eine Sekunde). Bug: SQL: OrgBasic-Ausdrücke der Form "Not (? And ?)" (und viele andere) wurden semantisch fehlerhaft nach SQL übersetzt, da der zu negierende Ausdruck nicht geklammert wurde. Beispiel: OrgBasic-Ausdruck: Not (A And B) SQL-Übersetzung (fehlerhaft): NOT A AND B (NOT A) AND B SQL-Übersetzung (korrekt): NOT (A AND B) Tweak: OrgData: Unterstützung für Tabellen-Eigenschaft "OrgDataNoAutoRecCount". Diese Tabellen-Eigenschaft wird für jede angezeigte Tabelle abgefragt und als Bool-Wert interpretiert. Ist sie True, so wird die Datensatzanzahl nur auf explizite Anforderung hin (Taste F5 bzw. Menüpunkt Ansicht/Aktualisieren) bestimmt. Die Anzeige in der Statuszeile ist unverändert, unbekannte Datensatzanzahlen werden als "?" dargestellt. orgAnice SQL Versionen - Seite 337 von 510 4.0.2.404 (31.01.2006) ActiveX COM: Aus einem VB-ActiveX-Control lässt sich per „Extender.Parent“ das OrgDataApplication-Objekt abfragen, dass das Control hält. Diese Eigenschaft ist im Initialize-Event des Controls noch nicht verfügbar, aber das InitProperties- und ReadProperties-Event ist ein guter Ort, um einmal diese Eigenschaft abzufragen und in einer Member-Variable des Controls festzuhalten. Alle Eigenschaften und Methoden des Extender-Objekts sind late-bounded und „freiwillig“ und werden erst bei Bedarf implementiert. Wo möglich, wird dabei Kompatibilität mit den Standard-Eigenschaften beibehalten. ActiveX COM: Neue Eigenschaft FormControl.ActiveXControl. Gibt das ActiveX-Control-Objekt zurück, das diesem FormControl zugeordnet ist. Funktioniert gegenwärtig nur im Benutzermodus, für Nicht-ActiveX-Controls oder im Konfigurationsmodus kommt der Fehler ORGDATA_E_CONTROLPROPNOTSUPPORTED. ActiveX: Beim Wechsel in den Konfigurationsmodus werden die verwendeten .OCXDateien freigegeben, so dass sie neu kompiliert werden können. (Bisher war dazu ein Schließen von OrgData notwendig.) ActiveX: Bei Controls, die aus mehreren Kind-Steuerelementen bestehen, funktioniert die Tab-Taste korrekt zur Fokus-Umschaltung zwischen den einzelnen KindControls. Nachteil: Beim Rückwärts-Tab wird trotzdem das erste Kind-Control aktiviert. ActiveX: Die Ambient-Eigenschaft Font steht zur Verfügung. Ambient-Eigenschaften sind eine Art Darstellungs-Richtlinie für Controls. Manche sind verbindlich, andere als Art Empfehlung anzusehen. Genaueres steht in der MSDN-Library unter „AmbientProperties object“. orgAnice SQL Versionen - Seite 338 von 510 4.0.2.405 (02.02.2006) ActiveX: Einem ActiveX-Control kann ein Feld eines beliebigen Typs zugewiesen werden. Wird kein Feld zugewiesen, wird das Control -- im Gegensatz zu eingebauten Controls -- trotzdem dargestellt. Der Feldwert wird über die IDispatch-Standardeigenschaft zugewiesen/abgefragt. Um in einem VB-ActiveX-Control eine (IDispatch-)Standardeigenschaft zu vergeben, ist wie folgt vorzugehen: Eine beliebig benannte Property mit Get, Let (und evtl. Set) Methoden implementieren, am besten Variant als Typ vergeben Menü „Extras/Prozedurattribute...“ auswählen Button „Weitere...“ betätigen Im Drop-Down „Prozedur-ID“ den Wert „(Voreinstellung)“ auswählen. (Hier wäre „(Standard)“ angebrachter, aber Übersetzer sind auch nur Menschen.) Die Datenbindung, die in demselben Dialog ausgewählt werden kann, ist bislang ohne Wirkung. -> 4.0.2.281a SQL: Die SQL-Hilfsfunktion __Org_Val verhielt sich anders als die OrgBasic-Funktion Val. Beispielsweise ergibt Val("1abc") bei der Auswertung 1, das war bei __Org_Val anders. Die Implementation von __Org_Val wurde korrigiert, um das Verhalten so gut wie möglich an das von Val anzupassen. Um die neue Funktion __Org_Val einzuspielen, muss die Datenbankstruktur nach SQL übernommen werden (per OrgSqlExport). Da die meisten Kunden von dieser Diskrepanz bisher nicht betroffen zu sein schienen, wurde darauf verzichtet, eine „Übernahme der Strukturänderungen“ verpflichtend zu machen. -> 3.1.4.149a Grafik: Wechseln zwischen Arbeitsbereichen geschieht unter Windows XP flackerfrei und unter Windows 2000 und früher mit weniger Flackern. Grafik: Grafikfehler (schwarzer Rand) beim Rechts-Scroll eines ListViews in Verbindung mit ImageList-Spalten behoben. orgAnice SQL Versionen - Seite 339 von 510 4.0.2.406 (02.02.2006) Bug: Ein Datensatz war immer "dirty", sobald das zugehörige Formular-Control Labels enthielt. Eingeführt in 4.0.2.205. ActiveX Bug: ActiveX-Controls konnten nicht angelegt werden, das Verhalten nach dem Anlegen eines ActiveX-Controls war „komisch“. orgAnice SQL Versionen - Seite 340 von 510 4.0.2.407 (11.02.2006) ActiveX Bug: Controls, bei denen CanGetFocus auf False gesetzt war (z.B. Labels), bekamen trotzdem den Fokus zugewiesen. Eingeführt in 4.0.2.205. ActiveX Problem: Bei ActiveX-Controls, die nicht erzeugt werden konnten, denen aber ein Feld zugewiesen wurde, wurde das Platzhalter-Label mit dem Feldinhalt gefüllt. Jetzt wird auch hier die Ursache für den Fehler bei der Erzeugung angezeigt. Performance: Durch die in 4.0.2.405 eingebauten Veränderungen (Double-Buffering, Aktualisierung von Controls) hat sich die Darstellungs-Performance beim Datensatzwechsel verschlechtert. Verbesserung eingebaut. -> 4.0.2.338 COM: Database.NewSession und Server.NewDatabaseSession um optionalen Parameter Options erweitert. Wird ORGDB_NEWSESSION_RECONNECT übergeben, wird für die neue Datenbank-Session auch eine neue ADOVerbindung geöffnet. Standard ist ORGDB_NEWSESSION_NORMAL, hier wird die vorhandene ADO-Verbindung wiederverwendet. Bei KeyStorage-Tabellen zeigt dieser Schalter keine Wirkung. orgAnice SQL Versionen - Seite 341 von 510 4.0.2.408 (11.02.2006) ActiveX: Ist ein ActiveX-Control mit einem Feld verbunden, wird die Enabled-Eigenschaft des Controls in Abhängigkeit davon gesetzt, ob der Benutzer in dem Feld schreiben kann. ActiveX Problem: Ein ActiveX-Control, dessen Referenz von außen (z.B. VBA) gehalten wird, wird jetzt "sauber" freigegeben. ActiveX: Vertikale Höhenbestimmung eines Formulars und bedarfsweise Scrollen des Formulars funktioniert jetzt auch für ActiveX-Controls. ActiveX: Controls, die als "zur Laufzeit unsichtbar" markiert sind, erhalten keinen Fokus. „Echte“ Unterstützung zur Laufzeit unsichtbarer Controls steht noch aus. orgAnice SQL Versionen - Seite 342 von 510 4.0.2.409 (27.02.2006) Darstellung: Optimierung der Aktualisierung der Formular-Controls. Die Darstellung eines Formulars beim Wechseln eines Datensatzes sollte jetzt "flüssiger" erscheinen. Objekt-Editor: Tabelle: Wenn der aktuelle Benutzer keine Administrations-Rechte hat, werden die Tree-Items "Master-Relationen" und "Detail-Relationen" mit einem ReadOnly-Symbol versehen. Absturz: Ausdrucks-Editor-Objekt wurde vorzeitig freigegeben. -> 4.0.2.339 COM: OrgExport, OrgImport: Methode Application.Execute funktioniert, wenn vorher OpenDatabase aufgerufen wurde und Visible auf False gesetzt bleibt. Lizenzpolitik: Das schreibgeschützte Öffnen von Datenbanken mit abgelaufener oder ungültiger Lizenz ist wieder möglich. (Regression .128 -> .129) Lizenzpolitik: Abgelaufene oder ungültige Lizenzen können nicht mehr in eine Datenbank geschrieben werden. (Regression .128 -> .129) Pufferüberlauf: Puffer für Löschberechtigungs-Ausdruck war zu klein. Dadurch konnten Löschberechtigungs-Ausdrücke, die z.B. einen Umlaut enthielten, nicht vergeben werden. orgAnice SQL Versionen - Seite 343 von 510 4.0.2.410 (06.03.2006) Bug: Beim Hinzufügen eines Datensatzes per Insert (ohne vorher den Inhalt von Memofeldern festzulegen) werden auch die Memos korrekt dupliziert. Bisher hatte der duplizierte Datensatz physikalisch denselben Memo-Wert wie der Original-Datensatz, Änderungen am Memo waren dann in beiden Datensätzen sichtbar. Workaround für ältere Versionen: pTable.Record = pTable.Record pTable.Insert Problem: Field.Modify funktioniert auch, wenn es keinen aktuellen Datensatz (EOF) gibt. COM: Auch beim Start per COM wird geprüft, ob OrgDbServer und OrgData dieselbe Version haben. Falls nicht, wird die Fehlermeldung ORGDATA_E_INVALIDSERVERVERSION zurückgegeben. Die Prüfung erfolgt in den Methoden von Application, die eine Datenbank öffnen oder benutzen. OE: Objekt-Editor Formular-Control: Link-Button für die Schrift funktioniert auch, wenn keine Standard-Schrift ausgewählt ist. OE: Objekt-Editor Formular-Control: Text und Ausdruck sind nicht mehr gleichzeitig sichtbar, sondern können per Radio-Button gewählt werden. OE: Objekt-Editor Formular-Control: Eingabefeld für Dezimalstellen unter Eingabefelder für Text/Ausdruck verschoben. OE: Objekt-Editor Formular-Control: Eingabefelder für Makro sind nur für CommandButtons sichtbar. OE: OE Formular-Control: Label für Dezimalstellen ist deaktiviert, wenn das Dezimalstellen-Control deaktiviert ist. COM: Neue Eigenschaft FormControl.Name. Wird ein Name vergeben, kann das Control über seinen Namen in der FormControls-Auflistung gefunden werden. Die Eigenschaft wird auf Eindeutigkeit innerhalb der Collection geprüft, wenn kein leerer Name zugewiesen wird. Die neue Eigenschaft wird gegenwärtig nur für ActiveX-Controls unterstützt, das ist aber eine willkürliche Einschränkung, die jederzeit aufgehoben werden kann. OE: Objekt-Editor Formular-Control: Eingabefeld für Name erscheint bei Controls vom Typ "ActiveX-Control". -> 4.0.2.340 (-> 4.0.2.283) GPF: OrgDbServer, SQL-Tabellen: Der Aufruf Table.MarkCondition(Nothing) führt nicht mehr zu einem Absturz, sondern markiert (wie schon unter 3.1) alle Datensätze. Tweak: Tabelleneigenschaft "OrgDataLinkedDocDefaultFilePrq": Das Ergebnis der Auswertung wird nicht mehr um eventuelle Backslashes bereinigt. Dadurch ist (wie bisher auch unter 3.1) die Ablage von Dokumenten in Unterverzeichnissen wieder möglich. Eventuell enthaltene sonstige verbotene Zeichen (/ : * ? " < > |) werden nach wie vor entfernt. Änderung in CFilePath::RemoveForbiddenChars(). orgAnice SQL Versionen - Seite 344 von 510 4.0.2.411 (21.03.2006) COM: OrgData: Neue Eigenschaft FormControl.ProgId, speichert die ProgId (GUID oder Klassenname) eines ActiveX-Controls. Im Objekt-Editor wird diese Eigenschaft durch eine ComboBox repräsentiert, die mit den auf dem System registrierten ProgIDs gefüllt ist – daraus wird in der nächsten Version ein ListView. Hat ein ActiveX-FormControl keine ProgID, aber einen Text, wird angenommen, dass dieser Text die ProgID darstellt. Dadurch funktionieren mit bisherigen Versionen erstellte Datenbanken ohne Änderungen in dieser Version, aber nicht umgekehrt. Die automatische Übernahme der ProgID wird in einer der nächsten Versionen entfernt werden. COM: Neuer Fehlercode ORGDATA_E_NOPROGID (Keine ProgID für ActiveXFormControl vergeben). Wird bisher nur intern verwendet. Problem: Fokus: Die Abfrage, ob ein offenes Lookup-Control den Fokus hat, funktionierte seit 4.0.2.403 nicht richtig. Dadurch funktionierte der Fokus-Wechsel per Tab z.B. im Tabellen-Layout „Adressen“ nicht immer korrekt. ToDo ActiveX: Noch nicht implementiert sind folgende Features (Auszug, in voraussichtlicher Reihenfolge der Implementation): Objekt-Editor: Front-End zur bequemen Auswahl des einzufügenden Controls, neue Control-Eigenschaft zur Wahl des Control-Typs, Anzeige des Control-Icons im TreeView. Speichern und Laden von Control-Eigenschaften, Anzeige von Eigenschaftenseiten Alignment (linksbündig, zentriert, rechtsbündig, ...) Verschiedene Spezial-Features von Controls (unsichtbar zur Laufzeit, OK- bzw. Cancel-Funktionalität, Gruppe, Rahmen, ...) Einbinden von control-seitigen Menüs und Tools (falls unter VB möglich) Darstellung des Controls auch in Entwurfsansicht: Darstellung, Verschiebung, Änderung der Größe (optional) Verwendung von Datenbindung zur Festlegung des Feldwerts im Control Fensterlose (durchsichtige) Controls beliebiger Form (optional; VBControls mit der Eigenschaft „Windowless“ können dargestellt werden, erhalten aber eine rechteckige undurchsichtige Form) Neuer Control-Typ „Dokument-Darstellung“ zur Darstellung des Inhalts eines Dokuments auf der OrgData-Oberfläche (neues Feature, das durch die Einbindung von ActiveX-Controls sehr billig zu implementieren ist) orgAnice SQL Versionen - Seite 345 von 510 4.0.2.412 (24.03.2006) -> 4.0.2.284: Problem: OrgDbServer: Bei einer Markierungs- oder Summierungs-Operation sofort nach dem Öffnen einer Datenbank per COM wurden die Relationen nicht berücksichtigt, was zu einer fehlerhaften Markierung bzw. Summierung führte. Ärgernis: Seit 4.0.2.260 wird beim Schließen geprüft, ob Packager-Objekte geöffnet sind. Leider funktioniert das bei Outlook-Objekten nicht ganz zuverlässig. Jetzt werden beim Schließen von OrgData eventuell geöffnete interne OutlookObjekte (Dateiendung .msg) ignoriert. Problem: Während der gesamten Anzeigedauer des Kontext-Menüs des DokumentControls wurde eine OrgDbServer-Transaktion offen gehalten. Jetzt wird die Transaktion so kurz wie möglich gehalten. (Dieses Problem ist in der 200+Reihe entstanden.) -> 3.1.4.152: Problem: Beim Abarbeiten des AutoClose-Makros kann (jetzt wieder) über COM auf die Datenbank zugegriffen werden. Dieses Problem ist aller Wahrscheinlichkeit nach in 3.1.4.107 entstanden. neu in diesem Zweig: Problem: Formular-Controls: Ist eine ImageList für ein Formular-Control vergeben, kann das anzuzeigende Bild jetzt auch über die Position in der Image-List (1-basiert) gewählt werden. (Bisher konnte nur über den Namen zugegriffen werden.) Oberfläche: Das Dokument-Control kann jetzt auch eine ImageList und einen Ausdruck enthalten. Ist beides gesetzt, entscheidet der Ausdruck, welches Bild aus der ImageList über das Dokument-Icon gelegt wird. Gibt es kein entsprechendes Bild (z.B. Index 0 oder „“), wird auch keins dargestellt. Transparente Bilder werden unterstützt. Die Bilder werden auf 32x32 Pixel skaliert. Bug OE: OE Listenspalte: Feld-Combobox wurde duch kürzliche Änderungen in 400+ nicht geladen. Behoben. OE: OE Listenspalte und Formular-Control: Verweis-Button auf Schrift funktioniert korrekt, wenn sich der Status (Standard-/angepasste Schrift) ändert. OE: OE Formular-Control: Die ComboBox für den Steuerelement-Typ enthält neben der ProgID das entsprechende Control-Icon. OE: OE Formular-Control: Bei ActiveX-Controls erscheint ein neuer Zweig "Steuerelement-Typ" bei dem Control. Dort kann der Steuerelement-Typ durch Auswahl der Beschreibung (ListView) oder durch Eingabe der ProgID/CLSID gewählt werden. Zusätzlich wird der Pfad der OCX-Datei angezeigt. Die Liste wird beim Starten des Dialogs neu geladen, falls vorher ein Control neu registriert oder deregistriert wurde. Die Buttons „Eigenschaften...“ und „Information...“ sind bisher funktionslos. OE: OE: Flackern des OK-Buttons beim Wechseln zwischen Dialogen entfernt. Grafikfehler: Datensatz-Menü nach Rechtsklick wurde auf Multimonitor-Systemen an falscher Stelle angezeigt. Oberfläche: Das Dokument-Icon zeigt unten links ein kleines Schloss, wenn auf das Dokument keine Schreibrechte (z.B. wegen fehlender Dokument-Berechtigung) bestehen. Es wird ein offenes Schloss angezeigt, wenn zwar Schreibrechte bestehen, auf dem Dokument aber eine Schreibberechtigung gesetzt ist. Das Schloss erscheint an derselben Stelle wie das Link-Symbol. DokumentBerechtigungen auf Links bleiben wirkungslos, daher gibt es hier keine orgAnice SQL Versionen - Seite 346 von 510 Konflikte. Oberfläche: Verknüpfte Dokumente enthalten keine Menüpunkte für DokumentBerechtigungen, da hier die Dokument-Berechtigungen keinen Sinn machen (=wirkungslos bleiben). orgAnice SQL Versionen - Seite 347 von 510 4.0.2.413 (27.03.2006) -> 4.0.2.284: GPF: OrgDbServer: Aufruf von Table.SearchText mit einem „zu großen“ (=mehr Elemente als Felder in der Tabelle) Bool-Array als Argument führte zu einem Absturz. (Dieses Problem ist in orgAnice 4.0 entstanden.) neu in diesem Zweig: Oberfläche: Formular-Ansicht: Ist eine ComboBox (List/Edit/User) offen, wird beim ersten Druck auf Escape die ComboBox geschlossen, der Fokus verbleibt jedoch bei der ComboBox. Bisher ging der Fokus auf das Formular über, was nicht immer wünschenswert ist. Eine zweite Betätigung von Escape (bei geschlossener ComboBox) setzt jedoch den Fokus auf das Formular. OE: OE Steuerelement-Typ funktionierte aufgrund eines Programmierfehlers gar nicht. orgAnice SQL Versionen - Seite 348 von 510 4.0.2.414 (01.04.2006) neu in diesem Zweig: OE Problem: Steuerelement-Typ: Aktivieren der ProgID- und CLSID-Textfelder aktiviert den OK-Button noch nicht mehr -- erst das Setzen eines Werts. OE: Steuerelement-Typ: Die Buttons "Eigenschaften..." und "Information..." sind aktiviert und funktionsfähig, wenn Eigenschaftenseiten bzw. die AboutBox zu dem aktuell gewählten Steuerelement verfügbar sind. Die control-spezifischen Eigenschaften werden persistent gespeichert. COM: OrgData: Neue Eigenschaft FormControl.CustomProps. Gibt ein Array von Bytes zurück, das (bei Verwendung der passenden ProgId) die controlspezifischen Eigenschaften des Controls im Rohformat darstellt. Nützlich z.B. für Installer bzw. Customizer. OE: Formular-Control: Ist für ein ActiveX-Control kein Feld, dafür ein Name vergeben, wird dieser im TreeView angezeigt. -> 4.0.2.284: Bug: Die SQL-UDF __Org_StringToDate war fehlerhaft, sie gab ein um einen Tag verschobenes Datum zurück. Sie wird bei der Auswertung der CoreFunction StringToDate verwendet. Um die korrekte Version einzuspielen, muss eine Übernahme der Strukturänderungen mit OrgSqlExport erfolgen. orgAnice SQL Versionen - Seite 349 von 510 4.0.2.415 (11.04.2006) Grafikfehler OrgData: OE FormControl, ActiveX-Control: Das Icon für die ausgewählte ProgID wurde nicht dargestellt. OE OrgData: FormControl: Zwei Buttons "..." und "i" erscheinen neben der ComboBox zur Auswahl des Steuerelement-Typs. Die Funktionsweise ist identisch zu den Buttons "Eigenschaften..." bzw. "Information..." im OE Steuerelement-Typ. OE OrgData: Steuerelement-Typ: Die control-spezifischen Eigenschaften werden erst dann verworfen, wenn tatsächlich eine andere ProgID gewählt wird. (Wird also erst eine andere ProgID und dann wieder die bisher eingetragene ProgID gewählt und mit OK bestätigt, bleiben die control-spezifischen Eigenschaften bestehen. Dies gilt auch, wenn die control-spezifischen Eigenschaften für die andere ProgID angezeigt oder geändert wurden.) Lizenz OrgData: Das Feature "ActiveX-Controls" wird jetzt durch den FeatureCode "AX" (und nicht wie bisher durch "ORG41") gesteuert. Bei Datenbanken, die ActiveX-Controls enthalten, werden diese beim Start der Anwendung nicht geladen, wenn der FeatureCode "AX" fehlt. Sie erscheinen wieder, sobald eine Lizenz mit dem Feature-Code "AX" eingetragen wird. Wird allerdings zwischendurch irgendwas an der OrgData-Konfiguration verändert, sind die Controls für immer verloren. Daher sollte der Feature-Code aus Sicherheitsgründen vor dem Update auf diese Version nachgetragen werden. OE OrgData: FormControl: Die Auswahl, ob der Text oder der Ausdruck eingeblendet ist, erfolgt durch Radio-Buttons, die "normalen" Buttons ähneln. OE OrgData: FormControl CommandButton: Da hier die gleichzeitige Vergabe eines Ausdrucks und eines Texts Sinn macht, kann hier auch bei vorhandenem Ausdruck der Text bearbeitet werden. OE OrgData: FormControl: "Intelligente" Auswahl, ob Ausdruck oder Text angezeigt werden, wenn für ein Contol beides gleichzeitig möglich und sinnvoll ist (Makro-Button und Dokument-Control.) OE OrgData: FormControl Makro-Button: Die Standard- und BenutzerMakros erscheinen jetzt gleichzeitig in derselben ComboBox. Die mit "Default" bezeichnete Checkbox wurde zugunsten einer breiteren ComboBox entfernt. Um welchen Makro-Typ es sich handelt, ist anhand der Farbe des Icons (gelb/grün) ersichtlich. Die Makro-ComboBox erscheint in aufgeklapptem Zustand in der vollen Breite des Dialogs. OE OrgData: FormControl: Einstellungen für Makro-Button (Symbol und Makro) befinden sich in einer eigenen Group-Box. Das Label "Symbol:" wurde entfernt. OE OrgData: FormControl: Group-Boxen "Symbol und Makro" und orgAnice SQL Versionen - Seite 350 von 510 "Erscheinungsbild" leicht nach unten verschoben. OE OrgData: Bei Makro-Buttons und ActiveX-Controls erscheint jetzt im TreeView bzw. im ListView das zugehörige Icon, falls eins vergeben ist. Falls kein Icon vergeben ist, wird das bisherige Standard-Icon verwendet. Zu große Icons werden skaliert. orgAnice SQL Versionen - Seite 351 von 510 4.0.2.416 (12.04.2006) Grafik OrgData: Flackern beim Umschalten zwischen Arbeitsbereichen reduziert: Das zu aktivierende TableView wird erst nach dem vollständigen Anzeigen des neuen Arbeitsbereichs aktualisiert. ActiveX OrgData: Die Lebensdauer des ActiveX-Controls entspricht jetzt der Lebensdauer des FormControl-Objekts, falls die ProgId nicht geändert wird. Die Eigenschaft FormControl.ActiveXControl ist nur im Benutzermodus verfügbar, im Konfigurationsmodus erzeugt ein Aufruf den Fehler ORGDATA_E_NOUSEMODE. ActiveX OrgData: Schlägt das Erzeugen eines ActiveX-Controls fehl, wird bei jedem Anzeigeversuch erneut versucht, das Control zu erzeugen. (Bisher gab es immer nur einen ErzeugungsVersuch.) ActiveX OrgData: Die ActiveX-Control-Objekte sind nur dann aktiv, wenn OrgData sich im Benutzermodus befindet. Beim Wechsel in den Konfigurationsmodus werden sie freigegeben, so dass auch ggf. eine OCX-Datei ausgetauscht werden kann, ohne OrgData zu verlassen. Beim Wechsel in den Benutzermodus wird versucht, die Control-Objekte anzulegen, bevor eine Änderung der Anzeige erfolgt. COM OrgData: Neue Eigenschaften FormControls.Visible, FormControl.Visible, ListColumns.Visible, ListColumn.Visible. Bis auf FormControl.Visible werden diese Eigenschaften durch Aufruf von TableLayout.Visible des entsprechenden Tabellenlayouts realisiert. Ein Formular-Control kann trotz sichtbarem zugehörigen Tabellenlayout unsichtbar sein, z.B. wenn das zugehörige Feld lesegeschützt ist -- das spiegelt sich auch an der Eigenschaft FormControl.Visible wider. Anwendungen, die ActiveX-Controls dynamisch befüllen, sollten aus Performance-Gründen in jedem Fall prüfen, ob das jeweilige Control sichtbar ist, bevor sie es mit Daten füllen. Die Prüfung benötigt nicht viel Zeit, eine Anwendung kann aber träge werden, wenn sehr viele unsichtbare Controls ständig "mit gefüllt" werden. orgAnice SQL Versionen - Seite 352 von 510 4.0.2.417 (18.04.2006) ActiveX OrgData: Bei jedem Sichtbar-Machen eines ActiveX-Controls wird dessen Position explizit gesetzt. Es gab Probleme beim Wechsel zwischen Arbeitstebereichen: Ein TreeView-Control wurde ab der zweiten Darstellung immer in der linken oberen Ecke angezeigt. ActiveX OrgData: Beim Freigeben einer Formular-Ansicht mit einem ActiveXControl wird das Control-Objekt jetzt explizit geschlossen. (Bisher wurde es nur unsichtbar gemacht.) Das verhindert Abstürze beim Wechsel des Arbeitsbereichs oder beim Wechsel in den Konfigurationsmodus. orgAnice SQL Versionen - Seite 353 von 510 4.0.2.418 (23.04.2006) GPF OrgData: Tabellen-Layouts ohne Tabelle verursachen keinen Absturz mehr. Problem OrgData: Neu angelegte FormControls sind nicht mehr auf "Größe 0" gestutzt. Dieses Problem ist in der 400er-Reihe entstanden. orgAnice SQL Versionen - Seite 354 von 510 4.0.2.500 (18.04.2006) [abgezweigt von 4.0.2.417] Alle Module: Bis auf die Versionsnummer keine Änderungen. orgAnice SQL Versionen - Seite 355 von 510 4.0.2.501 (19.04.2006) SQL OrgDbServer: Performance-Flaschenhals bei Skip-Operationen für SQL Server 2005 entfernt. Die Skip-Operation sollte jetzt mindestens genauso schnell wie unter SQL Server 2000 funktionieren. Problem SQL: Enthielt eine Listenansicht einer untergeordneten Tabelle eine nicht nach SQL übersetzbare Spalte, so konnte schnelle Datensatz-Navigation in der übergeordneten Tabelle den Datensatzzeiger "durcheinanderbringen". Das tritt jetzt nicht mehr auf. SQL OrgDbServer: Table.GetValues feuert jetzt wieder Progress-Events. GPF OrgData: Tabellen-Layouts ohne Tabelle verursachen keinen Absturz mehr. orgAnice SQL Versionen - Seite 356 von 510 4.0.2.502 (23.04.2006) COM OrgDbServer: Neuer optionaler Parameter Options für Parser.CreateRequest. Durch Übergeben des Werts ORGDB_CREATEREQUEST_NOCHECK können auch syntaktisch falsche ParserRequests erzeugt werden, deren Gültigkeit erst bei der Auswertung geprüft wird. Problem OrgData: "(1719) Bug Prio B: orgAnice Data Pi: Formularcontrols verschwinden bei ungültigen Ausdrücken" behoben. FormularControls und Listenspalten, deren ParserRequests zwischenzeitlich ungültig geworden sind, werden weiterhin angezeigt, funktionieren aber nicht. Oberfläche OrgData: Schlägt das Auswerten eines ParserRequests bei einer Listenspalte oder bei einem Label-Control fehl, wird ein die Fehlerursache beschreibender Text in der Spalte bzw. im Control angezeigt. COM OrgDbServer: Neue Aufzählung OrgDbFieldEvalModesEnum. COM OrgDbServer: Neuer optionaler Parameter Mode für ParserRequest.Evaluate: Gibt an, was der ParserRequest beim Zugriff auf ein Feld verwenden soll. Mögliche Optionen sind: Lese-Puffer, SchreibPuffer, Dummy-Wert, leerer Wert, Wert des Default-Value-Prqs oder Verbot von Feldzugriffen. COM OrgDbServer: Neue Eigenschaft Field.SpecialValue. Unterscheidet sich von Table.Value dadurch, dass ein optionaler Parameter Mode bestimmt, was zurückgegeben wird. Mögliche Optionen sind: Lese-Puffer, Schreib-Puffer, Dummy-Wert, leerer Wert, Wert des Default-Value-Prqs oder Fehler. (Siehe auch ParserRequest.Evaluate.) Oberfläche OrgData Labels mit ParserRequest (dynamische Texte), Dokument4.1: Schaltflächen (-> ImageList-Overlay) und Makro-Buttons (-> dynamisches Tool-Tip) werden schon bei der Eingabe neuer Daten in die Eingabefelder aktualisiert, wenn der ParserRequest des Labels vom dem Control zugeordneten Feld abhängig ist. (Ausnahme: ActiveX-Controls, die direkt mit einem Feldwert verknüpft sind.) Besonders schön ist das am Tabellen-Layout "Adressen" zu sehen. Dieses Feature ist an den Feature-Code "ORG41" geknüpft. COM OrgDbServer: Neue Eigenschaft Table.SpecialRecord, analog Field.SpecialValue. SQL OrgDbServer: (1670) Bug Prio A: orgAnice Database Server SQL: Markieren anhand einer übergeordneten Tabelle [mit SichtbarkeitsBeschränkungen]: SQL-DB, Tbl.A übergeordnet zu Tbl.B. In Tbl. B sollen nur die Datensätze markiert werden, wo der Datensatz in Tbl. A markiert ist. Weder TblA->ID <> "" noch orgAnice SQL Versionen - Seite 357 von 510 Marked("TblA") liefern das gewünschte Ergebnis, wenn in TblA die Sichtbarkeit auf "Nur markierte" steht. Es werden statt dessen alle sichtbaren Datensätze markiert. (Ende TechInfo.) Dieses Problem ist behoben: Das Markieren (und alle anderen Bulk-Methoden) befolgen jetzt eventuelle Sichtbarkeitseinschänkungen auf übergeordneten und untergeordneten Tabellen, sowohl bei (SQL-)server- als auch bei clientseitiger (OrgDbServer) Abarbeitung. SQL OrgDbServer: (1661) Bug Prio A: orgAnice Database Server SQL: Markieren mit markierender Tabelle und eingeschränkter Sichtbarkeit der markierten Tabelle funktioniert jetzt korrekt auch unter SQL. SQL OrgDbServer: Wird beim Markieren per Ausdruck der aktuelle Datensatz unsichtbar, so wird korrekt auf den nächsten Datensatz positioniert. COM OrgDbServer: (1716) Bug Prio B: orgAnice Database Server 3.1: UserMarkExpression.Title - zulässige Länge. Der übergebene Titel darf jetzt sowohl bei UserMarkExpressions.Create als auch bei SumExpressions.Create (bzw. .Append) unbegrenzt lang sein, er wird ggf. bei 100 Zeichen abgeschnitten. Der Titel wird jetzt auch beim Ändern eines bestehenden UserMarkExpression- oder SumExpression-Objekts auf Eindeutigkeit geprüft. Problem OrgData [- Neu angelegte FormControls sind nicht mehr auf "Größe 0" > 4.0.2.418]: gestutzt. Dieses Problem ist in der 400er-Reihe entstanden. orgAnice SQL Versionen - Seite 358 von 510 4.0.2.503 (26.04.2006) COM OrgSqlExport: Erweiterung der Schnittstelle um drei Eigenschaften. Performance OrgSqlExport: Einlesen der Tabellen- und Felddefinitionen beschleunigt. Performance OrgSqlExport: Bei der Übernahme der Strukturänderungen nach SQL wird jetzt nicht mehr die gesamte Tabelle neu aufgebaut, wenn sich die interne Tabellenstruktur nicht geändert hat. Die Dauer der Übernahme verringert sich bei großen Datenbanken extrem, wenn nur wenige Tabellen verändert wurden. Beim wohl häufigsten Anwendungsfall "Feld hinzufügen" wird jetzt nur noch die eine betroffene Tabelle neu aufgebaut. (Wurde zu allen Tabellen z.B. ein Feld hinzugefügt, dauert der Vorgang immer noch so lange wie vorher.) Oberfläche OrgSqlExport: Textfelder und Checkboxes bei den "Erweiterten Optionen" sind ausgegraut, wenn sie nicht verfügbar sind oder keinen Sinn machen. Oberfläche OrgSqlExport: Neue Combobox bei "Übernahme der Strukturänderungen". Hier kann gewählt werden, ob die Strukturänderungen "schnell" (d.h. unter Beibehaltung der vorhandenen Tabellen und Indizes, wenn möglich), mit Neuaufbau der redundanten Indizes oder mit komplettem Neuaufbau aller Tabellen (wie bisher) stattfinden soll. Intern OrgSqlExport: Für Hilfs-UDFs wird nicht mehr ALTER FUNCTION aufgerufen, wenn sie sich nicht geändert haben. Falls diese auch in eigenen Triggern o.ä. verwendet werden, löst die Übernahme der Strukturänderungen nur dann einen (ignorierbaren) Fehler aus, wenn sich der Quelltext der betroffenen Hilfs-UDF verändert hat. orgAnice SQL Versionen - Seite 359 von 510 4.0.2.504 (11.05.2006) Intern OrgDbServer: Das Einspielen des Vertragsmanagers in eine vorhandene orgAnice-SQL-Datenbank mit anschließender Übernahme der Strukturänderungen funktioniert und erzeugt eine korrekte Datenbankstruktur. Problem OrgSqlExport: Die Übernahme der Strukturänderungen funktioniert wieder, wenn eine neue Tabelle angelegt wurde. Fehler eingebaut in .503. Problem OrgSqlExport: Die Erkennung, wann sich eine Tabelle nicht verändert hat, funktioniert jetzt auch unter SQL Server 2005. OrgPrint: Übernahme in die Arbeitsumgebung. Oberfläche OrgPrint: Open-Dialog an OrgData angepasst (Größe, Schrift, ...). Oberfläche OrgPrint: DbOpen-Dialog zeigt Versionsnummer "4.0" an. Bug OrgPrint: Einfügen von Grafiken funktioniert wieder. Laden von Layouts aus Dateien funktioniert wieder. Performance OrgPrint: Das Einlesen von Daten aus dem binären Objekt wurde beschleunigt. Performance OrgPrint: Einlesen aller Layouts vor dem Speichern weiter optimiert. Obefläche OrgPrint: Verschiedene Probleme in Verbindung mit Zoom und Scrollbalken behoben. Die Zoom-Reihenfolge beim MausradScrollen ist jetzt in beiden Richtungen identisch. Grafik OrgPrint: Die Darstellung der Vorschau erfolgt unter Windows XP flackerfrei, dafür etwas verzögert. Unter Windows 2000 ändert sich nichts. OrgPrint: Die Erst-Ansicht einer Vorschau startet mit korrekter vertikaler Scroll-Position. Problem OrgExprEditor: (1724) Bug Prio A: orgAnice Data SQL: Übernahme der Ausdrücke bei den Feldeingeschaften: Bearbeitet man im Objekt-Editor die Ausdrücke für "Vorbelegen mit", "Speichern mit" und "Beim Speichern prüfen" mit dem Ausdrucks-Editor, dann wird nach dem Klick auf OK im Ausdrucks-Editor kein Ausdruck übernommen, sondern der bestehende entfernt. Behoben. orgAnice SQL Versionen - Seite 360 von 510 4.0.2.505 (15.05.2006) Problem OrgData: Synchronisation von Timer-Events und der damit verbundenen verzögerten Darstellung von verknüpften Tabellen verbessert. OrgData konnte "durcheinander gebracht" werden, wenn z.B. im Table.Changed-Event DoEvents aufgerufen wurde, das konnte unter orgAnice SQL u.a. zur Fehlermeldung "Da der manuelle oder verteilte Transaktionsmodus aktiviert ist, kann keine neue Verbindung erstellt werden." führen. Performance OrgPrint: ClientText wurde bisher durch OrgPrint im ParserRequest durch die entsprechenden Werte ersetzt. Jetzt wird auf das entsprechende Parser-Event reagiert. Dadurch wird das Erzeugen der Reports ein wenig beschleunigt. (Die undokumentierten Core-Functions PrintedPage(), PrintedLine() usw. bleiben bestehen und werden nach wie vor selbst herausgefiltert.) Optimierung OrgPrint: Parser-Requests für Gruppensummen wurden zwangsweise neu übersetzt, was nicht notwendig ist. Bitte Gruppen- und Endsummen nochmal prüfen. Performance OrgPrint: Das Einlesen aller Layouts (z.B. vor dem ersten Speichern im Konfig-Modus) wurde erneut beschleunigt und dauert jetzt in der Standard-DB selbst beim Öffnen aus OrgData heraus kaum eine Sekunde. Oberfläche OrgPrint: Strg+N im Vorschau-Modus erzeugt kein neues Layout mehr. Oberfläche OrgPrint: Tippfehler in Statusleiste behoben (Datanbank -> Datenbank). Performance OrgPrint: Das Erzeugen von Reports, bei denen eine Filter-Bedingung vorliegt, erfolgt mit Hilfe von MarkCondition. Dadurch wird bei dem sehr häufigen Spezialfall "großer Datenbestand, vergleichsweise kleiner Report" eine enorme Beschleunigung erreicht, vor allem beim Zugriff auf SQL-Datenbanken. Die Performance bei Reports ohne Filter-Bedingung ändert sich nicht. Feature OrgPrint: Neuer Menüpunkt "Aktualisieren" (F5) in der Vorschau-Ansicht. COM OrgPrint: Wird OrgPrint aus einer exklusiven OrgData-Session heraus gestartet, wird der gesamte Zustand bestehend aus aktuellem Datensatz, Sichtbarkeit und aktivem Index für die betreffenden Tabellen wiederhergestellt. COM OrgPrint: Wird OrgPrint aus einer exklusiven OrgData-Session heraus gestartet, hat die Sichtbarkeit (nur markierte / nur nicht markierte) keinen Einfluss auf Reports mehr, die über FilterBedingungen arbeiten. Problem OrgPrint: Das schnelle Wechseln zwischen verschiedenen Layouts mit der Maus, während die Vorschau berechnet wurde, funktionierte unter gewissen Umständen nicht. Jetzt funktioniert die Auswahl eines anderen Layouts auch während der orgAnice SQL Versionen - Seite 361 von 510 Vorberechnung immer zuverlässig. Oberfläche OrgPrint: Während der Markierungs-Operation bei einem Report mit Bedingung kommen auch Statusmeldungen. Die MarkierungsOperation lässt sich auch abbrechen, indem z.B. ein anderes Layout ausgewählt wird. Konformität OrgPrint: Druckaufträge enthalten neben dem Layout-Namen auch den Anhang " - orgAnice Print". (Zu sehen in der DruckWarteschlange.) orgAnice SQL Versionen - Seite 362 von 510 4.0.2.506 (16.05.2006) GPF OrgPrint: OrgPrint stürzt nach der Auswahl eines Layouts nicht mehr ab. Das Problem bestand frühestens seit 4.0.2.504. orgAnice SQL Versionen - Seite 363 von 510 4.0.2.507 (20.05.2006) Oberfläche OrgExprEditor: Button für den neuen Operator "Like" eingebaut. Dadurch ist der Ausdrucks-Editor jetzt etwas breiter als vorher. Client-Support OrgDbServer: Neue CoreFunctions PrintedLine, PrintedGroup, PrintedPage, PrintedGroupLine, PrintedPageLine, PrintedCopy. Die Implementation ruft ClientText mit dem jeweiligen Client-String auf, z.B. ist PrintedLine() äquivalent zu ClientText("Line"). Performance OrgPrint: Bisher mussten ParserRequests, die Printed...()-Funktionen enthielten, für jeden Datensatz gepatcht und neu übersetzt werden. Dies ist nicht mehr nötig, da diese Funktionen im OrgDbServer definiert wurden. Das hat eine leichte Leistungssteigerung zur Folge. Texte OrgPrint: Unglückliche Formulierung "Rette Markierung..." durch "Hole Markierung..." ersetzt. SQL-Performance OrgDbServer: Die Funktion Table._GetValues arbeitet unter SQL mit einem synchronen ADO-Aufruf und erzeugt generell keine ProgressEvents mehr. Dadurch soll die Performance von OrgData verbessert werden. (Die Funktion ist "hidden, restricted" und wird nur von OrgData aufgerufen. Wenn diese Verbesserung Wirkung zeigt, wird für das unter VB zugängliche GetValues eine entsprechende Option eingebaut.) SQL-Performance OrgData: Das Bewegen des Datensatzzeigers (Skip) wird durch direktes Positionieren (Table.FindOid) und nicht durch Table.Skip realisiert, wenn sich der Zieldatensatz bereits in der Listenansicht befindet. Dadurch wird diese Operation unter SQL schneller ausgeführt. Ist der Zieldatensatz nicht sichtbar, wird wie gewohnt ein Skip durchgeführt. orgAnice SQL Versionen - Seite 364 von 510 4.0.2.508 (25.06.2006) Ausgabe OrgPrint: In jeder Spalte im Report hat der Text links und rechts einen Abstand von 0,5 mm von der Trennlinie. Der Abstand besteht auch, falls die Trennlinie nicht dargestellt wird. Problem OrgPrint: Ist kein Drucker installiert, kann trotzdem eine Vorschau angezeigt werden. Bisher geriet OrgPrint in diesem Fall in eine Endlosschleife. Ausgabe OrgPrint: Ist der Text in einer Zelle zu lang, wird dieser abgeschnitten. orgAnice SQL Versionen - Seite 365 von 510 4.0.2.509 (29.06.2006) Intern OrgSqlExport: Check-Contstraint mit dem Attribut "NOT FOR REPLICATION" versehen, um den Abgleich reibungsfreier zu gestalten. COM OrgPrint: Neue Methode Layout.PrintToDefaultPrinter. Macht dasselbe wie Layout.Print, letztere Methode funktioniert aber nicht mit "late binding". COM OrgPrint: Methoden Layout.HtmlExport und Layout.HtmlExportDlg um optionalen Parameter nRecordsPerPage erweitert. Wird dieser weggelassen oder wird ein Wert kleiner-gleich 0 übergeben, wird der bisherige Standardwert 20 verwendet. COM OrgPrint: Neue Methode Layout.Drop, löscht das Layout und speichert die Änderung sofort. Problem KsVersionReset: Unverschlüsselte Datenbanken werden korrekt zurückgesetzt. Diese Version funktioniert auch für 3.1-Datenbanken: Datenbanken in Version 3.1.4.* werden zu 3.1.4.80 (ca. Februar 2005) zurückgesetzt. COM OrgPrint: Neue Methode Application.Quit. Die Anwendung wird ohne Rücksicht auf eventuell geöffnete Dialoge, ungespeicherte Layouts etc. beendet. orgAnice SQL Versionen - Seite 366 von 510 4.0.2.510 (30.06.2006) Performance OrgSqlExport: Bei der Übernahme der Strukturänderungen wird kein Neuaufbau der Tabelle mehr benötigt, wenn SQL-Felder hinzugefügt werden müssen. (Entweder durch Hinzufügen eines Felds in der orgAnice-Tabelle, oder durch Erzeugen eines Index über einen Ausdruck.) Performance OrgSqlExport: Bei der Übernahme der Strukturänderungen wird kein Neuaufbau der Tabelle mehr benötigt, wenn Namen von SQLFeldern geändert werden müssen. (Beispielsweise durch Umbenennen eines Felds in der orgAnice-Tabelle.) orgAnice SQL Versionen - Seite 367 von 510 4.0.2.511 (08.07.2006) KsVersionReset: Dateien, die zuletzt mit Version 4.0 geöffnet wurden, werden immer auf Version 4.0.2.100 zurückgesetzt, zuletzt mit Version 3.1 geöffnete Dateien erhalten nach wie vor Version 3.1.4.80. Problem OrgPrint: Layouts mit mehr als 4096 Bytes Dateigröße lassen sich wieder einwandfrei aus Dateien einlesen. COM OrgPrint: Die Zuweisung Application.Mode = ORGPRINT_MODE_PREVIEW wird die Vorschau synchron ausgeführt, so dass direkt im Anschluss auch z.B. ein HTMLExport erfolgen kann. COM OrgPrint: Im Modus ORGPRINT_MODE_PREVIEW wird die Berechnung der Vorschau nach der Zuweisung Layouts.ActiveLayout = ... synchron durchgeführt. COM OrgPrint: Die Zuweisung Application.Standalone = False funktioniert korrekt. orgAnice SQL Versionen - Seite 368 von 510 4.0.2.512 (13.07.2006) Problem OrgImport: Die Auswahl "Neue Tabelle erzeugen" war immer deaktiviert. Jetzt ist sie verfügbar, falls die Quelldatenbank exklusiv geöffnet wird. KsVersionReset: Datenbanken in Version 3.1 werden auf 3.1.4.72 zurückgesetzt. orgAnice SQL Versionen - Seite 369 von 510 4.0.2.513 (21.07.2006) GPF OrgData: OE: Absturz bei Betätigen von History-Buttons behoben. Problem OrgPrint: Erstellen von HTML-Exports mit mehr als einer Seite funktioniert wieder korrekt. Der Fehler bestand seit 4.0.2.504 und ist durch Optimierung entstanden. Oberfläche OrgPrint: Im Menü "Datei" ist das "F12" bei dem Menüpunkt positioniert, der effektiv ausgeführt wird, wenn die Taste F12 betätigt wird. Die Taste F12 funktioniert jetzt auch, wenn kein Layout geladen ist. Hat der Benutzer keine Konfigurationsrechte, wird zwischen Vorschau und Layout-Ansicht umgeschaltet. orgAnice SQL Versionen - Seite 370 von 510 4.0.2.514 (27.07.2006) Problem OrgPrint: Wechsel in den Konfigurationsmodus ist jetzt wieder möglich. Problem besteht seit .513. orgAnice SQL Versionen - Seite 371 von 510 4.0.2.515 (07.08.2006) FeatureCode OrgData: Das Feature "Aktualisierung von dynamischen Texten während der Eingabe" kann jetzt auch durch den Feature-Code TU aktiviert werden. Der Feature-Code ORG41 funktioniert nach wie vor. Problem OrgSqlExport: Die Übernahme der Strukturänderungen nach Anlegen einer neuen Tabelle funktioniert wieder. Problem besteht vermutlich seit .503. orgAnice SQL Versionen - Seite 372 von 510 4.0.2.516 (17.08.2006) Oberfläche OrgData: Ein Dokument-Control erhält ein offenes Schloss als Overlay, wenn auf dem Dokument eine Schreib- und/oder eine Leseberechtigung vergeben ist und der aktive Benutzer das Dokument schreiben darf. Bisher gab es dieses Overlay nur bei einer vorhandenen Schreibberechtigung. GPF OrgDbServer: Pufferüberlauf in Core-Function Str behoben. Problem OrgData: Anzeigefehler von Formular-Layouts unter Windows 2000 behoben. Problem OrgPrint: Startet wieder unter Windows 2000. Text OrgSqlExport: Grammatikfehler behoben (Sammele -> Sammle). OE OrgData: Bei Formular-Controls, Listenspalten und Tabellenfeldern wird beim Aufruf des Ausdruckseditors sofort auf die betreffende Tabelle gesprungen. Oberfläche OrgData: (1745) Bug Prio A: orgAnice Data SQL: Angabe des Abbildungslistenindex über die .Text-Eigenschaft -- funktioniert wieder. Vermutlich entstanden in der 400er-Reihe, beim Einbau der ActiveX-Controls. Problem OrgDbServer: (1744) Bug Prio A: orgAnice Database Server SQL: Table.DeleteDetail -- funktioniert wieder. Entstehungszeitraum des Fehlers unklar. Problem OrgData: Mausrad-Befehle zum Navigieren und zur Indexauswahl werden im Konfigurationsmodus nicht mehr durchgeführt. Das Problem hatte die etwas komische Auswirkung, dass bei Betätigung des Mausrads im Konfigurationsmodus ListenDatensätze nach und nach verschwanden. Oberfläche OrgData: (1742) Bug Prio B: orgAnice Data SQL: Konfigurationsmodus: Menü "Datei": Die Menüpunkte "Reports..." und "Etiketten..." im Menü Datei sind genau dann aktiv, wenn der angemeldete Benutzer das OrgPrint-Binärobjekt lesen kann oder wenn es ganz fehlt. Die Menüpunkte "Importieren" und "Exportieren" sind immer aktiv, da Import und Export gegenwärtig einen eigenen Anmeldedialog starten. Intern OrgData: ActiveX-Controls sind auch verfügbar, wenn der Feature-Code ORG41 in der DB-Lizenz eingetragen ist. Problem OrgSqlExport: Wird ein Add-On in eine SQL-Datenbank eingespielt, und bringt dieses Add-On neue Tabellen mit SaveCheck-ParserRequests mit, werden bereits bei der ersten Übernahme der Strukturänderungen korrekte Trigger erzeugt. (Bisher wurde bei den betreffenden Triggern ein Leerstring statt eines Feldzugriffs verwendet.) Oberfläche OrgData Das sofortige Update dynamischer Texte und Bilder funktioniert 4.1: jetzt auch, wenn z.B. die erste Aktivität zu einem Vorgang angelegt wird (=wenn die Tabelle auf EOF steht). orgAnice SQL Versionen - Seite 373 von 510 4.0.2.517 (05.09.2006) Oberfläche OrgData: Menüpunkt "Datei/DBF importieren" im Konfigurationsmodus ist nur verfügbar, wenn die DB exklusiv geöffnet wurde. OE OrgData: Schreibgeschützte Objekte wurden im TreeView nicht gekennzeichnet. Entstanden in der 400er-Reihe. OE OrgData: Schönheitsfehler behoben ("<Explain>"). Problem OrgDbServer: Table.DeleteRecords funktioniert wieder, wenn in einer übergeordneten Tabelle Datensätze gelöscht werden sollen, die eine Bedingung erfüllen. Das Problem besteht vermutlich schon länger. orgAnice SQL Versionen - Seite 374 von 510 4.0.2.518 (02.10.2006) Oberfläche OrgData: Fokus-Probleme mit Euro-Control behoben. Oberfläche OrgPrint: Horizontale Position des Trennbalkens wird wieder korrekt zwischen Sitzungen gespeichert. Oberfläche OrgPrint: Shortcut Ctrl+D wechselt in den Vorschau-Modus, dies wird jetzt auch im Datei-Menü angezeigt. OE OrgData: Ist der Benutzer ohne Benutzer-Verwaltungsrechte angemeldet, werden die Radio-Buttons im Dialog "Benutzer" ausgegraut. COM OrgDbServer: Neue Eigenschaft ParserRequest.UsesAnyField. Gibt zurück, ob der ParserRequest auf irgendeine Feldvariable zugreift. orgAnice SQL Versionen - Seite 375 von 510 4.0.2.519 (11.10.2006) Problem OrgDbServer SQL: Fehler 0x800410C1 in Listenspalten behoben. Das Problem besteht seit Version .502. orgAnice SQL Versionen - Seite 376 von 510 4.0.2.520 (26.11.2006) Problem OrgDbServer: URLs konnten nicht als Verknüpfung gespeichert werden. Dieses Problem ist in der 300er-Reihe entstanden. Konfiguration OrgData: Unnötigen Separator im Menü Ansicht entfernt. Problem Konfiguration OrgData: "Gummiband" bei Markierung mehrerer Controls mit der Maus wurde nicht gezeichnet. Enstanden in der 500er-Reihe. COM OrgData: Laufzeitfehler 10 bei Zuweisung an FormControl.CustomProps innerhalb von VB behoben. Problem OrgDbServer: Eine Datenbank mit SQL-Tabellen, die ursprünglich mit einer Version vor .194 betrieben wurde und bei der die Anmeldung am SQL-Server fehlgeschlagen ist, liefert nicht mehr den Fehler 0x80041028 (ORGDB_E_KEYNOTFOUND). GPF OrgDbServer: Schreiben eines Datensatzes verursachte unter manchen Bedingungen innerhalb der No-Update-Prüfung einen Absturz. orgAnice SQL Versionen - Seite 377 von 510 4.0.2.521 (01.12.2006) COM OrgDbServer: Neues Nav-Flag ORGDB_NAV_NOSKIPCACHE. Bei Verwendung dieses Flags beim Skippen wird nicht auf den Skip-Cache zugegriffen. Bei Skip 0 wird dieses Flag automatisch gesetzt. Performance SQL OrgDbServer: Skip-Optimierung. Ab dem 2. Skip in Folge werden auf einen Schlag mehrere Datensätze gelesen und in einem internen Puffer gespeichert. Das führt zu einer Beschleunigung, da ein Lesen der nächsten n Datensätze sehr viel schneller geht als das n-fache Lesen des nächsten Datensatzes. Die Anzahl der vorgehaltenen Datensätze erhöht sich exponentiell mit der Basis 4: 1, 4, 16, 64, 256. Es werden maximal 256 Datensätze am Stück gelesen. Der Puffer bleibt für maximal eine Minute gültig. Er wird ungültig bei Verwendung einer anderen SkipDistanz als +1, beim Wechsel des aktiven Index, der Sichtbarkeit, beim anderweitigen Positionieren auf einen anderen Datensatz (z.B. per Find), bei unterschiedlicher Verwendung des ORGDB_NAV_NOFIXRELATIONS-Flags, bei Skip 0 und bei Aufruf von Skip mit ORGDB_NAV_NOSKIPCACHE. Wenn der Puffer ungültig wird, wird wieder mit Puffergröße 1 begonnen. Skips, die nicht aus dem Puffer bedient werden können, werden wie bisher ausgeführt. Performance OrgDbServer SQL: Die Skip-Optimierung "merkt" sich auch, wenn EOF erreicht wurde, und greift nicht unnötig auf den SQL-Server zu -- erst, wenn der Puffer veraltet ist. orgAnice SQL Versionen - Seite 378 von 510 4.0.2.522 (05.12.2006) Problem OrgDbServer SQL: Speichern eines Datensatzes invalidiert Skip-Puffer, wenn sich der Wert des aktiven Index verändert. Performance OrgDbServer SQL: Der Skip-Cache funktioniert auch rückwärts, allerdings entweder "nur rückwärts" oder "nur vorwärts". Eine Vorwärtsbewegung gefolgt von einer Rückwärtsbewegung wird nicht vom Cache bedient, sondern zieht einen Server-Zugriff nach sich. Performance OrgDbServer SQL: Der Skip-Cache greift unter manchen Bedingungen auch für Skip-Distanzen größer 1 bzw. kleiner als -1. orgAnice SQL Versionen - Seite 379 von 510 4.0.2.523 (06.12.2006) COM OrgDbServer: Wert der Konstante ORGDB_NAV_NOSKIPCACHE korrigiert. Problem OrgDbServer: Skip ohne ORGDB_NAV_NOEOF sprang manchmal beim letzten Datensatz nicht auf EOF. orgAnice SQL Versionen - Seite 380 von 510 4.0.2.524 (19.01.2007) Alle Module: Jahreszahl 2007. OrgSqlExport: Beim lokalen Server kann jetzt mit Hilfe einer Auswahlliste zwischen "MS SQL Server 2005 Express Edition" und "MS SQL Server Desktop Engine" gewählt werden. Als Instanzenname wird im ersten Fall "SQLEXPRESS", im zweite "ORGANICE" verwendet. OrgSqlExport: Das Protokoll wird im Unterordner "OrgSQLExport_Logs" des Datenbankordners ausgegeben (Es ist keine gute Idee in den Programmordner zu schreiben, unter Vista ist es sogar nicht möglich.) OrgSqlExport: Beim Übertragen der Änderungen über die COM-Schnittstelle (Methoden MakeConsistent, ExportFromODB, ExportFromODBEx) wird die Protokolldatei standardmäßig geschrieben. Bisher konnte es passieren, dass aufgrund der Einschränkungen der Länge der Textbox nicht das gesamte Protokoll betrachtet werden konnte. OrgSqlExport: Copyright angepasst: (c) orgAnice Software GmbH 2004-2007. orgAnice SQL Versionen - Seite 381 von 510 4.0.2.525 (22.01.2007) VB-Projekte: Jahreszahl 2007 beim Copyright. orgAnice SQL Versionen - Seite 382 von 510 4.0.2.526 (26.01.2007) Lizenzpolitik OrgDbServer: Das Feature Skip-Cache ist für alle Benutzer freigegeben. orgAnice SQL Versionen - Seite 383 von 510 4.0.2.600 (08.08.2006) [abgezweigt von 4.0.2.512] COM OrgDbServer: Neuer Parameter Options für Table.GetValues. Neben ORGDB_GETVALUES_NORMAL sind ORGDB_GETVALUES_NOPROGRESS und ORGDB_GETVALUES_FASTDOC verfügbar. Die erste Option sorgt dafür, dass keine Progress-Events kommen, die zweite Option verzichtet unter orgAnice SQL auf die Prüfung, ob ein internes Dokument tatsächlich vorhanden ist, und arbeitet dadurch etwas schneller. COM OrgDbServer: Neuer Schalter ORGDB_GETVALUES_NOTIMESLICE, ermöglicht das Auslesen aller Datensätze innerhalb einer exklusiven Transaktion. Nur für KeyStorage-Tabellen relevant. Performance OrgData: Beim Füllen der Listenansicht wird keine eigene Transaktion mehr gestartet. Performance OrgData: Beim Lesen eines Datensatzes wird keine externe Transaktion mehr verwendet. Performance OrgData: Verwendung von ORGDB_GETVALUES_FASTDOC für das Füllen der Listenansicht. GPF OrgData: OE: Absturz bei Betätigen von History-Buttons behoben. Performance OrgDbServer: Einige unter SQL unnötige BeginTransaction-Aufrufe finden nur noch in der KeyStorage-Variante statt. COM OrgDbServer: Neue Eigenschaft Document.IsOpenInOtherSession As Boolean. Oberfläche OrgData Kann ein Dokument nicht zum Schreiben geöffnet werden, wird 4.1: in einer MessageBox der Grund dafür (Berechtigungs-Problem oder "offen in anderer Session") angezeigt. Dieses Feature benötigt den Feature-Code ORG41. COM OrgDbServer: Die Methoden Document.DoVerb und Verb.Do haben einen neuen optionalen parameter Options, mit dem zusätzlich festgelegt werden kann, ob das Dokument schreibgeschützt (ORGDB_DOVERB_READONLY) oder zum Schreib-LeseZugriff (ORGDB_DOVERB_READWRITE) geöffnet werden soll. Der Standardwert ORGDB_DOVERB_NORMAL löst das bisherige Verhalten aus (Schreib-Lese-Zugriff, wenn möglich, sonst schreibgeschützt). Der neue Fehlercode ORGDB_E_DOCUMENTLOCKED kommt, wenn Schreib-LeseZugriff gefordert ist, aber nicht gewährt werden kann. Problem OrgData: Ist ein Dokument, egal aus welchem Grund, für die Bearbeitung gesperrt, und der Benutzer bestätigt, dass er das Dokument schreibgeschützt öffnen möchte, wird das Dokument in jedem Fall schreibgeschützt geöffnet, selbst wenn die Sperre inzwischen aufgehoben wurde. Oberfläche OrgData Wird beim Öffnen eines Dokuments (über Button, Menü oder 4.1: ListView) die Shift-Taste festgehalten, wird das Dokument schreibgeschützt geöffnet, selbst wenn Schreibzugriff möglich orgAnice SQL Versionen - Seite 384 von 510 wäre. Die Message-Box, die vor dem Schreibschutz warnt, entfällt in diesem Fall. Dieses Feature benötigt den FeatureCode ORG41. COM OrgDbServer: Neue Methode Document.Refresh, liest den Header (Berechtigungen, Schreibschutz, ...) neu ein. COM OrgDbServer: Neue Fehlermeldung ORGDB_E_DOCUMENTHEADERCHANGED. Problem OrgDbServer: Das Setzen des Besitzers oder der Berechtigungen eines Dokuments sperrt das Dokument nicht mehr exklusiv. Oberfläche OrgData: Direkt vor dem Öffnen eines Dokuments wird Document.Refresh aufgerufen. Problem OrgData: Ist ein Dokument schreibgeschützt geöffnet, wird beim erneuten Öffnen desselben Dokuments über die Kommandoschaltfläche nicht nochmal gefragt, ob das Dokument schreibgeschützt geöffnet werden soll. Oberfläche OrgData: Bei Wahl des Menüpunkts "Aktualisieren" im Benutzermodus (F5) werden alle Änderungen an den aktuell ausgewählten Dokumenten (z.B. Berechtigungen, ...) in den jeweiligen Dokument-Controls sichtbar. COM OrgDbServer: Neuer Fehlercode ORGDB_E_DOCUMENTDELETED. Intern OrgDbServer: Wird ein Dokument des aktuellen Datensatzes in einer anderen Session gelöscht, führt der Zugriff darauf zum neuen Fehlercode ORGDB_E_DOCUMENTDELETED. Oberfläche OrgData: Der Fall "Aktuell sichtbares Dokument wurde in einer anderen Session gelöscht" wird korrekt abgehandelt. Oberfläche OrgData: Die Menüpunkte "Schließen" und "Speichern und schließen" im Kontextmenü des Dokument-Controls sind für PackagerObjekte nicht mehr verfügbar, da funktionslos. COM OrgDbServer: Das Duplizieren von Datensätzen mit lesegeschützten Dokumenten per Table.Insert funktioniert. Das betreffende Dokument fehlt im Duplikat-Datensatz. Oberfläche OrgData: Beim Duplizieren von Dokumenten, die mit einem Lese- oder Schreibschutz ausgestattet sind, werden die betreffenden Dokument-Controls geleert. Dies entspricht der Vorgehensweise des OrgDbServers, nur erhält der Benutzer dadurch schon vorher optisches Feedback. Oberfläche OrgData: Vor dem Duplizieren eines Datensatzes werden dessen Dokumente aktualisiert, um veränderte Berechtigungen etc. zu erfassen. Problem OrgPrint: Erstellen von HTML-Exports mit mehr als einer Seite funktioniert wieder korrekt. Der Fehler bestand seit 4.0.2.504 und ist durch Optimierung entstanden. Oberfläche OrgPrint: Im Menü "Datei" ist das "F12" bei dem Menüpunkt positioniert, der effektiv ausgeführt wird, wenn die Taste F12 betätigt wird. Die Taste F12 funktioniert jetzt auch, wenn kein Layout geladen orgAnice SQL Versionen - Seite 385 von 510 ist. Hat der Benutzer keine Konfigurationsrechte, wird zwischen Vorschau und Layout-Ansicht umgeschaltet. Problem OrgPrint: Wechsel in den Konfigurationsmodus ist jetzt wieder möglich. Problem besteht seit .513. FeatureCode OrgData: Das Feature "Aktualisierung von dynamischen Texten während der Eingabe" kann jetzt auch durch den Feature-Code TU aktiviert werden. Der Feature-Code ORG41 funktioniert nach wie vor. Problem OrgSqlExport: Die Übernahme der Strukturänderungen nach Anlegen einer neuen Tabelle funktioniert wieder. Problem besteht vermutlich seit .503. Oberfläche OrgData: Ein Dokument-Control erhält ein offenes Schloss als Overlay, wenn auf dem Dokument eine Schreib- und/oder eine Leseberechtigung vergeben ist und der aktive Benutzer das Dokument schreiben darf. Bisher gab es dieses Overlay nur bei einer vorhandenen Schreibberechtigung. orgAnice SQL Versionen - Seite 386 von 510 4.0.2.601 (17.08.2006) Oberfläche OrgData: Dokument-Icons sehen wieder gut aus. Entstanden in .600. COM OrgData: Die Eigenschaft FormControls.ActiveFormControl funktioniert jetzt auch für schreibenden Zugriff, hier kann eine Position in der Aufzählung, ein FormControl-Objekt dieses Formulars oder ein Name übergeben werden. Implementiert ist sie als Aufruf von FormControl.SetFocus. COM OrgData: Die Eigenschaft Application.ActiveFormControl funktioniert jetzt auch für schreibenden Zugriff, hier kann ein FormControlObjekt eines beliebigen Formulars übergeben werden. Implementiert ist sie als Aufruf von FormControl.SetFocus. GPF OrgDbServer: Pufferüberlauf in Core-Function Str behoben. Problem OrgData: Anzeigefehler von Formular-Layouts unter Windows 2000 behoben. Problem OrgPrint: Startet wieder unter Windows 2000. Text OrgSqlExport: Grammatikfehler behoben (Sammele -> Sammle). OE OrgData: Bei Formular-Controls, Listenspalten und Tabellenfeldern wird beim Aufruf des Ausdruckseditors sofort auf die betreffende Tabelle gesprungen. Oberfläche OrgData: (1745) Bug Prio A: orgAnice Data SQL: Angabe des Abbildungslistenindex über die .Text-Eigenschaft -- funktioniert wieder. Vermutlich entstanden in der 400er-Reihe, beim Einbau der ActiveX-Controls. Problem OrgDbServer: (1744) Bug Prio A: orgAnice Database Server SQL: Table.DeleteDetail -- funktioniert wieder. Entstehungszeitraum des Fehlers unklar. Problem OrgData: Mausrad-Befehle zum Navigieren und zur Indexauswahl werden im Konfigurationsmodus nicht mehr durchgeführt. Das Problem hatte die etwas komische Auswirkung, dass bei Betätigung des Mausrads im Konfigurationsmodus ListenDatensätze nach und nach verschwanden. Oberfläche OrgData: (1742) Bug Prio B: orgAnice Data SQL: Konfigurationsmodus: Menü "Datei": Die Menüpunkte "Reports..." und "Etiketten..." im Menü Datei sind genau dann aktiv, wenn der angemeldete Benutzer das OrgPrint-Binärobjekt lesen kann oder wenn es ganz fehlt. Die Menüpunkte "Importieren" und "Exportieren" sind immer aktiv, da Import und Export gegenwärtig einen eigenen Anmeldedialog starten. Intern OrgData: ActiveX-Controls sind auch verfügbar, wenn der Feature-Code ORG41 in der DB-Lizenz eingetragen ist. Problem OrgSqlExport: Wird ein Add-On in eine SQL-Datenbank eingespielt, und bringt dieses Add-On neue Tabellen mit SaveCheck-ParserRequests mit, werden bereits bei der ersten Übernahme der Strukturänderungen korrekte Trigger erzeugt. (Bisher wurde bei orgAnice SQL Versionen - Seite 387 von 510 den betreffenden Triggern ein Leerstring statt eines Feldzugriffs verwendet.) Oberfläche OrgData Das sofortige Update dynamischer Texte und Bilder funktioniert 4.1: jetzt auch, wenn z.B. die erste Aktivität zu einem Vorgang angelegt wird (=wenn die Tabelle auf EOF steht). orgAnice SQL Versionen - Seite 388 von 510 4.0.2.602 (19.08.2006) Lizenz OrgDbServer: Das Lizenzformat wurde abwärtskompatibel erweitert. Zusätzlich zur Anzahl permanenter und konkurrierender Benutzer kann jetzt -- durch * getrennt -- ein dreistelliger Parameter angegeben werden. Für die Datenbanklizenz entspricht dieser Parameter der Höchstanzahl Tabellen. COM OrgDbServer: Neue Eigenschaft License.Parameter. OE OrgData: Lizenz: Der Parameter zu einer Lizenz wird angezeigt. Bei der Datenbank-Lizenz wird der Beschreibungstext sinngemäß zu "Höchstanzahl Tabellen" verändert. Das Warnungs-Textfeld, das mit Text gefüllt wird, wenn mit einer Lizenz etwas nicht stimmt, ist jetzt ein Edit-Control, um Platzproblemen vorzubeugen. OrgLicense: Parametrisierte Lizenzen können erzeugt werden. Die Kommandozeilenschnittstelle hat sich geändert: Nach der Anzahl konkurrierender Benutzer muss jetzt der Lizenzparameter folgen. Soll eine Lizenz keinen Parameter (=Anzahl Tabellen) bekommen, muss eine 0 übergeben werden. COM OrgDbServer: Neuer Fehlercode ORGDB_E_TOOMANYTABLES. Kommt, wenn die Datenbank eine parametrisierte Lizenz hat und wenn die Anzahl Tabellen überschritten wird. Das wird beim Anlegen von Tabellen und beim Festlegen der Lizenznummer geprüft. (Kein Parameter bedeutet keine Beschränkung.) COM OrgData: Neue Fehlercodes: ORGDATA_E_ADDONLICENSEMISSING (0x80042009) kommt, wenn Feature-Code OAR gesetzt ist, aber keine AddOn-Lizenz vom Typ ORGDATA vorhanden ist; ORGDATA_E_ADDONLICENSELOGON (0x8004200A) kommt, wenn der aktuelle Benutzer nicht in der OrgDataAddOn-Lizenz eingetragen ist. Lizenz OrgData: Unterstützung für Feature-Code OAR (OrgData AddOn-License Required) in Verbindung mit AddOn-Lizenzen vom Typ OrgData eingebaut. Ist der Feature-Code OAR gesetzt, muss eine AddOn-Lizenz vom Typ ORGDATA installiert sein, und der Benutzer, der mit OrgData arbeitet, muss für die Lizenz freigeschaltet sein. Bitte bis auf Weiteres nur permanente Lizenzen vergeben. Das exklusive Anmelden mit allen Rechten (DB- + Benutzer-Admin) ist immer möglich, um die Lizenz ggf. zu aktualisieren. Lizenz OrgDbServer: Bei Anmeldung an einer Datenbank mit Lizenztyp HOME wird das Öffnen mit DB-Administrationsrechten grundsätzlich mit dem neuen Fehlercode ORGDB_E_NOADMINLICENSE (0x800410B9) verweigert. Oberfläche OrgData: Bei den Lizenztypen HOME und NOVBA ist das Öffnen der VBA-IDE untersagt. orgAnice SQL Versionen - Seite 389 von 510 4.0.2.603 (24.08.2006) Alle Module: Eingeschränkte Lizenzen heißen jetzt "STANDARD" (keine Konfiguration) bzw. "CLASSIC" (kein VBA). COM OrgDbServer: Bei Datenbanken mit STANDARD-Lizenzen dürfen Tabellen, Felder, Indizes, Relationen und angepasste Funktionen nicht angelegt, geändert oder gelöscht werden; in diesem Fall kommt die Fehlermeldung ORGDATA_E_NOADMINLICENSE. Das Öffnen mit Verwaltungsrechten ist jedoch wieder erlaubt. Lizenz OrgData: Volle Unterstützung für STANDARD-Lizenzen eingebaut. Bei solchen Datenbanken kommt, wenn sich der Benutzer mit Verwaltungsrechten angemeldet hat, nach Anwahl des Schraubenschlüssel-Icons bzw. des Menüpunkts "Extras/Datenbank konfigurieren..." der Objekt-Editor im Benutzermodus zum Vorschein. Tabellen, Felder, Indizes, Relationen und Angepasste Funktionen dürfen nicht bearbeitet werden. Die OrgData-Objekte werden gar nicht dargestellt. Die ListViews für Felder und Indizes sind aktiviert, um das Scrollen zu ermöglichen, ansonsten funktionslos. "Datensätze ersetzen" und "Datensätze löschen" gibt es als Button im Objekt-Editor, für "Importieren" und "Exportieren" müssten noch ggf. Menüpunkte hinzugefügt werden. OrgErrorTexts: Fehlertext für ORGDB_E_NOADMINLICENSE sinngemäß angepasst. orgAnice SQL Versionen - Seite 390 von 510 4.0.2.604 (29.08.2006) GPF OrgDbServer: Durchführen von Konfigurations-Operationen, die bei STANDARD-Lizenzen verboten sind (z.B. neue Tabelle anlegen) führten zum kommentarlosen Absturz. Entstanden in .603. Oberfläche OrgData: In der Tool-Bar im Konfigurationsmodus fehlten einige Buttons, die jetzt wieder alle da sind. Entstanden in .602. orgAnice SQL Versionen - Seite 391 von 510 4.0.2.605 (30.08.2006) Problem OrgDbServer: In SQL-Datenbanken funktionieren Indizes über Memo-Felder korrekt. Das Problem bestand seit langer Zeit. Intern OrgPrint: Es weden nur COM-Methoden benutzt, die der OrgDbServer in Version 3.1.4.154 bereitstellt. Damit kann diese Version mit o.a. Version des Servers betrieben werden. orgAnice SQL Versionen - Seite 392 von 510 4.0.2.606 (05.09.2006) Performance OrgData: Das bisher obligatorische "Skip 0" bei jedem Wechsel des aktiven Tabellenlayouts oder Arbeitsbereichs entfällt. Nur, wenn die neue Tabelle auf EOF steht, wird ein GoTop versucht. Performance OrgData: Das Füllen der Listenansichten geschieht jetzt verzögert, wie auch schon das Nachführen verknüpfter Tabellen. Zuerst wird die Formularansicht gefüllt, erst nachdem alle Formularansichten gefüllt sind, werden nach und nach die Listenansichten aktualisiert. Befindet sich eine Listenansicht in der Aktualisierungs-Phase, wird das durch ein leeres Gitter gekennzeichnet. Auch das Wechseln zwischen Arbeitsbereichen und das Starten der Anwendung geht dadurch wesentlich schneller, da der Arbeitsbereich sofort dargestellt werden kann, wenn die Listen noch nicht vollständig geladen sind. Performance OrgData: Größenänderungen, die eine Veränderung der Zeilenanzahl einer Listenansicht nach sich ziehen, lesen keine Datensätze aus der Datenbank. Zeilen, zu denen keine Daten vorhanden sind, werden durch ein leeres Gitter dargestellt. Die Daten werden sofort nach Abschluss der Größenänderungs-Operation (=Loslassen der Maustaste) aktualisiert. Das betrifft das Verschieben aller Trennbalken und die Größenänderung des nicht maximierten OrgData-Fensters. Performance OrgData: Das Füllen der ListViews nach erfolgter Größenänderung geschieht jetzt ebenfalls verzögert. COM OrgDbServer: Neue Eigenschaften Database.DefaultReadPermission und Database.DefaultWritePermission. Gibt die StandardBerechtigung für neue Dokumente an. OE OrgData: Unterstützung für die neuen Eigenschaften Database.ReadPermission und Database.WritePermission im Zweig "Datenbank". OE OrgData: Berechtigungen dürfen nur gelöscht werden, wenn sich der Benutzer mit Benutzer-Verwaltungsrechten angemeldet hat. orgAnice SQL Versionen - Seite 393 von 510 4.0.2.607 (06.09.2006) Oberfläche OrgData: Menüpunkt "Datei/DBF importieren" im Konfigurationsmodus ist nur verfügbar, wenn die DB exklusiv geöffnet wurde. Problem OrgDbServer: Table.DeleteRecords funktioniert wieder, wenn in einer übergeordneten Tabelle Datensätze gelöscht werden sollen, die eine Bedingung erfüllen. Das Problem besteht vermutlich schon länger. orgAnice SQL Versionen - Seite 394 von 510 4.0.2.608 (07.09.2006) Oberfläche OrgData: Konfigurationsmodus: Bei Auswahl des Objekt-Editors für eine Listenspalte (rechte Maustaste) flackert das ListView weniger. Außerdem wird es nur dann horizontal verschoben, wenn die ausgewählte Spalte teilweise verdeckt ist. Oberfläche OrgData: Fokus-Probleme bei Tastaturnavigation für Euro-Control behoben. Oberfläche OrgImExport: Checkbox "Einstellungen festlegen" ist aktiviert, wenn bisher keine Import- bzw. Export-Regeln vorhanden waren und nach dem ersten Importieren bzw. Exportieren "Neu starten" gewählt wurde. Alle Module: Unterstützung für Nicht-Unicode-Betribssysteme (Windows 98, Windows Me) endgültig entfernt. orgAnice SQL Versionen - Seite 395 von 510 4.0.2.609 (12.09.2006) OE OrgData: Der "Löschen"-Knopf hat nicht mehr das "L" als Accelerator, da das in Konflikt mit einigen Dialogen steht. Oberfläche OrgPrint: Breite der Listenansicht wird wieder gespeichert. OE OrgData: Hinweis "nur NT" bei 4-GB-Dateigröße-Checkbox entfernt. Oberfläche OrgPrint: Shortcut Ctrl+D wechselt in den Vorschau-Modus, dies wird jetzt auch im Datei-Menü angezeigt. OE OrgData: Ist der Benutzer ohne Benutzer-Verwaltungsrechte angemeldet, werden die Radio-Buttons im Dialog "Benutzer" ausgegraut. Oberfläche OrgData: Wenn die Größenänderung einer Listenspalte dazu führt, dass eine Scrollbar eingefügt wird und sich dadurch die sichtbare Anzahl Zeilen verändert, entspricht das an der Oberfläche sichtbare Verhalten dem bei den anderen Größenänderungsoperationen (=leeres Gitter, das beim Loslassen der Maustaste gefüllt wird). Oberfläche OrgData: Die Darstellung der Listenansicht verläuft flüssiger und konsistent. Befindet sich das ListView im Nachlade-Vorgang, erscheint nach wie vor ein Gitter; das enthält allerdings nur noch so viele Zeilen, wie Datensätze in der bisherigen Listenansicht vorhanden waren. Außerdem wird beim Wechsel von Arbeitsbereichen generell ein vollständiges Gitter eingeblendet, bevor die Liste gefüllt ist. Oberfläche OrgData: Beim Start der Anwendung liegt über den Listenansichten ein Gitter, während die Liste gefüllt wird. Oberfläche OrgData: Schnelle Mausrad-Bewegungen in untergeordneten Tabellen bei aktiviertem ID-Index bringen die Liste einer übergeordneten Tabelle nicht mehr durcheinander. Dieses Problem besteht seit Version .606. COM OrgDbServer: Neues Flag ORGDB_NAV_NOREPOSITION. Der Aufruf Table Skip 0, ORGDB_NAV_NOREPOSITION feuert dieselben Events wie ein "echtes" Skip 0, greift aber nicht auf die Datenbank zu. Oberfläche OrgData: Beim Wechsel des aktiven Tabellenlayouts wird Table.Skip 0, ORGDB_NAV_NOREPOSITION aufgerufen. Dadurch wird z.B. die Fixierung der Relationen wiederhergestellt, was seit Version .606 nicht funktionierte. orgAnice SQL Versionen - Seite 396 von 510 4.0.2.611 (14.09.2006) Lizenzpolitik OrgData: Bei der CLASSIC-Lizenz ist definitiv kein Schreiben des OrgData_VBA-Binär-Objekts mehr möglich. Lizenzpolitik OrgData: Bei der CLASSIC-Lizenz wird VBA daran gehindert, die IDE anzuzeigen, beispielsweise wenn der VBA-Quellcode einen Fehler enthält. Standard-Lizenz OrgData: Beim Versuch, den Objekt-Editor anzuzeigen, wird ein ggf. veränderter Datensatz vorher nach Rückfrage gespeichert. orgAnice SQL Versionen - Seite 397 von 510 4.0.2.612 (25.09.2006) Oberfläche OrgData Enthält ein Titel eines statischen Nicht-3D-Labels, eines 4.1: Rahmen-Controls, einer Checkbox, eines Radio-Controls, einer Kommandoschaltfläche oder einer Registerkarte ein &, so wird in der Darstellung das nächste Zeichen unterstrichen. Je nach Systemeinstellung passiert das ab Windows 2000 erst, wenn die Alt-Taste festgehalten wird; im Konfigurationsmodus ist der Unterstrich unabhängig von der Systemeinstellung ständig sichtbar. Ein "&" kann durch Verwendung von && im Text des Steuerelements dargestellt werden. Problem OrgData: VBA-Editor ist wieder verfügbar. Dieses Problem besteht seit Version .611. orgAnice SQL Versionen - Seite 398 von 510 4.0.2.613 (02.10.2006) OrgData: Tool-Tips auf Listenspalten funktionieren wieder. OrgData: Radio-Control: Unterstrichenes Zeichen (Zugriffstaste) wird wie bei den anderen Controls angezeigt. OE OrgData: Anlegen und Löschen einer Listenspalte führt nicht mehr zum Absturz. Dieses Problem ist in der 600er-Reihe entstanden. COM OrgDbServer: Neue Eigenschaft ParserRequest.UsesAnyField. Gibt zurück, ob der ParserRequest auf irgendeine Feldvariable zugreift. Oberfläche OrgData: Ist einer der Feature-Codes TU oder ORG41 gesetzt, werden dynamische Texte permanent (=auch bei EOF) angezeigt, wenn sie auf kein Datenbankfeld verweisen. orgAnice SQL Versionen - Seite 399 von 510 4.0.2.614 (13.10.2006) Oberfläche OrgData: Enthält ein Arbeitsbereichsrahmen kein Tabellen-Layout, kam es bisher beim Verschieben eines der angrenzenden Trennbalken zu Schlieren; jetzt ist die Darstellung einwandfrei. Performance OrgData: Das Verschieben von Rahmen und Spalten im Konfigurationsmodus benötigt nicht mehr unnötig viel CPU-Zeit. Konfiguration OrgData: Rechtsklick auf einen Spalten- oder Zeilen-Trennbalken öffnet den Objekt-Editor so, dass gleich die/der zugehörige Arbeitbereichs-Spalte/-Rahmen ausgewählt ist. orgAnice SQL Versionen - Seite 400 von 510 4.0.2.615 (16.10.2006) VBA OrgData: Prozeduren in den Modulen Macros und UserMacros, die Parameter enthalten, sind nicht Bestandteil der Macros- bzw. UserMacros-Auflistung, da sie nicht als Makro aufgerufen werden können. Performance OrgData: Das Auffrischen der Macros-Aufzählung geschieht nur dann, wenn es wirklich notwendig ist: Beim ersten Mal und wenn eine Prozedur in den Modulen Macros oder UserMacros eingefügt, geändert oder gelöscht wurde. Dadurch wird der Objekt-Editor spürbar schneller geöffnet, besonders wenn viele Makros definiert sind. Oberfläche OrgData: Shortcut-Kollision im Konfigurations-Modus zwischen den Menüs "Anzeige" und "Anwendungs-Objekte" behoben. (Letzteres ist jetzt über Alt+W erreichbar.) Performance OrgData: Das Auffrischen der VbModules-Aufzählung geschieht nur dann, wenn es wirklich notwendig ist: Beim ersten Mal und wenn ein Modul hinzugefügt oder gelöscht wird. Intern OrgData: Das Auffrischen der Macros-Aufzählung geschieht auch dann, wenn das Modul Macros oder UserMacros gelöscht oder neu eingefügt wurde. COM OrgDbServer: Neue Eigenschaft Document.OleObject As Object. Gibt den Doc-Server (z.B. vom Typ Word.Document) zurück. Funktioniert nur, wenn das Dokument offen ist; wenn nicht, kommt der Fehler "Objekt unterstützt angeforderte Schnittstelle nicht". Oberfläche OrgData Wenn für ein Control eine Zugriffstaste (=Accelerator) vergeben 4.1: ist, kann dieses Control mit Alt + <Zugriffstaste> aktiviert werden. Handelt es sich um ein nicht aktivierbares Control (z.B. Label), wird das in der Tab-Reihenfolge nächste aktivierbare Control aktiviert. Auch Registerkarten können Zugriffstasten haben, in diesem Fall wird die entsprechende Registerkarte ausgewählt. Liegt das Control in einem anderen TabellenLayout, wird das andere Tabellenlayout vorher aktiviert. Sind in einem Arbeitsbereich mehrere Controls für dieselbe Zugriffstaste vergeben, werden diese nacheinander aktiviert. Eine Control-Zugriffstaste setzt eine ggf. vergebene MenüZugriffstaste außer Kraft. Die Betätigung einer Zugriffstaste für eine Kommandoschaltfläche (=Button) ruft das entsprechende Makro auf, ohne den Fokus auf den Button zu legen. Problem OrgDbServer SQL: Fehler 0x800410C1 in Listenspalten behoben. Das Problem besteht seit Version .502. Problem OrgDbServer: URLs konnten nicht als Verknüpfung gespeichert werden. Dieses Problem ist in der 300er-Reihe entstanden. orgAnice SQL Versionen - Seite 401 von 510 4.0.2.616 (23.10.2006) OrgData: Wenn ein Arbeitsbereich aktiviert wird (z.B. durch Positionierung im Objekt-Editor), der noch keiner Arbeitsbereichsgruppe zugeordnet ist, wird der bisherige aktive Arbeitsbereich beibehalten. Performance OrgData: Verschieben von Controls im Konfigurations-Modus geht jetzt flüssiger vonstatten. Problem OrgDbServer: Beim Anlegen von Relationen wurde die Primary-Eigenschaft manchmal nicht korrekt übernommen. Problem OE OrgData: Bearbeitung von CustomFunctions ist wieder möglich. Entstanden in .615. Problem OrgData: Absturz beim Aktivieren einer gegenwärtig nicht sichtbaren Listenspalte behoben (z.B. durch Navigation im Objekt-Editor). Konfiguration OrgData: Unnötigen Separator im Menü Ansicht entfernt. Problem Konfiguration OrgData: "Gummiband" bei Markierung mehrerer Controls mit der Maus wurde nicht gezeichnet. Entstanden in der 500er-Reihe. (>.520) Performance Konfiguration OrgData: Markierung mit "Gummiband" beschleunigt -- während der Markierung werden die Controls nicht mehr in der Statusleiste "mitgezählt". Feature Konfiguration OrgData: Während des Verschiebens oder der Größenänderung von Formular-Controls werden diese in den Vordergrund gebracht. Oberfläche OrgData: Alle Zieh-Operationen reagieren jetzt auf ein Wechsel der Anwendung (z.B. mit Alt+Tab) genauso wie auf das Loslassen der Maustaste. orgAnice SQL Versionen - Seite 402 von 510 4.0.2.617 (23.10.2006) Konfiguration OrgData: Drücken und Loslassen der linken Maustaste über einem Größenänderungs-Anker (ohne Bewegen der Maus) ändert die Größe des Controls nicht mehr. Eingebaut in .616. Konfiguration OrgData 4.1: Das Umschalten des Texts in der Statusleiste beim Auswählen von Controls erfolgt "flackerfrei". orgAnice SQL Versionen - Seite 403 von 510 4.0.2.618 (25.10.2006) Problem OrgData: TableLayout.NewRecord funktioniert wieder. orgAnice SQL Versionen - Seite 404 von 510 4.0.2.619 (25.10.2006) Feature Konfiguration OrgData 4.1: Rudimentäre Unterstützung für Kopieren/Ausschneiden/Löschen und Einfügen von mehreren Formular-Controls. Es gibt eine interne Control-Zwischenablage, die mit Strg+C/Strg+Ins gefüllt werden kann; Strg+V/Shift+Ins fügt diese Controls in die aktive Registerkarte oder ins aktive Tabellenlayout ein. Ausschneiden und Löschen funktioniert mit Strg+X/Shift+Del bzw. Del. Die Feldzuordnung bei den neuen Controls basiert auf Feldnamen, so dass Control-Mengen zwischen "ähnlichen" Tabellen kopiert werden können. Bei der Feldzuordnung wird die gewohnte Logik zugrunde gelegt: Dasselbe Feld darf nicht gleichzeitig in zwei Controls sichtbar sein, Feldtyp und Controltyp müssen zusammenpassen, ... . Nach dem Einfügen werden die neuen Controls ausgewählt. orgAnice SQL Versionen - Seite 405 von 510 4.0.2.620 (26.10.2006) GPF OE OrgData: Auswahl der Listenspalten-Auflistung führte zum Absturz. Problem OE OrgData: Auswahl der Listenspalten-Aufzählung in einem nicht sichtbaren Arbeitsbereich aktivierte das enthaltende Tabellenlayout nicht. orgAnice SQL Versionen - Seite 406 von 510 4.0.2.621 (26.10.2006) Konfiguration OrgData 4.1: Beim Einfügen von Controls aus der Zwischenablage werden diese direkt unter dem am weitesten unten liegenden Control eingefügt, analog zum manuellen Anlegen neuer Controls. COM OrgData: Laufzeitfehler 10 bei Zuweisung an FormControl.CustomProps innerhalb von VB behoben. Konfiguration OrgData 4.1: Beim Einfügen von Formular-Controls werden sie in der Collection-Reihenfolge vor dem ersten markierten Control positioniert, falls ein solches vorhanden ist. Andernfalls werden sie wie bisher ans Ende der Collection eingefügt. Konfiguration OrgData 4.1: Neuer Menübefehl "Interne Zwischenablage löschen". Konfiguration OrgData 4.1: Die Control-Zwischenablage ist Bestandteil der KonfigurationsDaten, wird also persistent gespeichert. orgAnice SQL Versionen - Seite 407 von 510 4.0.2.622 (27.10.2006) Problem Konfiguration OrgData 4.1: Beim Einfügen mehrerer Controls aus der Zwischenablage wird die Position der neuen Controls korrekt bestimmt. orgAnice SQL Versionen - Seite 408 von 510 4.0.2.623 (27.10.2006) Oberfläche OrgData Interne Änderungen 4.1: orgAnice SQL Versionen - Seite 409 von 510 4.0.2.624 (01.11.2006) Problem Konfiguration OrgData 4.1: Einfügen von mehreren Controls aus der Zwischenablage behält die Reihenfolge bei, bisher wurde sie umgedreht. Konfiguration OrgData 4.1: Beim Neuaufbau eines Formulars wird die vertikale ScrollPosition nach Möglichkeit beibehalten. Problem Konfiguration OrgData: Anzeige in der Statuszeile bei ausgewähltem Control zeigt korrekte y-Koordinate an, wenn das Formular einen ScrollBalken hat. Oberfläche OrgData Vertikale Scroll-Bar in Unterformularen lässt keinen Rand nach 4.1: unten. Konfiguration OrgData 4.1: Das Aktualisieren eines Formulars (z.B. nach Löschen eines Controls) geschieht flackerfrei. Oberfläche OrgData: Flackern im ListView reduziert. Feature Konfiguration OrgData 4.1: Wenn ein Formular-Control mit der Maus verschoben oder in der Größe verändert wird, oder wenn ein MarkierungsGummiband aufgespannt wird, wird die vertikale Scroll-Position des Formulars aktualisiert, um möglichst das ganze Control oder das ganze Markierungs-Rechteck sichbar zu machen. Problem OrgData: Es ist wieder möglich, mit der Maus in den Optionsfeldern eine Option auszuwählen. Dieses Problem ist in Version .616 entstanden. orgAnice SQL Versionen - Seite 410 von 510 4.0.2.625 (01.11.2006) Konfiguration OrgData 4.1: Beim Einfügen, Ausschneiden oder Löschen von Controls aus der oder in die Zwischenablage wird gefragt, ob die Position verschobener Controls gespeichert werden soll. orgAnice SQL Versionen - Seite 411 von 510 4.0.2.626 (01.11.2006) Konfiguration OrgData 4.1: Wird eine Gummiband-Markierung von außen (z.B. durch Alt+Tab) unterbrochen, werden keine Controls markiert. Konfiguration OrgData 4.1: Nach dem Löschen oder Ausschneiden eines Controls wird das nächste Control in der Tab-Reihenfolge ausgewählt. Oberfläche OrgData Neue Shortcuts Strgü+F6 und Strg+Shift+F6 zum Umschalten 4.1: zwischen Tabellenlayouts. Oberfläche OrgData Nur die Shortcuts des aktiven Tabellenlayouts sind aktiv. 4.1: COM OrgData 4.1: SubForm.Visible implementiert. Gibt True zurück, wenn das zugehörige Registerkarten-Control sichtbar ist und wenn das Unterformular ausgewählt ist. Feature OrgData 4.1: Die Anpassung der Feldzuordnung bei Formular-Controls geschieht mit derselben Logik wie beim Einfügen aus der Zwischenablage. Wenn für ein Tabellenlayout eine andere Tabelle gewählt wird, und es zu einem Control in der neuen Tabelle auch ein passendes Feld mit dem gleichen Namen gibt, wird dem Control das namensgleiche Feld in der neuen Tabelle zugewiesen. Oberfläche OrgData Eine Registerkarte, die keine (anzeigbaren) Controls enthält, 4.1: wird selbst nicht angezeigt. Performance OrgData 4.1: Der Neuaufbau eines Unterformulars (z.B. beim Einfügen eines Controls) aktualisiert das Haupt-Formular nicht. orgAnice SQL Versionen - Seite 412 von 510 4.0.2.627 (02.11.2006) Oberfläche OrgData Interne Änderungen 4.1: orgAnice SQL Versionen - Seite 413 von 510 4.0.2.628 (02.11.2006) Problem Oberfläche Darstellungsfehler bei ListViews behoben. Eingebaut in .624. OrgData: orgAnice SQL Versionen - Seite 414 von 510 4.0.2.629 (03.11.2006) Lizenzpolitik OrgDbServer: Update-Fähigkeit für STANDARD- und CLASSIC-Lizenzen sichergestellt. Lizenzpolitik OrgData: Update-Fähigkeit für STANDARD- und CLASSIC-Lizenzen sichergestellt. orgAnice SQL Versionen - Seite 415 von 510 4.0.2.630 (06.11.2006) Oberfläche OrgData: Wechsel des aktiven Index mit Strg+Shift+Links/Rechts oder Strg+Shift+Mausrad fragt bei verändertem Datensatz nach, ob dieser gespeichert werden soll. GPF OrgData: Anlegen von Formular-Controls führt nicht mehr zum Absturz, falls das zugehörige Formular nicht sichtbar ist. Das Problem besteht seit Version .626. Schönheitsfehler Konfiguration OrgData: Starten der Anwendung im Konfigurationsmodus (bei maximiertem Fenster) zeigt von Beginn an vollständig gefüllte Listen. (Bisher war eine Zeitlang nur ein Teil der Listen gefüllt, abhängig von der nicht maximierten Größe des Anwendungsfenster.) Das Problem besteht seit der verzögerten Aktualisierung der Listenansichten. OE OrgData: Arbeitsbereichs-Info-Dialog (bei Auswahl eines Arbeitsbereiches unter "Arbeitsbereiche der Gruppe") wird jetzt zu einem vollwertigen Arbeitsbereichs-Dialog, wenn auf den Pfeil-Button geklickt wird. Problem OrgPrint: Lesen und Schreiben von zu Reports oder Etiketten gehörenden Drucker-Einstellungen (Name, Papierformat, ...) funktioniert wieder. Dieses Problem ist mit der Umstellung nach Unicode in Version .608 entstanden. Performance OE OrgData: Übernahme der Änderungen bei der Formular-ControlsAufzählung beschleunigt. Performance OE OrgData 4.1: Bei der Aktualisierung eines Unterformulars wird nur das betroffene Unterformular und nicht mehr das gesamte Formular neu aufgebaut. Schönheitsfehler OrgData: Ist bei aktivem Konfigurationsmodus der aktuelle Arbeitsbereich oder die aktuelle Arbeitsbereichsgruppe für den aktiven Benutzer nicht verfügbar, so wird beim Wechsel in den Benutzermodus ein anderer Arbeitsbereich ausgewählt. orgAnice SQL Versionen - Seite 416 von 510 4.0.2.631 (07.11.2006) Problem OrgDbServer: Eine Datenbank mit SQL-Tabellen, die ursprünglich mit einer Version vor .194 betrieben wurde und bei der die Anmeldung am SQL-Server fehlgeschlagen ist, liefert nicht mehr den Fehler 0x80041028 (ORGDB_E_KEYNOTFOUND). Oberfläche OrgData: Flackern der Toolbar beim Umblättern zwischen Konfigurations- und Benutzermodus reduziert. OE OrgData: Flackern beim Umordnen von Items in ListViews reduziert. orgAnice SQL Versionen - Seite 417 von 510 4.0.2.632 (08.11.2006) Problem Oberfläche Die Anzeige in der Statuszeile, welchen Verwaltungsrechten OrgData: der Benutzer hat, ist wieder verfügbar. Dieses Problem ist kürzlich entstanden. Konfiguration OrgData 4.1: Einfügen aus der Zwischenablage fügt die neuen Controls in der Reihenfolge hinter dem letzten markierten Formular-Control ein. Ist kein Formular-Control ausgewählt, werden die neuen Controls ans Ende der Collection eingefügt. Das entspricht der Vorgehensweise beim Einfügen im Objekt-Editor. OE OrgData 4.1: Darstellung von ActiveX-Controls im TreeView verbessert, jetzt wird die ProgId angezeigt, falls dem Control kein Feld zugeordnet wurde. Änderungen an ProgId oder Control-Symbol werden sofort im TreeView sichtbar. OE OrgData 4.1: Das Aktualisieren des Symbols für ein Button-Control führt zur Aktualisierung des TreeViews. orgAnice SQL Versionen - Seite 418 von 510 4.0.2.633 (23.11.2006) OrgData: Enthält der Text eines Controls (z.B. Label) zwei &, wird nur die zweite Zugriffstaste aktiviert. Das entspricht der Anzeige unter Windows 2000 und XP. Steht ein & als letztes Zeichen, gibt es keine Zugriffstaste. Problem OrgData 4.1: Auch unter Windows 2000 verschwinden die ZugriffstastenUnterstriche bei Labeln nach dem Loslassen der Alt-Taste. Intern OrgData: Wenn der aktive Benutzer keine Schreibberechtigung auf das OrgData-Binärobjekt hat, wird die Anzeige der VBA-IDE (z.B. nach einem Fehler im VBA-Code) verhindert. orgAnice SQL Versionen - Seite 419 von 510 4.0.2.634 (23.11.2006) Alle Module: Nur interne Änderungen. orgAnice SQL Versionen - Seite 420 von 510 4.0.2.635 (23.11.2006) COM OrgDbServer: Neue Eigenschaft Database.CallNestingLevel. Gibt die Verschachtelungstiefe von COM-Aufrufen für dieses DatabaseObjekt zurück. Der Rückgabewert ist 0, wenn keine Verschachtelung vorliegt; innerhalb eines OrgDbServer-Events ist sie größer 0. Oberfläche OrgData: Listenansichten werden auch dann aktualisiert, wenn ein modaler Dialog offen ist. COM OrgDbServer: Im Table.Changed-Event ist die Eigenschaft Database.CallNestingLevel gleich Null, da das Event immer kurz vor Schluss der Abarbeitung einer COM-Methode gefeuert wird. Dadurch wird auch bei modalen Formularen, die auf Reaktion auf ein Changed-Event geöffnet werden, die Listenansicht in OrgData korrekt aktualisiert. orgAnice SQL Versionen - Seite 421 von 510 4.0.2.636 (23.11.2006) Intern SQL OrgDbServer: Beim Login werden alle Datensätze in der Session-Tabelle, die dieselbe SPID wie die aktuelle Session haben, gelöscht. Die gelöschten Datensätze können wegen Eindeutigkeit der SPID keiner lebendigen orgAnice-Session entsprechen. Problem SQL OrgDbServer: Ist unter SQL Server 2005 die Berechtigung VIEW SERVER STATE für den aktuellen Benutzer nicht gesetzt, funktioniert das "Aufräumen" der Session-Tabelle jetzt. (In diesem Fall kommt bei sp_who nur ein Datensatz (=mit der aktuellen Session) zurück, weswegen bei Vorgänger-Versionen jede neue Session die Session-Datensätze für die bisher aktiven Sessions entfernt hat.) orgAnice SQL Versionen - Seite 422 von 510 4.0.2.637 (28.11.2006) GPF OrgDbServer: Schreiben eines Datensatzes verursachte unter manchen Bedingungen (z.B. Datenbank von Computer-Bauer) innerhalb der No-Update-Prüfung einen Absturz. OE OrgData: Bei Benutzern wird im Baum der vollständige Name in Klammern angezeigt. OE OrgData: Einheitliches Erscheinungsbild für Info-Dialoge (verknüpfte Objekte: Berechtigter Benutzer, aktive Lizenz, Arbeitsbereich in einer Gruppe und über-/untergeordnete Relation). Der LinkButton ist oben rechts, die Überschrift ist zusätzlich unterstrichten und blau und kann angeklickt werden. Die meisten Controls sind vorhanden, so dass man auf Anhieb die Objekt-Eigenschaften sieht. Um sie zu bearbeiten oder um das Objekt zu löschen, muss man allerdings in den Objekt-Editor für das eigentliche Objekt wechseln -- mit Klick auf die Überschrift oder Betätigung des Link-Buttons. Problem OrgData: Die Anmeldung mit Verwaltungsrechten startet OrgData wieder im Konfigurationsmodus. Dieses Problem ist in .632 entstanden. GPF OrgData 4.1: Einfügen von Controls aus der Zwischenablage führte manchmal zu einer Schutzverletzung, jetzt nicht mehr. Problem OrgSqlExport: Es wird beim Export nur mit einer Connection gearbeitet, bisher wurden manchmal zwei Connections aufgebaut. orgAnice SQL Versionen - Seite 423 von 510 4.0.2.638 (28.11.2006) Problem OrgData: Index-Combobox wird beim Umschalten aus dem Konfigurations-Modus korrekt gefüllt. Dieses Problem bestand seit .631. Problem OrgSqlExport: Speicher-Probleme bei zu vielen Dokumenten behoben. Problem bestand seit .637. orgAnice SQL Versionen - Seite 424 von 510 4.0.2.639 (06.12.2006) Performance OrgDbServer: Übernahme der Neuerungen von Version .521 und .522. orgAnice SQL Versionen - Seite 425 von 510 4.0.2.640 (06.12.2006) Performance OrgDbServer: Übernahme der Neuerungen von Version .523. orgAnice SQL Versionen - Seite 426 von 510 4.0.2.641 (06.12.2006) Performance OrgDbServer: Unnötiges Nachschlagen in Detail-Tabellen entfernt. (Im Fall "Keine Ansprechpartner zu einer Adresse" hat Skip in Aktivitäten bisher jedesmal dafür gesorgt, dass die Ansprechpartner-Tabelle geprüft wurde.) Oberfläche OrgData Das verzögerte Aktualisieren der Listen funktionierte in 4.1: manchen Fällen nicht richtig. orgAnice SQL Versionen - Seite 427 von 510 4.0.2.642 (07.12.2006) Problem OrgDbServer SQL: Das Erzeugen einer neuen Session ohne ORGDB_NEWSESSION_RECONNECT sorgte dafür, dass in der ursprünglichen Session alle Anfragen den Fehler ORGDB_E_SESSION auslösten. Dieses Problem ist in .636 entstanden. orgAnice SQL Versionen - Seite 428 von 510 4.0.2.643 (19.12.2006) OE OrgData: Bei Feldern ist der Text "Beim Speichern prüfen" vollständig zu sehen. COM OrgDbServer: Neue Eigenschaften Table.ReadUserListPrq, Table.ReadPermissionListPrq, Table.WriteUserListPrq, Table.WritePermissionListPrq implementiert, die ParserRequests haben aber noch keine Wirkung. OE OrgData: Unterstützung für Lese- und Schreibberechtigungs-ListenAusdrücke bei Tabellen. Feature OrgDbServer 4.1: Ist ein WriteUserListPrq vergeben, wird beim Abfragen der Eigenschaft Table.CanWrite geprüft, ob der aktuelle Benutzer in der Liste auftaucht. Der WriteUserListPrq muss so formuliert sein, dass er eine mit Leerzeichen getrennte Liste von Benutzern zurückgibt, die den Datensatz schreiben dürfen. Wird trotzdem versucht, den Datensatz zu speichern, kommt der Fehlercode ORGDB_E_NORECORDWRITEPERMISSION. Ein Schreibverbot hat auch ein Löschverbot zur Folge. Bei Anmeldung mit Verwaltungsrechten dürfen alle Datensätze geschrieben und gelöscht werden. Dokumente in Datensätzen, die nicht geschrieben werden dürfen, sind auch schreibgeschützt. Soll allen Benutzern Zugang gewährt werden, sollte der Benutzerlisten-Parser-Request einen Leerstring zurückgeben. Ein aus einem Leerzeichen bestehender String verbietet allen Benutzern den Schreibzugriff. Oberfläche OrgData Hat der aktuelle Benutzer keine Schreibberechtigungen für den 4.1: aktuellen Datensatz, sind die Formular-Controls deaktiviert. Lizenzpolitik OrgDbServer 4.1: Die neuen Eigenschaften Table.ReadUserListPrq, Table.ReadPermissionListPrq, Table.WriteUserListPrq und Table.WritePermissionListPrq benötigen den Feature-Code ORG41. OE OrgData: Bei fehlendem Feature-Code ORG41 fehlen im Tabellen-Editor die Controls für die Datensatzberechtigungen. COM OrgDbServer: Zuweisung von Werten an No-Input-Felder wird immer mit ORGDB_E_NOINPUT quittiert. Problem OrgDbServer: Wenn explizit Schreib-Lese-Zugriff angefordert wurde, wird ein Dokument nicht mehr schreibgeschützt geöffnet. Feature Berechtigungen OrgDbServer 4.1: Das Löschen eines Master-Datensatzes ist nicht mehr möglich, wenn der aktuelle Benutzer für einen der Detail-Tabellen keine Löschberechtigung aufgrund des Löschausdrucks hat. Dieses Feature benötigt den Feature-Code ORG41. Feature Berechtigungen OrgDbServer 4.1: Das Löschen eines Master-Datensatzes ist nicht mehr möglich, wenn der aktuelle Benutzer in einer der Detail-Tabellen keine statische Löschberechtigung hat. Dieses Feature benötigt den Feature-Code ORG41. orgAnice SQL Versionen - Seite 429 von 510 Feature Berechtigungen OrgDbServer 4.1: Beim Löschen eines Datensatzes wird geprüft, ob Schreibberechtigung auf alle enthaltenen Dokumente besteht. Dieses Feature benötigt den Feature-Code ORG41. COM OrgDbServer: Die Prüfung, ob ein Dokument ersetzt werden darf, geschieht erst bei Table.Write. Das heißt, die Zuweisung eines neuen Dokuments an ein Dokumentfeld, das ein schreibgeschütztes Dokument enthält, funktioniert -- erst bei Table.Write kommt der Fehler. Grund für die Änderung ist, dass auch Table.Insert ausgeführt werden könnte, und dann ist die Zuweisung eines neuen Dokuments an das Feld legal. COM OrgDbServer: Neue Methode Document.Clone. Erzeugt eine Kopie des gegebenen Dokuments. Unter orgAnice 4.1 hat diese Kopie Standard-Berechtigungen wie ein neues Dokument. Performance OrgData: Dokument-Control: Überflüssige Document.Refresh-Aufrufe entfernt. COM OrgDbServer: Neuer Fehlercode ORGDB_E_CANTINSERTINTOVIEW kommt, wenn versucht wird, Table.Insert für eine Tabelle aufzurufen, die einer SQL-Sicht (orgAnice Portal) entspricht. COM OrgDbServer: Table.DeleteDetail ist als "veraltet" gekennzeichnet; diese Eigenschaft gibt immer True zurück. Feature Berechtigungen OrgDbServer 4.1: Löschberechtigungen auf untergeordnete Tabellen greifen nur dann, wenn in der untergeordneten Tabelle mindestens ein verknüpfter Datensatz vorhanden ist. Ist also eine Löschberechtigung auf die Tabelle "Kundennummern", aber nicht auf "Adressen" gesetzt, darf die Adresse nicht mehr gelöscht werden, sobald eine Kundennummer zugeordnet wurde. Das gilt auch für das Löschen mehrerer Datensätze per Table.DeleteRecords. Berechtigungen OrgDbServer 4.1: Das Löschen aller Datensätze einer Tabelle per Table.ClearRecords benötigt Verwaltungsrechte, da Löschberechtigungsausdrücke bzw. schreibgeschützte Dokumente vorhanden sein könnten, die nur bei Anmeldung mit Verwaltungsrechten "ausgehebelt" werden. Ohne FeatureCode ORG41 werden Löschberechtigunsausdrücke geprüft. Problem OrgDbServer: Document.CanRead und Document.CanWrite produzieren keinen Fehler mehr, wenn das Dokument lesegeschützt ist. Problem OrgDbServer SQL: Table.DetailRecords funktionierte unter manchen Umständen (z.B. geänderter aktiver Index in Detail-Tabelle) nicht korrekt. Berechtigungen OrgDbServer SQL 4.1: Table.DeleteRecords nimmt Rücksicht auf DatensatzLöschberechtigungen. Datensätze, die aufgrund eines Löschausdrucks nicht gelöscht werden dürfen, werden ignoriert und nicht mitgezählt. Das gilt auch für Datensätze in untergeordneten Tabellen -- in diesem Fall wird, falls ein DS in einer untergeordneten Tabelle nicht gelöscht werden konnte, der übergeordnete DS auch nicht gelöscht. Insofern kann es auch beim Löschen aller sichtbaren Datensätze dazu kommen, orgAnice SQL Versionen - Seite 430 von 510 dass eben nicht alle sichtbaren Datensätze gelöscht werden. Berechtigungen OrgDbServer 4.1: Table.DeleteRecords nimmt auch bei KeyStorage-Tabellen Rücksicht auf Datensatz- Löschberechtigungen. Lizenzpolitik OrgDbServer 4.1: Das Prüfen der Löschberechtigung beim Löschen mehrerer Datensätze per Table.DeleteRecords setzt den Feature-Code ORG41 voraus. Lizenzpolitik OrgDbServer 4.1: Der Fehlercode ORGDB_E_NOINSERTINTOVIEWS erfordert den Feature-Code ORG41. COM OrgDbServer 4.1: Neue Fehlercodes ORGDB_E_NODOCREADPERMISSION, ORGDB_E_NODOCWRITEPERMISSION, ORGDB_E_NORECORDWRITEPERMISSION, ORGDB_E_NORECORDDELETEPERMISSION, ORGDB_E_DEVELOPMENTUSER. Die eigenständigen Fehlercodes dienen der besseren Abgrenzung zwischen Objekt-, Dokument- und Datensatzberechtigungen bzw. zur Kennzeichnung der Sonderstellung des DEVELOPMENTBenutzers. Sie kommen (mit Ausnahme von ORGDB_E_DEVELOPMENTUSER) nur, wenn der FeatureCode ORG41 vorhanden ist -- sonst kommen stattdessen die bisherigen Fehlercodes ORGDB_E_NO*PERMISSION. Konfiguration OrgData 4.1: Im Dialog "Datensätze löschen" ist der Radio-Button "Alle Datensätze" nur beim Anmelden mit Verwaltungsrechten aktiv, falls der Feature-Code ORG41 vorhanden ist. COM OrgDbServer: Neue Eigenschaften Table.CanWriteRecord und Table.CanDeleteRecord. Im Unterschied zu CanWrite und CanDelete werden hier nur datensatzabhängige Schreib- und Löschberechtigungen geprüft. Ein Datensatz darf also gelöscht werden, wenn sowohl Table.CanDelete als auch Table.CanDeleteRecord True zurückgeben. Berechtigungen OrgDbServer 4.1: Datensatz-Schreibberechtigungen gelten nicht, wenn der aktuelle Benutzer mit Verwaltungsrechten angemeldet ist. Datensatz-Schreibberechtigungen wirken auch als Löschberechtigungen, d.h. Datensätze, auf die keine Schreibberechtigung besteht, dürfen auch nicht gelöscht werden. Oberfläche OrgData: Bei Datensätzen, die wegen des Löschausdrucks nicht gelöscht werden können, ist der Menüpunkt "Löschen" nicht verfügbar. Berechtigungen OrgDbServer 4.1: Das Ersetzen von Datensätzen per Table.ReplaceRecords berücksichtigt Datensatz-Schreibberechtigungen. Datensätze, auf die der Benutzer keine Berechtigung hat, werden stillschweigend ignoriert und nicht mitgezählt. Problem OrgDbServer SQL: Table.ReplaceRecords und Table.DeleteRecords funktionieren auch, wenn Löschberechtigungsausdrücke oder DatensatzSchreibberechtigungsausdrücke vergeben sind. Bisher kam in diesem Fall ORGDB_E_WRONGFIELDREDIRECTION. orgAnice SQL Versionen - Seite 431 von 510 4.0.2.644 (03.01.2007) Oberfläche OrgData: Das Euro-Control kann den Fokus erhalten, auch wenn es nicht beschreibbar ist (z.B. wegen Datensatzberechtigungen oder NoUpdate). Problem Oberfläche Auch schreibgeschützte Textfelder und Euro-Controls können OrgData: jetzt mit der Tab-Taste aktiviert werden. COM OrgDbServer 4.1: Neue Klasse GrantedPermissions. Hält die Berechtigungen fest, die ein Benutzer innehält. (Gegenstück zu PermittedUsers.) COM OrgDbServer 4.1: Neue Eigenschaft User.Permissions As GrantedPermissions. Liefert Zugang zu den Berechtigungen, die ein Benutzer innehat. Diese Eigenschaft erfordert den Feature-Code ORG41. COM OrgDbServer 4.1: Neue Klasse LicensedUsers. Hält die Benutzer fest, die für eine Lizenz registriert sind. (Gegenstück zu ActiveLicenses.) COM OrgDbServer 4.1: Neue Eigenschaft License.Users(Activity) As LicensedUsers. Liefert Zugang zu den Benutzern, die für eine Lizenz registriert sind. Diese Eigenschaft erfordert den Feature-Code ORG41. GPF OrgDbServer: Die Abfrage von User.Licenses(ORGDB_USERACTIVITY_PASSIVE) führt nicht mehr zum Absturz. Feature OrgDbServer 4.1: Bei Datensatz-Schreibberechtigungen wird auch der Berechtigungs-Listen-Ausdruck (WritePermissionListPrq) berücksichtigt. Alle Module: Jahreszahl 2007. OE OrgData 4.1: GrantedPermissions und LicensedUsers werden im ObjektEditor angezeigt. Fehlercode OrgDbServer 4.1: Beim Versuch, die Datenbanklizenz zu löschen, kommt der neue Fehlercode ORGDB_E_DBLICENSE, falls der FeatureCode ORG41 vorhanden ist. orgAnice SQL Versionen - Seite 432 von 510 4.0.2.645 (05.01.2007) Fehlercodes OrgDbServer 4.1: Beim Löschen eines Benutzers gibt der Fehlercode Aufschluss über den Grund. ORGDB_E_USERLOGGEDON -- Benutzer ist angemeldet. ORGDB_E_CURRENTUSER -- aktuelle Benutzer darf nicht gelöscht werden. ORGDB_E_LASTADMINUSER -Es muss ein Benutzer in der Datenbank verbleiben, der alle Verwaltungsrechte hat. Die neuen Fehlercodes kommen nur, wenn der Feature-Code ORG41 verfügbar ist. orgAnice SQL Versionen - Seite 433 von 510 4.0.2.646 (08.01.2007) Feature OrgDbServer 4.1 SQL: Leseberechtigungen rudimentär implementiert. Es wird die Liste berechtigter Benutzer (ReadUserListPrq) zur Laufzeit ausgewertet, eine Neu-Übernahme der Strukturänderungen ist nicht notwendig. Die Leseberechtigungen kaskadieren bisher nicht, eine fehlende Berechtigung auf Adressen hat keine Auswirkungen auf die Ansprechpartner. Die Performance für große Datenbanken ist vermutlich sehr schlecht, aber das Testen bei kleinen Datenbanken sollte ohne weiteres möglich sein und keine Fehler liefern. Problem OrgData: Verhalten beim Schreiben eines Datensatzes, der in einer anderen Session gelöscht wurde, verbessert. orgAnice SQL Versionen - Seite 434 von 510 4.0.2.647 (09.01.2007) Berechtigungen OrgDbServer 4.1: Bei Anmeldung mit Verwaltungsrechten werden keine Datensatz-Leseberechtigungen geprüft. Berechtigungen OrgDbServer 4.1: Beim Versuch, einen Datensatz zu löschen, der untergeordnete Datensätze mit fehlender Leseberechtigung hat, kommt der neue Fehlercode ORGDB_E_NORECORDREADPERMISSION. COM OrgDbServer: Bei Aufruf von Table.Delete mit ORGDB_NAV_NOEOF wird nach dem Löschen auf den in der Indexreihenfolge folgenden Datensatz positioniert (oder auf den vorherigen, falls der aktuelle DS der letzte ist). Das imitiert im Wesentlichen das Verhalten von OrgData. Bei Aufruf mit ORGDB_NAV_NORMAL wird wie bisher auf EOF positioniert. Berechtigungen OrgDbServer 4.1: Beim Ändern eines Datensatzes kann die Leseberechtigung für den aktuellen Benutzer verloren gehen. Bei Aufruf von Table.Write wird in diesem Fall auf einen benachtarten Datensatz positioniert (wie beim Löschen), falls diese Methode mit ORGDB_NAV_NOEOF aufgerufen wurde, und auf EOF sonst. Intern OrgData: Beim Schreiben und Löschen wird ORGDB_NAV_NOEOF verwendet. orgAnice SQL Versionen - Seite 435 von 510 4.0.2.648 (15.01.2007) Problem OrgDbServer: Nach dem Anlegen einer neuen Berechtigung können dieser wieder neue Benutzer hinzugefügt werden. Das Problem besteht seit .644. OE OrgData: Icons für Link-Collections (RelatedRelations, LicensedUsers, GrantedPermissions, PermittedUsers, ActiveLicenses) haben unten links alle einen Pfeil statt eines Plus. OE OrgData 4.1: Die Datensatzberechtigungen (Lesen, Schreiben, Löschen) sind in einem eigenen Dialog vertreten. OE OrgData: Titel-Bezeichnungen für Ausdrucks-Editor korrigiert. orgAnice SQL Versionen - Seite 436 von 510 4.0.2.649 (19.01.2007) Alle Module: Refakturierung. orgAnice SQL Versionen - Seite 437 von 510 4.0.2.650 (19.01.2007) Alle Module: Interne Änderungen orgAnice SQL Versionen - Seite 438 von 510 4.0.2.651 (22.01.2007) OrgSqlExport: ->.524. Intern OrgData: Verzögertes Laden von uxtheme.dll. Diese ist unter Windows 2000 nicht verfügbar, die Funktionstüchtigkeit des Programms sollte dadurch aber nicht beeinträchtigt werden. VB-Projekte: Jahreszahl 2007 beim Copyright. orgAnice SQL Versionen - Seite 439 von 510 4.0.2.652 (26.01.2007) VBA OrgData: Das ModeChanged-Makro wird jetzt auch beim Programmstart ausgeführt. OE OrgData: (1789) Bug Prio A: orgAnice Data SQL: Hinzufügen von neuen Feldern im Objekt-Editor. Funktioniert jetzt genauso wie bei den anderen Objekttypen, bei Festhalten von Shift wird das neue Feld vor dem aktuell ausgewählten Feld eingefügt. GPF OrgData: (1788) Bug Prio A: orgAnice Data SQL: Löschen von Arbeitsbereichsspalten im OE führt nicht mehr zum Absturz. orgAnice SQL Versionen - Seite 440 von 510 4.0.2.653 (30.01.2007) Problem OE OrgData: Felder: Bei Übernahme der Feldeigenschaften für ein bestehendes Feld (Doppelpfeil) wurde der OK-Button seit .652 nicht aktiviert. orgAnice SQL Versionen - Seite 441 von 510 4.0.2.654 (05.02.2007) Intern OrgSqlExport: Anzeige des Export-Protokolls wird durch ein spezielles Benutzer-Steuerelement "ExportLog" durchgeführt. Neben Verbesserungen beim Entwurf führt das auch zu einem schnelleren Einfügen neuer Protokolleinträge; außerdem entfällt (ab Windows 2000) die Längenbeschränkung für das Protokoll. OrgSqlExport: Einheitliche Ausgabe von Tabellennamen im Protokoll. OrgSqlExport: Dauer des Exportvorgangs wird mit ausgegeben. Zusätzlich wird bei Anfragen, die länger als eine Sekunde dauern, die Anfragedauer mit ausgegeben. OrgSqlExport 4.1: Für Datensatz-Leseberechtigungen werden die nötigen redundanten Felder und Trigger angelegt. (Funktioniert gegenwärtig nur für die als Benutzerliste gegebenen Berechtigungen.) Wenn einer der LeseberechtigungsAusdrücke nicht nach SQL übersetzbar ist, bricht der Vorgang ab, Dieses Feature benötigt den Feature-Code ORG41. COM OrgDbServer: Neue Eigenschaft Index.SqlExpression, benötigt für OrgSqlExport. OrgSqlExportEngin e: Aus der Anwendung OrgSqlExport wurde der Teil, der die Logik für den SQL-Export und für die Übernahme der Strukturänderungen zuständig ist, in eine neue ActiveX-DLL OrgSqlExportEngine.dll ausgelagert. Die Komponente stellt ein Objekt OrgSqlExportEngine.Application bereit. OrgDbServer: Die Methode Database.MakeConsistent greift direkt auf die neue OrgSqlExportEngine zu. Dadurch gestaltet sich die Übernahme der Strukturänderungen etwas schneller, da die OrgSqlExportEngine eine COM-DLL und nicht eine COM-EXE ist und die engine-seitigen Zugriffe auf den OrgDbServer schneller durchgeführt werden. COM OrgData: Verweis auf APC-Typbibliothek entfernt, da dafür keine Primary Interop Assembly verfügbar ist. Die Eigenschaft Application.Apc gibt deshalb jetzt ein Object zurück. OrgSqlExport .NET: OrgSqlExport nach VB.NET konvertiert. Der Dateiname ist OrgSqlExport2.exe, zur Ausführung wird das .NET Framework 2.0 benötigt. OE OrgData: Die Controls bei den Datensatzberechtigungen sind jetzt bei Anmeldung ohne Verwaltungsrechte ausgegraut. orgAnice SQL Versionen - Seite 442 von 510 4.0.2.655 (07.02.2007) OrgSqlExportEngin e: Die Datenbankeigenschaft OrgSqlExport_Options wird beim Export und bei der Übernahme der Strukturänderungen ausgewertet. Sie sollte mit Leerzeichen getrennte Liste von Konvertierungs-Optionen für OrgSqlExport als Zeichenkette enthalten. Bisher ist nur die Option "RECURSIVE_READ_PERMISSION_TRIGGERS" definiert, diese ist aber bisher ohne Effekt. Problem OrgSqlExportEngin e: Index-Trigger wurden manchmal bei der Übernahme der Strukturänderungen entfernt. Performance OrgSqlExportEngin e: Trigger für das Setzen der redundanten Datensatzberechtigungs-Felder in untergeordneten Tabellen optimiert. orgAnice SQL Versionen - Seite 443 von 510 4.0.2.656 (08.02.2007) OrgSqlExportEngin e: Enthält die Datenbank-Eigenschaft OrgSqlExport_Options (leerzeichen-getrennt) den Schalter NESTED_READ_PERMISSION_TRIGGERS als Text, werden die Trigger, die für die Fortpflanzung einer Leseberechtigung auf untergeordnete Tabellen verantwortlich sind, in Form von verschachtelten Triggern angelegt; ansonsten als flache Trigger. Bei der ersten Option löst z.B. ein Update der Leseberechtigung in der Tabelle "Adressen" einen Trigger aus, der die Tabelle "Vorgänge" aktualisiert; diese Aktualisierung löst wiederum einen Trigger in der Tabelle "Vorgänge" aus, die die Tabelle "Aktivitäten" aktualisiert. Bei der zweiten Option geschieht die AKtualisierung der "Aktivitäten"-Tabelle bereits im "Adressen"-Trigger. Damit die erste Option funktioniert, muss die Konfigurations-Eigenschaft "nested triggers" im SQL-Server aktiv sein. Bei Bulk-Operationen arbeitet die erste Option (verschachtelte Trigger) etwas schneller, allerdings lässt das nur bedingt eine Aussage über den laufenden Betrieb zu. orgAnice SQL Versionen - Seite 444 von 510 4.0.2.657 (08.02.2007) Lizenzpolitik: Der Lizenztyp mit unveränderlichem VBA heißt BASIC. Lizenzpolitik OrgDbServer: Der Lizenztyp von orgAnice-Datenbanken lässt sich (als einzige Ausnahme) von BASIC nach OFFICE ändern. orgAnice SQL Versionen - Seite 445 von 510 4.0.2.658 (11.02.2007) Lizenzpolitik OrgDbServer: Jeder Feature-Code in der Datenbank-Lizenz erzeugt automatisch ein Add-On-Lizenz-Objekt mit demselben Namen. Dieses Add-On-Lizenz-Objekt hat eine quasi unbeschränkte Höchstanzahl permanenter und konkurrierender Benutzer. Jeder Datenbank-Benutzer wird automatisch jeder FeatureCode-Lizenz zugeordnet, diese Zuordnung ist nicht veränderlich. Bei License.Type ist in diesem Fall das neue Flag ORGDB_LICENSE_DBFEATURE gesetzt. Da für diese Lizenz kein Lizenzschlüssel vorhanden ist, liefert License.Key nur den Lizenz-Namen zurück. Der Aufruf von License.Login bei einer solchen Lizenz funktioniert immer. Dadurch werden FeatureCodes transparent den Add-On-Lizenzen gleichgestellt: die Vergabe von Add-On-Lizenzen, die automatisch für alle Benutzer gelten, ist damit möglich. Ein Versuch, Änderungen an einem Feature-Lizenz-Objekt durchzuführen, wird mit dem neuen Fehlercode ORGDB_E_FEATURECODE quittiert. Feature-Codes und Add-On-Lizenzen teilen sich denselben Namensraum: Existiert in der DB-Lizenz ein Feature-Code XYZ, kann keine Add-On-Lizenz mit demselben Namen XYZ angelegt werden. OE OrgData: Aus Feature-Codes hergeleitete Add-On-Lizenzen werden korrekt dargestellt. COM OrgSqlExportEngin e: Schnittstelle aufgeräumt. OrgSqlExport: Verzicht auf Verwendung der OrgSqlExportEngine, der EngineCode ist wieder statisch in OrgSqlExport eingebunden. orgAnice SQL Versionen - Seite 446 von 510 4.0.2.659 (19.02.2007) Performance OrgDbServer SQL: Bei Änderung eines Datensatzes werden nur die Felder geschrieben, die sich tatsächlich geändert haben. COM OrgDbServer: Neue Eigenschaft Relation.SqlExpression. Gibt den VergleichsAusdruck zurück, der beim Join zweier Tabellen über diese Relation verwendet wird. OrgSqlExport: Verzicht auf Verwendung der OrgSqlExportEngine, der EngineCode ist wieder statisch in OrgSqlExport eingebunden. OrgSqlExportEngin e: Neue Eigenschaft Relation.SqlExpression wird verwendet, dadurch funktionieren jetzt auch Relationen über Nicht-StringIndizes in Verbindung mit Leseberechtigungen. Problem OrgData ActiveX: Positionierungs-Probleme bei übergroßem Formular in Tabellen-Layouts behoben. Dieses Problem bestand schon in der 400er-Reihe. Problem OrgData ActiveX: Z-Reihenfolge im Benutzermodus wird gemäß der Reihenfolge der Formular-Controls in der Auflistung gesetzt. OrgSqlExport: Das Anlegen von neuen Datensätzen unter Tabellen mit Leseberechtigungen und das Verschieben solcher Datensätze füllt das redundante Leseberechtigungs-Feld. Dieses Verhalten ist im _Redundand-Trigger mit eingebaut. Texte OrgSqlExport: "Definiere Trigger" statt "Erzeuge Trigger", wenn die eigentliche Erzeugung getrennt stattfindet. Konfiguration OrgDbServer 4.1: Bei Veränderung eines Leseberechtigungs-Ausdrucks wird eine Übernahme der Strukturänderungen nach SQL erforderlich. Intern OrgDbServer Beim Prüfen der Datensatz-Leseberechtigung wird auf 4.1: redundante Felder zugegriffen, anstatt den BerechtigungsAusdruck auszuwerten. Intern OrgSqlExport Die Datenbank-Eigenschaft OrgSqlExport_Options wird auf 4.1: DEBUG_READ_PERMISSION_TRIGGERS geprüft; ist dieser Text enthalten, werden Trigger erzeugt, die einen Zeitstempel in die redundanten Felder schreiben. Dies dient DebugZwecken. orgAnice SQL Versionen - Seite 447 von 510 4.0.2.660 (02.03.2007) GPF OrgDbServer: Absturz beim Löschen eines Benutzers behoben. OrgData: Tooltips unter Windows 2000 funktionieren wieder. Intern OrgSqlExport: Übernahme der Strukturänderungen funktioniert unter SQL Server 2005, wenn Datensatzberechtigungen gesetzt sind. Oberfläche OrgSqlExport: Fehler beim Initialisieren der Export-Engine (die im Regelfall nie auftauchen sollten) werden mit einem entsprechenden Protokoll-Eintrag quittiert. Problem OrgSqlExport: Übernahme der Strukturänderungen mit komplettem Neuaufbau aller Tabellen funktioniert wieder. Intern OrgData: Beim Table.Changed-Event mit Flag ORGDB_TC_SELECTION wird auch der NewRecord-Modus beendet. Problem OrgDbServer 4.1: Das Anlegen eines neuen Datensatzes, für den der aktuelle Benutzer keine Leseberechtigng hat, positioniert nicht mehr auf den neuen Datensatz. Die alte Datensatz-Position wird beibehalten, es wird ein Table.Changed-Event mit Flag ORGDB_TC_SELECTION gefeuert. orgAnice SQL Versionen - Seite 448 von 510 4.0.2.661 (02.03.2007) Intern OrgSqlExport: Redundante Felder für Datensatzberechtigungen basierend auf Benutzergruppen (="Berechtigungen") werden erzeugt. Oberfläche OrgData Neues Control "Berechtigungs-Lookup-Liste", funktioniert 4.1: ähnlich zur Benutzer-Lookup-Liste; benötigt den Feature-Code ORG41. Intern OrgDbServer Datensatzberechtigungen basierend auf Benutzergruppen 4.1: (="Berechtigungen") werden berücksichtigt. Intern OrgDbServer Gibt ein Benutzerlisten- oder Berechtigungslisten-Ausdruck für 4.1: einen Datensatz einen Leerstring zurück, dürfen alle Benutzer diesen Datensatz lesen. orgAnice SQL Versionen - Seite 449 von 510 4.0.2.662 (05.03.2007) Lizenzpolitik OrgDbServer: Datensatzberechtigungen funktionieren auch, wenn statt des Feature-Codes ORG41 der Feature-Code DSB in der Datenbank-Lizenz vorhanden ist. Lizenzpolitik OrgData: Datensatzberechtigungen funktionieren auch, wenn statt des Feature-Codes ORG41 der Feature-Code DSB in der Datenbank-Lizenz vorhanden ist. Lizenzpolitik OrgSqlExport: Datensatzberechtigungen funktionieren auch, wenn statt des Feature-Codes ORG41 der Feature-Code DSB in der Datenbank-Lizenz vorhanden ist. Problem OrgDbServer KeyStorage: Beim Einfügen von neuen Datensätzen wurden inkorrekte Datensatznummern vergeben. Dieses Problem ist in Version .660 entstanden. Problem OrgDbServer SQL: Löschen des letzten sichtbaren Datensatzes funktioniert wieder. Das Problem ist in Version .647 entstanden. Intern OrgDbServer Das Anlegen oder Löschen einer Relation, deren MasterSQL 4.1: Tabelle eine Leseberechtigung hat (direkt oder indirekt), erfordert eine Übernahme der Strukturänderungen nach SQL. orgAnice SQL Versionen - Seite 450 von 510 4.0.2.663 (05.03.2007) Intern OrgSqlExport Views (z.B. von orgAnice Portal angelegt) werden von 4.1: Datensatzberechtigungen ausgeschlossen. Intern OrgDbServer Views werden von Datensatzberechtigungen ausgeschlossen. 4.1: Problem OrgData 4.1: Das Berechtigungs-Control wird jetzt auch ohne "Visual Styles" korrekt dargestellt. Logik OrgDbServer SQL 4.1: Ist bei einer Tabelle ein Benutzerlisten- und ein Berechtigungslisten-Ausdruck gegeben, so genügt es, wenn eins der beiden Kriterien erfüllt ist, um den Datensatz anzuzeigen. Performance OrgDbServer SQL 4.1: Die Suche nach dem Master-Datensatz prüft die DatensatzLeseberechtigung nicht mehr, da die DS-Leseberechtigungen kaskadieren. Oberfläche OrgData: Wird in einer anderen Session der erste Datensatz einer Tabelle angelegt, wird dieser nach Druck auf F5 angezeigt. orgAnice SQL Versionen - Seite 451 von 510 4.0.2.664 (06.03.2007) Kompatibilität COM Die Eigenschaft Field.Value (put) liefert keinen Fehler mehr, OrgDbServer: wenn das Feld auf "No Input" gesetzt ist und der Feature-Code ORG41 fehlt. Performance OrgDbServer 4.1: Das Zählen aller bzw. aller markierter Datensätze ignoriert die Leseberechtigungen. COM OrgDbServer SQL: Neue Methode Table.RepairMarkedRecCount. Löscht die Markierungs-Bits der Datensätze, die nicht mehr existieren oder auf die keine Leseberechtigung vorhanden ist, und repariert somit die berichtete Anzahl markierter Datensätze. Es wird ein Changed-Event mit Code ORGDB_TC_MULTIPLEMARKS gefeuert, dadurch wird in OrgData die Statusleiste aktualisiert -- unabhängig davon, ob tatsächlich etwas repariert wurde. Bei KeyStorage-Tabellen ist diese Methode wirkungslos. Oberfläche OrgData: Schlägt ein Befehl aus dem Menü "Markierungen" fehl, kommt eine MessageBox mit einer Fehlermeldung. Bisher ging ein eventueller Fehler kommentarlos unter. Oberfläche OrgData: Auswahl des neuen Menüpunkts "Markierungen/Anzahl markierter Datensätze reparieren" oder Doppelklick auf die Statusleiste bei der Datensatz-Anzahl ruft die neue Methode Table.RepairMarkedRecCount für die aktive Tabelle auf. COM OrgDbServer 4.1: Verliert der aktuelle Benutzer beim Speichern eines Datensatzes die Leseberechtigung, wird das Changed-Event mit Flag ORGDB_TC_RECCOUNT gefeuert. In OrgData wird daraufhin die Datensatzanzahl korrigiert. COM OrgDbServer: Table.FindOid u,a, nehmen Rücksicht auf die Sichtbarkeit (nur markierte bzw. nur nicht markierte) und positionieren niemals auf einen unsichtbaren Datensatz. Performance OrgDbServer KeyStorage: Anwendungsfall "Alle Datensätze anzeigen" (=ohne Rücksicht auf Markierungen) beschleunigt. orgAnice SQL Versionen - Seite 452 von 510 4.0.2.665 (08.03.2007) COM OrgDbServer: Bei der Arbeit mit Dokument-Objekten in Verbindung mit dem Einfügen von Datensätzen konnte es zu einem "pure virtual function call"-Fehler kommen. Behoben. orgAnice SQL Versionen - Seite 453 von 510 4.0.2.666 (08.03.2007) Problem OE OrgData: Felder-ListView wird nicht mehr in umgekehrter Reihenfolge befüllt. Das Problem bestand seit .652. orgAnice SQL Versionen - Seite 454 von 510 4.0.2.667 (09.03.2007) Problem OrgSqlExport: Nach erfolgreichem Export erscheint kein Fehlereintrag im Protokoll. orgAnice SQL Versionen - Seite 455 von 510 4.0.2.668 (12.03.2007) GPF COM OrgData: Absturz bei ImageList.Load und ImageList.Save behoben. Das Problem besteht seit Version .661. orgAnice SQL Versionen - Seite 456 von 510 4.0.2.669 (13.03.2007) Problem OrgSqlExport: Die Export-Dauer wird auch dann korrekt angegeben, wenn es länger als 12 Stunden gedauert hat. orgAnice SQL Versionen - Seite 457 von 510 4.0.2.670 (13.03.2007) Problem OrgSqlExport: Neu-Export mit Übernahme der Daten aus einer anderen SQLDatenbank funktioniert auch mit Datensatzberechtigungen. orgAnice SQL Versionen - Seite 458 von 510 4.0.2.671 (14.03.2007) Performance OrgSqlExport: Problem bei AutoCount-Triggern behoben. orgAnice SQL Versionen - Seite 459 von 510 4.0.2.672 (14.03.2007) Protokoll OrgSqlExport: Ausgabe der Tausendstel-Sekunden bei der Anfragedauer korrigiert. orgAnice SQL Versionen - Seite 460 von 510 4.0.2.673 (19.03.2007) Problem OrgSqlExport: Das Verkürzen von String-Feldern bei der Übernahme der Strukturänderungen funktioniert ohne Fehler. Problem OrgSqlExport: Die Konvertierung nach SQL mit Übernahme der Tabellendaten aus einer anderen Datenbank funktioniert ohne Fehler. Oberfläche OrgData Das Berechtigungs-Control enthält an erster Stelle einen leeren 4.1: Eintrag an Stelle von "--Keine Einschränkung--". Konfiguration OrgData 4.1: Die Text-Eigenschaft des Berechtigungs-Controls kann verwendet werden, um zusätzliche Einträge zu definierten, die am Anfang der Liste erscheinen. Ist kein Text vergeben, erscheint lediglich ein leerer Eintrag an erster Stelle; ansonsten wird der Text an Semikola aufgeteilt und als Darstellung=WertListe aufgefasst. Was links neben dem = steht, wird in der Liste dargestellt, als Feldinhalt wird der Text rechts vom = verwendet. Beispiel: "--Keine Einschränkungen--=;--Niemand-= ;". Besteht der Feldinhalt aus einem Leerzeichen, wird also -Niemand-- angezeigt. orgAnice SQL Versionen - Seite 461 von 510 4.0.2.674 (19.03.2007) Problem OrgDbServer SQL: Ein neu angelegtes Feld ist sofort nach der Übernahme der Strukturänderungen nach SQL verfügbar. Bisher musste dazu die Datenbank neu gestartet werden. orgAnice SQL Versionen - Seite 462 von 510 4.0.2.675 (20.03.2007) Problem COM OrgDbServer SQL: Das Schreiben von Feldinhalten aus der COM-Schittstelle heraus funktionierte manchmal nicht, z.B. beim Aktualisieren der Rechnungssumme nach dem Ändern einer Rechnungsposition. orgAnice SQL Versionen - Seite 463 von 510 4.0.2.676 (21.03.2007) Problem OrgData: In Benutzer-Lookup-Listen werden die Benutzer entsprechend des Feldinhalts ausgewählt. Das Problem bestand seit .673. orgAnice SQL Versionen - Seite 464 von 510 4.0.2.677 (29.03.2007) GPF OrgData: Absturz bei Tabellen-Layout ohne Tabelle behoben. Rechtschreibung OrgSqlExport: "Redundant" statt "Redundand" in Objektnamen verwendet. Problem Oberfläche Falls ein Feld in mehreren Registern desselben RegisterkartenOrgData 4.1: Controls vertreten war, wurde manchmal der alte Feldinhalt beim Schreiben verwendet; jetzt wird immer der aktuelle Wert verwendet. (Bug 1803 in TechInfo-DB.) orgAnice SQL Versionen - Seite 465 von 510 4.0.2.678 (29.03.2007) Problem OE OrgData: "Label" und "3D-Label" waren seit .661 zweimal im FormularControls-Editor vertreten; behoben. Feature OrgData: ListView-Bilder werden -- ähnlich zum Dokument-Control unter orgAnice 4.1 -- mit unverändertem Seitenverhältnis dargestellt. orgAnice SQL Versionen - Seite 466 von 510 4.0.2.679 (30.03.2007) Oberfläche OrgData: Darstellung der ListView-Bilder verfeinert. Icons, die bisher genau in die Zelle gepasst haben, werden unverändert (ohne Rand zu den Zellengrenzen) dargestellt. orgAnice SQL Versionen - Seite 467 von 510 4.0.2.680 (02.04.2007) Problem OE OrgData 4.0: Nach Einfügen eines neuen Array-Werts beim PersistenteVariablen-Editor ist jetzt nur noch der neue Wert markiert. Defekt, nicht verwenden. orgAnice SQL Versionen - Seite 468 von 510 4.0.2.681 (03.04.2007) Defekt, nicht verwenden. orgAnice SQL Versionen - Seite 469 von 510 4.0.2.682 (03.04.2007) Problem OrgDbServer SQL: Join-Ausdrücke mit Datensatzberechtigungen wurden manchmal inkorrekt formuliert. Das äußert sich z.B. in einem Fehler bei der Darstellung der Liste in der Tabelle "Verkaufschancenpositionen" in der Standard-Datenbank. orgAnice SQL Versionen - Seite 470 von 510 4.0.2.683 (04.04.2007) Alle Module: Nur interne Änderungen. orgAnice SQL Versionen - Seite 471 von 510 4.0.2.684 (24.04.2007) Performance OrgDbServer KeyStorage: Öffnen von großen Packager-Dokumenten beschleunigt. orgAnice SQL Versionen - Seite 472 von 510 4.0.2.685 (28.04.2007) Problem OrgSqlExport: Die letzten 1000 Dokumente einer Tabelle (=alle Dokumente, wenn die Tabelle weniger als 1000 enthält) wurden bei einem Komplett-Import nach SQL nicht importiert. Das Problem bestand seit Version .637. Problem OrgData: Eigenschaft ActiveTable ist (in den allermeisten Fällen) nicht mehr Nothing. Problem bestand seit .663. orgAnice SQL Versionen - Seite 473 von 510 4.0.2.686 (07.05.2007) GPF OrgData: Auf manchen Installationen auftretenden Absturz beim Programmstart behoben. Intern OrgData: Fall "Kein aktives WorkspaceView" während des Starts der Anwendung nicht mehr auf. Oberfläche OrgData Es wird beim Wechsel des aktiven Tabellenlayouts nicht mehr 4.0: GoTop ausgeführt, wenn das Ziel-Layout auf EOF steht. Die entsprechende Änderung aus Version .663 wurde rückgängig gemacht. orgAnice SQL Versionen - Seite 474 von 510 4.0.2.687 (09.05.2007) OrgDbServer: ->.526. Problem OrgDbServer KS: Beim Lesen von Datensätzen in neu angelegten Tabellen tritt der Fehler 0x80041028 (ORGDB_E_KEYNOTFOUND) nicht mehr auf. Problem OrgData: Horizontale Splitter zwischen Tabellen-Layouts (=innerhalb von Arbeitsbereichs-Spalten) sind nach einem ArbeitsbereichsWechsel nicht mehr inaktiv. Problem wurde vor kurzem eingebaut. COM OrgDbServer: Methodenbeschreibungen für Read/WritePermissionListPrq in der Typbibliothek korrigiert. Problem OrgDbServer SQL: Die "gewährten Berechtigungen" sind jetzt intern auch verfügbar, wenn der Feature-Code "DSB" gesetzt ist. Dadurch funktionieren Datensatz-Leseberechtigungen auf Berechtigungsgruppenebene auch, wenn nur der Feature-Code DSB gesetzt ist. (Bisher wurden bei gesetzter DSLeseberechtigung auf Berechtigungsgruppenebene gar keine Datensätze angezeigt.) GPF OrgDbServer: Kein Absturz mehr, wenn die String-Länge eines AutoCountIndex größer als die Feldlänge des Index-Felds ist. orgAnice SQL Versionen - Seite 475 von 510 4.0.2.688 (22.05.2007) Problem OrgDbServer: Das Positionieren auf eine neue Aktivität eines neuen Vorgangs funktioniert jetzt auch nach dem Positionieren auf eine Adresse ohne Vorgänge. Entstanden durch eine Optimierung in .640. Problem OrgDbServer: Das Setzen der Eigenschaft Database._ImportMode = ORGDB_IMPORTMODE_FIELDPROPS setzt jetzt auch die NoInput-Einschränkung zurück. Dadurch kann OrgImport jetzt wieder Tabellen importieren, ohne dass die AutoCount-Felder hochgezählt werden. (Die Empfindlichkeit gegenüber der NoUpdate-Eigenschaft ist an anderer Stelle in Version .643 entstanden.) Oberfläche OrgImport: Die vor dem Importieren angezeigte Zusammenfassung wurde gekürzt. orgAnice SQL Versionen - Seite 476 von 510 4.0.2.689 (25.05.2007) [Abzweigung 4.0.2.800] Interne Optimierungen orgAnice SQL Versionen - Seite 477 von 510 4.0.2.690 (05.06.2007) Problem OrgSqlExport: Die Übernahme der Strukturänderungen bei gleichzeitig neu angelegter Datensatz-Benutzer- und -Berechtigungs-Liste funktioniert korrekt. Problem OrgDbServer KS: Das Verkürzen von String-Feldern erzeugt keine inkonsistenten Datenbanken mehr. orgAnice SQL Versionen - Seite 478 von 510 4.0.2.691 (06.06.2007) Problem OrgSqlExport: Eindeutige kombinierte (=nicht aus einem einzelnen Feld bestehende) Indizes werden bei einem Neu-Export auch in der SQL-Datenbank sofort auf eindeutig gesetzt, nicht erst beim zweiten Durchlauf. orgAnice SQL Versionen - Seite 479 von 510 4.0.2.692 (11.06.2007) Debug OrgSqlExport: Im Debug-Modus werden Anwendungs- und Server-Version ins Protokoll geschrieben, aber nicht auf Übereinstimmung geprüft. OrgSqlExport: Prüfung der SQL-Server-Version (mindestens SQL Server 2000), Ausgabe im Protokoll. OrgSqlExport: Prüft auf Vorhandensein von Merge-Publikationen und setzt dabei ein internes Flag. Performance OrgSqlExport: Feldtyp-Änderungen erfordern bei der Übernahme der Strukturänderungen keinen Neuaufbau der Tabelle mehr. Performance OrgSqlExport: Schnelles Umbenennen von Feldern per sp_rename wird unterstützt, wenn die Datenbank nicht für die Replikation konfiguriert ist. Performance OrgSqlExport: Unter SQL Server 2005 werden bei der Übernahme der Strukturänderungen Tabellen mit Datumsfeldern mit Vorbelegung nicht immer neu aufgebaut. Feature OrgSqlExport: Unter SQL Server 2000 können Felder neu angelegt, modifiziert und gelöscht werden, auch wenn die Datenbank für die Replikation konfiguriert ist. Die Übernahme der Strukturänderungen baut in diesem Fall die Tabelle nicht neu auf OrgSqlExport: Hinzufügen und Entfernen von Indizes führt bei der Übernahme der Strukturänderungen nicht mehr zum Neuaufbau der Tabelle. OrgSqlExport: Trigger für redundante Felder werden während der Übernahme der Strukturänderungen deaktiviert. OrgSqlExport: Default-Constraints bekommen einen Namen mit Präfix __OrgD. OrgSqlExport: Nach Verkürzen der String-Länge eines Index funktioniert die Übernahme der Strukturänderungen. OrgSqlExport: Das Ändern von Feldtypen wird für alle Kombinationen unterstützt. Können Feldinhalte nicht konvertiert werden, werden stillschweigend NULL-Werte eingetragen. OrgSqlExport: Beim Löschen von Dokument-Feldern werden bei der Übernahme der Strukturänderungen die enthaltenen Dokumente gelöscht. OrgDbServer: Nach Änderung der Feldstruktur werden alle Indizes refresh-ed, um ungültige Indizes sofort zu kennzeichnen. OrgSqlExport: Ist ein String-Feld, das verkürzt wird, Bestandteil eines Index, werden die Indizes in dieser Tabelle bei der Übernahme der Strukturänderungen neu aufgebaut. OrgSqlExport: Alle orgAnice-Trigger werden gelöscht und neu aufgebaut. (Notwendig für die Replikation unter SQL Server 2000; bisher wurden existierende Trigger während der Übernahme orgAnice SQL Versionen - Seite 480 von 510 deaktiviert und nur bei Bedarf geändert.) OrgSqlExport: Fehler dürfen jetzt bei einigen besonders kritische Abfragen (z.B. das Kopieren von Feldinhalten) nicht mehr ignoriert werden. Damit sollen inkonsistente Datenbestände vermieden werden. OrgSqlExport: Nach dem Export bzw. der Übernahme der Strukturänderungen werden die aufgetretenen Warnungen nochmal zusammengefasst am Ende des Protokolls angezeigt. orgAnice SQL Versionen - Seite 481 von 510 4.0.2.693 (11.06.2007) Problem OrgDbConvert: Bei Abbruch oder Fehler wird die temporäre Datenbank-Datei gelöscht. OrgDbConvert: Beim Öffnen einer orgAnice-3-Datenbank mit registriertem orgAnice 4 wird die Datenbank automatisch (mit Anzeige einer Progress-Bar und Abbruch-Möglichkeit) nach orgAnice 4 konvertiert. Um die Umbenennung der Bibliotheksnamen OrgDbServer30 und OrgData30 kümmert sich im Anschluss OrgData. Es werden keine weiteren Module außer die (aktuelle) OrgDbConvert2.dll benötigt. OrgData: Ist beim Öffnen des VBA ein Verweis auf OrgDbServer 3.0 gesetzt, wird dieser auf Version 3.1 aktualisiert, und es werden im VBA-Quellcode die Bibliotheksnamen OrgDbServer30 und OrgData30 zu *31 umbenannt. Das vervollständigt die Konvertierung von orgAnice-3-Datenbanken. OrgData: Ist in der Datenbank eine Lizenz mit ungültiger Version vermerkt, wird kein schreibgeschütztes Öffnen mehr angeboten. Grund: Nach einem Upgrade mit OrgDbConvert sind die Indizes nicht aufgebaut, ein schreibgeschützter Zugriff auf die Daten ist damit nicht möglich. OrgSqlExport: Constraints, deren Name mit "repl_identity_range_" beginnt, werden nicht gelöscht. Solche Constraints werden von der Teilreplikation erzeugt. orgAnice SQL Versionen - Seite 482 von 510 4.0.2.694 (11.06.2007) Problem OrgData: Im Konfigurationsmodus wird die Titelleiste des Hauptfensters wieder vollständig dargestellt. ("* - orgAnice Data" statt "* orgAnice "). Problem OrgData: Zugriffstasten im CustomFunction-Editor funktionieren jetzt auch, wenn vorher die VBA-IDE aktiv war. orgAnice SQL Versionen - Seite 483 von 510 4.0.2.695 (12.06.2007) Problem OrgSqlExport: Default-Werte spielen bei Feldtyp-Vergleichen keine Rolle mehr. Dadurch wird das __Org_RecordOID-Feld bei der Übernahme der Strukturänderungen nicht mehr neu aufgebaut, selbst wenn (z.B. durch Replikation) der Default-Wert auf newsequentialid() statt newid() gesetzt wurde. Problem OrgSqlExport: Die Übernahme der Strukturänderungen nach dem Anlegen einer neuen Tabelle funktioniert wieder. orgAnice SQL Versionen - Seite 484 von 510 4.0.2.696 (01.07.2007) OrgData: Interne Änderungen orgAnice SQL Versionen - Seite 485 von 510 4.0.2.697 (18.07.2007) OrgDbConvert: Bei einem Fehler wird ein letztes Progress-Event gefeuert, wodurch OrgData veranlasst wird, das Verlaufs-Fenster zu schließen. OrgData: Unter Windows Vista ist das Double-Buffering bei Formularen aktiviert, dadurch flackern diese weniger. Oberfläche OrgData: Unter Windows Vista ist es nicht mehr ohne weiteres möglich, mehrere fett gedruckte Menü-Items in einem Popup-Menü darzustellen. Deshalb werden im DokumentberechtigungsPopup die Berechtigungsgruppen, in denen der aktive Benutzer enthalten ist, unter Vista nicht mehr fett hervorgehoben. orgAnice SQL Versionen - Seite 486 von 510 4.0.2.698 (20.07.2007) GPF OE OrgData: Beim wiederholten Öffnen bestimmter Objekttypen (z.B. Formular-Control, Listen-Spalte) konnte es in seltenen Fällen zum Überschreiben von Stack-Speicher mit ungültigen Werten kommen. Grund: Zugriff auf einen ungültigen Zeiger beim Initialisieren des Dialogs. orgAnice SQL Versionen - Seite 487 von 510 4.0.2.699 (20.08.2007) GPF OrgData: Möglicher Absturz im Objekt-Editor behoben. Problem OrgData: Das Öffnen von aus orgAnice 3.0 konvertierten Datenbanken, die VBA-Module ohne Quellcode enthielten, schlug mit dem Fehler "Falscher Parameter" fehl. Behoben. Problem OrgImExport: Die Darstellung des Protokolls im Dialog ist nicht mehr auf 64K Zeichen begrenzt. Oberfläche OrgImExport: Manchmal auftretenden Darstellungsfehler bei der ProgressAnzeige behoben. Oberfläche OrgImport: Bei der Auswahl eines Quell-Ordners für den dBase-Import wird das Dateinamen-Eingabefeld im Import-Dialog erst bei Bestätigung mit OK aktualisiert. Speicherleck OrgImport: Werte für Default-Records wurden nicht freigegeben, dadurch war der Import größerer Datenbanken nicht möglich. Behoben. Logik OrgImport: "Neu starten" funktioniert auch nach Auswahl "Neue Datenbank erzeugen" korrekt. Logik OrgImport: Beim Anlegen einer neuen Datenbank kann eine neue Tabelle erzeugt werden. ShowStop KeyStorage: In seltenen Fällen konnte aufgrund nicht initialisierten internen Speichers auf eine falsche Blocknummer verwiesen werden, was zu Korruption der Datenbank führen konnte. Behoben, der betroffene Speicher wird stets initialisiert. Speicherleck OrgDbServer: Einmal erzeugte ParserRequests wurden erst beim Schließen der Datenbank freigegeben, wodurch ein Import von größeren Datenmengen nicht mehr möglich war. Behoben. orgAnice SQL Versionen - Seite 488 von 510 4.0.2.700 (22.08.2007) COM OrgDbServer: Beim Aufruf von Document.Close wird auch das OLE-Objekt (und ggf. auch die von diesem OLE-Objekt geöffneten SystemHandles) freigegeben. COM OrgDbServer: Auf Dokumente, die innerhalb einer Transaktion erzeugt wurden, wurde bisher bis zum Commit/Rollback eine interne Referenz gehalten. Dadurch wurden die von den Dokumenten gehaltenen Systemressourcen zu spät freigegeben. Behoben. Jetzt kann OrgImport beliebig große Tabellen mit Dokumenten importieren. Problem OrgImExport: Nach Auswahl einer Regel, Betätigung von "Zurück" und Erstellen einer neuen Regel wurde bisher im letzten Schritt der Name der zuerst ausgewählten Regel als Standard angeboten. Behoben. orgAnice SQL Versionen - Seite 489 von 510 4.0.2.701 (23.08.2007) Problem OrgDbServer: Durch ein Rollback konnten unter Umständen zu Datensätzen zugeordnete Dokumente gelöscht werden. Behoben, das Problem entstand in 4.0.2.700. DatenbankSpeicherleck OrgDbServer: Bei KeyStorage-Datenbanken führte ein Aufruf von Table.Write dazu, dass alle Memos des Datensatzes dupliziert wurden, die Duplikate wurden nicht freigegeben. Das betraf nur den Zugriff per COM und nur den Fall, dass das Memo nicht verändert oder anderweitig in den Schreibpuffer geladen wurde. Beim Speichern in OrgData trat das Problem nicht auf. Behoben. COM OrgDbServer: Die Vorbelegungs-Ausdrücke für Felder (Field.DefaultValuePrq) dürfen jetzt ohne Einschränkung auf alle Felder der eigenen Tabelle zugreifen. Problem OE OrgData: Das direkt aufeinanderfolgende Bearbeiten von zwei Objekten desselben Typs ist wieder möglich. Das Problem ist in 4.0.2.698 entstanden. orgAnice SQL Versionen - Seite 490 von 510 4.0.2.702 (31.08.2007) Alle Module: Primary Interop Assemlies für Version 4.0.2.695 erstellt. ShowStop OrgDbServer KS: Bei KeyStorage-Datenbanken mit defekten Datensätzen konnte manchmal der interne String-Heap korrumpiert werden, was im Anschluss ein undefiniertes Verhalten zur Folge haben konnte (Schutzverletzung, unvermitteltes Schließen der Anwendung, Verwendung fehlerhafter Daten). orgAnice SQL Versionen - Seite 491 von 510 4.0.2.703 (04.09.2007) Problem OrgDbServer KS: Das Kompaktieren behebt jetzt eine bestimmte Art von Inkonsistenz in den internen Tabellendaten, die bisher mit in die kompaktierte Datenbank übernommen wurde. orgAnice SQL Versionen - Seite 492 von 510 4.0.2.704 (04.09.2007) Problem OrgDbServer KS: Beim Kompaktieren wurden manchmal defekte Datensätze erzeugt, höchstens einer pro Tabelle. Behoben. Problem OrgDbServer KS: Beim Aufbau eines Index wird sicherheitshalber vorher auf EOF gewechselt, um mögliche (durch Verwendung von ORGDB_NAV_NORELATION entsandene) Inkonsistenzen beim aktiven Datensatz aufzulösen. Dadurch sollten keine fehlerhaften Indizes mehr entstehen, bei denen die Indexwerte des ersten Datensatzes für alle Indizes leer sind. orgAnice SQL Versionen - Seite 493 von 510 4.0.2.705 (14.09.2007) OrgSqlExport Behobene Probleme: Nach dem Erstexport einer KeyStorage-Datenbank nach SQL sind die Default-Ausdrücke (z.B. für das interne RecordOIDFeld oder für Index-Felder) wieder sofort in der SQL-Datenbank vorhanden. Bisher war dafür eine Übernahme der Strukturänderungen nötig. Das Problem besteht seit 4.0.2.692. Problem OrgDbServer KS: Nach Tables.Refresh war manchmal der interne Zustand verzerrt, so dass trotz gültigem aktivem Datensatz (kein EOF) nur leere Feldinhalte zurückgeliefert wurden. Das betrifft nur KeyStorage-Datenbanken. Die Methode Tables.Refresh wird von OrgData z.B. beim Öffnen des Objekt-Editors für die Tabellen-Aufzählung oder für ein untergeordnetes Objekt, z.B. Feld, Index, Summierungsausdruck aufgerufen. orgAnice SQL Versionen - Seite 494 von 510 4.0.2.706 (17.09.2007) OrgDbServer: Interne Änderungen orgAnice SQL Versionen - Seite 495 von 510 4.0.2.707 (17.09.2007) Problem OrgDbServer: Excel-Dokumente mit Endung .xls, die direkt im OLE2-Format vorliegen, werden beim Aufruf von Document.CreateFromTemplate direkt in die Datenbank kopiert, ohne den Dokument-Server zu starten. Dadurch lassen sich z.B. Excel-Dokumente sofort wieder speichern, was bei der bisherigen Vorgehensweise nicht möglich war. Für alle anderen Dokumente ändert sich nichts. orgAnice SQL Versionen - Seite 496 von 510 4.0.2.708 (18.09.2007) GPF OrgDbServer: Beim Schließen von eingebetteten PowerPoint-Dokumenten (CLSID 64818D10-4F9B-11CF-86EA-00AA00B929E8) stürzt PowerPoint nicht mehr ab. Die interne Freigabe des PowerPoint-Objekts erfolgt später als bisher, um einen mutmaßlichen Bug in PowerPoint zu umgehen. Für andere Dokumenttypen ändert sich nichts. orgAnice SQL Versionen - Seite 497 von 510 4.0.2.709 (25.09.2007) Performance OrgDbServer SQL: Das Abfragen der Datensatzanzahl geschieht ohne DatenbankSperren. Dadurch sollen manche Deadlock-Situationen vermieden werden, allerdings kann die so ermittelte Anzahl ungenau sein. Problem OrgDbServer SQL: Mehrere gleichzeitige Anmeldungen an einer Datenbank führen nicht mehr zu Deadlocks im SQL-Server. Problem OrgDbServer SQL: Bei einem Fehler während der Anmeldung wird die Verbindung zur SQL-Datenbank gekappt, um Deadlock-Situationen zu vermeiden. orgAnice SQL Versionen - Seite 498 von 510 4.0.2.710 (02.10.2007) ShowStop OrgData: Wurde eine OrgDbServer-Methode aufgerufen, die ein Progress-Event auslöst (z.B. GetValues), wurden GDI-Handles alloziert und nicht freigegeben. Behoben. orgAnice SQL Versionen - Seite 499 von 510 4.0.2.711 (30.10.2007) Intern: Interne Änderungen orgAnice SQL Versionen - Seite 500 von 510 4.0.2.712 (31.10.2007) ShowStop KeyStorage: Unter ungünstigen Bedingungen konnte auf einen Block doppelt verwiesen werden, was zu Datenverlusten führen konnte. Der Fehler bestand schon in orgAnice 3.1. orgAnice SQL Versionen - Seite 501 von 510 4.0.2.713 (24.12.2007) Problem COM OrgDbServer: Ein Dokument, das in einem Feld gespeichert ist, kann durch Zuweisung von Nothing zum Feldwert freigegeben werden. Bisher hatte nur Empty funktioniert. Das Problem bestand seit 4.0.2.650. Problem Oberfläche Manchmal wurden Tooltips über Kommandoschaltflächen in OrgData: einer falschen Schriftart dargestellt, wenn der Mauszeiger vorher über der Liste war. Behoben. OrgPrint: Neue Einstellung "Übergeordnete Relationen fixieren" im "Datenquellen"-Tab des Layout-Eigenschaften-Dialogs. Durch Anwählen dieser Einstellung für ein Layout werden z.B. bei einem Report über die Ansprechpartner-Tabelle nur die Ansprechpartner erfasst, die zur derzeit angewählten Adresse gehören. orgAnice SQL Versionen - Seite 502 von 510 4.0.2.714 (02.01.2008) Alle Module: Jahreszahl von 2007 auf 2008 korrigiert. orgAnice SQL Versionen - Seite 503 von 510 4.0.2.715 (04.02.2008) OrgPrint: Neue Einstellung "Übergeordnete Relationen fixieren" funktioniert auch bei Anmeldung ohne Verwaltungsrechte. orgAnice SQL Versionen - Seite 504 von 510 4.0.2.716 (28.02.2008) COM OrgData: Beim impliziten Speichern eines Datensatzes (z.B. durch Wechseln des aktiven Tabellenlayouts oder durch Betätigung einer Makro-Schaltfläche) wird das Event Application.Command(CMD_USE_EDIT_UPDATERECORD) ausgelöst. orgAnice SQL Versionen - Seite 505 von 510 4.0.2.717 (29.02.2008) COM OrgData: Beim impliziten Speichern eines Datensatzes (z.B. durch Wechseln des aktiven Tabellenlayouts oder durch Betätigung einer Makro-Schaltfläche) wird zusätzlich das Event Application.CommandAvailable(CMD_USE_EDIT_UPDATERE CORD) ausgelöst. Stellt sich heraus, dass der Befehl nicht verfügbar ist, wird der Benutzer gefragt, ob er den Datensatz verwerfen möchte. Die Frage, ob der Datensatz gespeichert werden soll, kommt in diesem Fall nicht. orgAnice SQL Versionen - Seite 506 von 510 4.0.2.718 (11.03.2008) KeyStorage: Unter Windows Vista werden aufgrund eines Fehlers im Betriebssystem, der auch durch kein Service Pack behoben wird, ü und Ü immer zu ue bzw. UE expandiert, wodurch sich die Sortierreihenfolge ändert. Dadurch konnte es zu Problemen bei Indizes führen. Der String-Vergleich bei Indizes wird jetzt derart angepasst, dass die unter Windows XP und früher bestehende Sortierreihenfolge verwendet wird. Visual Basic oder OrgBasic verwenden jedoch nach wie vor die fehlerhafte Sortierreihenfolge. Bei Datenbanken, die bereits unter Vista betrieben wurden, müssen die Indizes neu aufgebaut werden, z.B. durch Kompaktieren mit Indexneuaufbau. orgAnice SQL Versionen - Seite 507 von 510 4.0.2.719 (11.03.2008) Problem OrgSqlExport: Die Übernahme der Strukturänderungen nach SQL funktioniert auch, wenn auf der ersten übergeordneten Tabelle einer M:NRelation eine Datensatz-Leseberechtigung gesetzt ist. orgAnice SQL Versionen - Seite 508 von 510 4.0.2.720 (21.03.2008) Problem OrgDbServer: Der Fehler ORGDB_E_CANTCREATETIMER tritt nicht mehr auf, wenn sehr viele weitere Sessions (mehr als 6) per Database.NewSession erzeugt und nicht geschlossen werden. orgAnice SQL Versionen - Seite 509 von 510 4.0.2.721 (21.03.2008) OrgPrint: Wenn ein Report im Querformat konfiguriert ist, wird beim Drucken in den Druckeinstellungen auch die Einstellung "Querformat" gewählt. Das ermöglicht eine manuelle Umschaltung, falls diese Logik nicht angebracht sein sollte. Wenn keine Veränderung vorgenommen wird, wird der Report automatisch in der richtigen Orientierung gedruckt. OrgPrint: Die Auswahl der Orientierung eines Reports beim Drucken (Hochformat/Querformat) geschieht durch internes Umsetzen eines Flags, ohne Systemaufruf. Dadurch werden Probleme bei sehr langen Druckernamen (z.B. Netzwerkdrucker) umgangen. orgAnice SQL Versionen - Seite 510 von 510