orgAnice SQL – Versionshistorie 4.0.2.1 (15.08.2004).................................................................................................... 9 4.0.2.2 (15.08.2004).................................................................................................. 10 4.0.2.3 (15.08.2004).................................................................................................. 11 4.0.2.4 (15.08.2004).................................................................................................. 12 4.0.2.10 (16.08.2004)................................................................................................ 13 4.0.2.11 (16.08.2004)................................................................................................ 14 4.0.2.12 (16.08.2004)................................................................................................ 15 4.0.2.13 (03.09.2004)................................................................................................ 16 4.0.2.14 (03.09.2004)................................................................................................ 17 4.0.2.15 (11.09.2004)................................................................................................ 18 4.0.2.16 (11.09.2004)................................................................................................ 20 4.0.2.17 (13.09.2004)................................................................................................ 21 4.0.2.18 (13.09.2004)................................................................................................ 22 4.0.2.19 (16.09.2004)................................................................................................ 23 4.0.2.20 (17.09.2004)................................................................................................ 24 4.0.2.21 (17.09.2004)................................................................................................ 25 4.0.2.22 (17.09.2004)................................................................................................ 26 4.0.2.23 (17.09.2004)................................................................................................ 27 4.0.2.24 (17.09.2004)................................................................................................ 28 4.0.2.25 (17.09.2004)................................................................................................ 29 4.0.2.26 (20.09.2004)................................................................................................ 30 4.0.2.27 (21.09.2004)................................................................................................ 31 4.0.2.28 (26.09.2004)................................................................................................ 32 4.0.2.29 (26.09.2004)................................................................................................ 33 4.0.2.30 (26.09.2004)................................................................................................ 34 4.0.2.31 (26.09.2004)................................................................................................ 35 4.0.2.32 (03.10.2004)................................................................................................ 36 4.0.2.33 (04.10.2004)................................................................................................ 37 4.0.2.34 (06.10.2004)................................................................................................ 38 4.0.2.36 (06.10.2004)................................................................................................ 39 4.0.2.37 (11.10.2004)................................................................................................ 40 4.0.2.38 (11.10.2004)................................................................................................ 41 orgAnice SQL Versionen - Seite 1 von 276 4.0.2.39 (11.10.2004)................................................................................................ 42 4.0.2.40 (11.10.2004)................................................................................................ 43 4.0.2.41 (19.10.2004)................................................................................................ 44 4.0.2.42 (19.10.2004)................................................................................................ 45 4.0.2.43 (19.10.2004)................................................................................................ 46 4.0.2.44 (26.10.2004)................................................................................................ 47 4.0.2.45 (27.10.2004)................................................................................................ 48 4.0.2.46 (27.10.2004)................................................................................................ 49 4.0.2.47 (28.10.2004)................................................................................................ 50 4.0.2.48 (11.11.2004)................................................................................................ 51 4.0.2.49 (11.11.2004)................................................................................................ 52 4.0.2.50 (18.11.2004)................................................................................................ 53 4.0.2.51 (18.11.2004)................................................................................................ 54 4.0.2.52 (18.11.2004)................................................................................................ 55 4.0.2.53 (18.11.2004)................................................................................................ 56 4.0.2.54 (18.11.2004)................................................................................................ 57 4.0.2.55 (26.11.2004)................................................................................................ 58 4.0.2.56 (27.11.2004)................................................................................................ 59 4.0.2.57 (27.11.2004)................................................................................................ 60 4.0.2.58 (27.11.2004)................................................................................................ 61 4.0.2.59 (30.11.2004)................................................................................................ 62 4.0.2.60 (02.12.2004)................................................................................................ 63 4.0.2.61 (02.12.2004)................................................................................................ 64 4.0.2.62 (02.12.2004)................................................................................................ 65 4.0.2.63 (09.12.2004)................................................................................................ 66 4.0.2.64 (09.12.2004)................................................................................................ 67 4.0.2.65 (09.12.2004)................................................................................................ 68 4.0.2.66 (09.12.2004)................................................................................................ 69 4.0.2.67 (20.12.2004)................................................................................................ 70 4.0.2.68 (20.12.2004)................................................................................................ 71 4.0.2.69 (09.01.2005)................................................................................................ 72 4.0.2.70 (10.01.2005)................................................................................................ 73 4.0.2.71 (10.01.2005)................................................................................................ 74 4.0.2.72 (10.01.2005)................................................................................................ 75 4.0.2.73 (10.01.2005)................................................................................................ 76 4.0.2.74 (10.01.2005)................................................................................................ 77 orgAnice SQL Versionen - Seite 2 von 276 4.0.2.75 (10.01.2005)................................................................................................ 78 4.0.2.76 (12.01.2005)................................................................................................ 79 4.0.2.77 (18.01.2005)................................................................................................ 80 4.0.2.78 (18.01.2005)................................................................................................ 81 4.0.2.79 (18.01.2005)................................................................................................ 82 4.0.2.80 (18.01.2005)................................................................................................ 83 4.0.2.81 (19.01.2005)................................................................................................ 84 4.0.2.82 (19.01.2005)................................................................................................ 85 4.0.2.83 (23.01.2005)................................................................................................ 86 4.0.2.84 (23.01.2005)................................................................................................ 87 4.0.2.85 (23.01.2005)................................................................................................ 88 4.0.2.86 (23.01.2005)................................................................................................ 89 4.0.2.87 (24.01.2005)................................................................................................ 90 4.0.2.88 (24.01.2005)................................................................................................ 91 4.0.2.89 (24.01.2005)................................................................................................ 92 4.0.2.90 (25.01.2005)................................................................................................ 93 4.0.2.91 (31.01.2005)................................................................................................ 94 4.0.2.92 (31.01.2005)................................................................................................ 95 4.0.2.93 (31.01.2005)................................................................................................ 96 4.0.2.94 (10.02.2005)................................................................................................ 97 4.0.2.95 (06.03.2005)................................................................................................ 98 4.0.2.96 (06.03.2005)................................................................................................ 99 4.0.2.97 (06.03.2005).............................................................................................. 100 4.0.2.98 (11.03.2005).............................................................................................. 101 4.0.2.99 (11.03.2005).............................................................................................. 102 4.0.2.100 (11.03.2005)............................................................................................ 103 4.0.2.101 (11.03.2005)............................................................................................ 104 4.0.2.105 (16.03.2005)............................................................................................ 105 4.0.2.106 (17.03.2005) – SQL: SQL-Replikation und Views ................................... 106 4.0.2.107 (17.03.2005) – SQL: SQL-Replikation und Views ................................... 107 4.0.2.108 (17.03.2005) – SQL: SQL-Replikation und Views ................................... 108 4.0.2.109 (18.03.2005) – SQL: SQL-Replikation und Views ................................... 109 4.0.2.110 (18.03.2005)............................................................................................ 110 4.0.2.111 (18.03.2005)............................................................................................ 111 4.0.2.112 (18.03.2005)............................................................................................ 112 4.0.2.113 (27.03.2005) – SQL: SQL-Replikation und Views ................................... 113 orgAnice SQL Versionen - Seite 3 von 276 4.0.2.114 (27.03.2005)............................................................................................ 114 4.0.2.115 (27.03.2005)............................................................................................ 115 4.0.2.116 (05.04.2005)............................................................................................ 116 4.0.2.117 (07.04.2005)............................................................................................ 117 4.0.2.118 (08.04.2005)............................................................................................ 118 4.0.2.120 (08.04.2005)............................................................................................ 119 4.0.2.121 (22.04.2005)............................................................................................ 120 4.0.2.122 (22.04.2005)............................................................................................ 121 4.0.2.123 (22.04.2005) – Merge mit 4.0.2.113 ........................................................ 122 4.0.2.124 (22.04.2005)............................................................................................ 123 4.0.2.125 (22.04.2005)............................................................................................ 124 4.0.2.126 (23.04.2005)............................................................................................ 125 4.0.2.127 (23.04.2005)............................................................................................ 126 4.0.2.128 (23.04.2005)............................................................................................ 127 4.0.2.129 (23.04.2005) – Merge mit 4.0.2.113 ........................................................ 128 4.0.2.130 (23.04.2005)............................................................................................ 129 4.0.2.131 (23.04.2005) – Merge mit 4.0.2.113 ........................................................ 130 4.0.2.132 (24.04.2005)............................................................................................ 131 4.0.2.133 (24.04.2005)............................................................................................ 132 4.0.2.134 (24.04.2005)............................................................................................ 133 4.0.2.135 (24.04.2005)............................................................................................ 134 4.0.2.136 (11.05.2005)............................................................................................ 135 4.0.2.137 (11.05.2005)............................................................................................ 136 4.0.2.138 (11.05.2005)............................................................................................ 137 4.0.2.139 (13.05.2005)............................................................................................ 138 4.0.2.140 (13.05.2005)............................................................................................ 139 4.0.2.141 (22.05.2005)............................................................................................ 140 4.0.2.142 (22.05.2005)............................................................................................ 141 4.0.2.143 (24.05.2005)............................................................................................ 142 4.0.2.144 (24.05.2005)............................................................................................ 143 4.0.2.145 (24.05.2005)............................................................................................ 144 4.0.2.147 (26.05.2005)............................................................................................ 145 4.0.2.148 (30.05.2005)............................................................................................ 146 4.0.2.149 (30.05.2005)............................................................................................ 147 4.0.2.150 (31.05.2005)............................................................................................ 148 4.0.2.151 (01.06.2005)............................................................................................ 149 orgAnice SQL Versionen - Seite 4 von 276 4.0.2.152 (01.06.2005)............................................................................................ 150 4.0.2.153 (01.06.2005)............................................................................................ 151 4.0.2.154 (01.06.2005)............................................................................................ 152 4.0.2.155 (02.06.2005)............................................................................................ 153 4.0.2.156 (02.06.2005)............................................................................................ 154 4.0.2.157 (02.06.2005)............................................................................................ 155 4.0.2.158 (02.06.2005)............................................................................................ 156 4.0.2.159 (03.06.2005)............................................................................................ 157 4.0.2.160 (03.06.2005)............................................................................................ 158 4.0.2.160 (08.06.2005)............................................................................................ 159 4.0.2.162 (08.06.2005)............................................................................................ 160 4.0.2.163 (11.06.2005)............................................................................................ 161 4.0.2164 (12.06.2005)............................................................................................. 162 4.0.2.165 (12.06.2005)............................................................................................ 163 4.0.2.166 (13.06.2005)............................................................................................ 164 4.0.2.167 (13.06.2005)............................................................................................ 165 4.0.2.168 (13.06.2005)............................................................................................ 166 4.0.2.169 (13.06.2005)............................................................................................ 167 4.0.2.170 (14.06.2005)............................................................................................ 168 4.0.2.171 (14.06.2005)............................................................................................ 169 4.0.2.172 (17.06.2005)............................................................................................ 170 4.0.2.173 (17.06.2005)............................................................................................ 171 4.0.2.174 (17.06.2005)............................................................................................ 172 4.0.2.175 (17.06.2005)............................................................................................ 173 4.0.2.176 (20.06.2005)............................................................................................ 174 4.0.2.177 (20.06.2005)............................................................................................ 175 4.0.2.178 (20.06.2005)............................................................................................ 176 4.0.2.179 (21.06.2005)............................................................................................ 177 4.0.2.180 (23.06.2005)............................................................................................ 178 4.0.2.181 (23.06.2005)............................................................................................ 179 4.0.2.182 (23.06.2005)............................................................................................ 180 4.0.2.183 (24.06.2005)............................................................................................ 181 4.0.2.184 (24.06.2005)............................................................................................ 182 4.0.2.185 (24.06.2005)............................................................................................ 183 4.0.2.186 (24.06.2005)............................................................................................ 184 4.0.2.187 (24.06.2005)............................................................................................ 185 orgAnice SQL Versionen - Seite 5 von 276 4.0.2.188 (24.06.2005)............................................................................................ 186 4.0.2.189 (27.06.2005)............................................................................................ 187 4.0.2.190 (02.07.2005)............................................................................................ 188 4.0.2.191 (04.07.2005)............................................................................................ 189 4.0.2.192 (11.07.2005)............................................................................................ 190 4.0.2.193 (11.07.2005)............................................................................................ 191 4.0.2.194 (11.07.2005)............................................................................................ 192 4.0.2.195 (11.07.2005)............................................................................................ 193 4.0.2.196 (12.07.2005)............................................................................................ 194 4.0.2.197 (14.07.2005)............................................................................................ 195 4.0.2.198 (15.07.2005)............................................................................................ 196 4.0.2.199 (15.07.2005)............................................................................................ 197 4.0.2.200 (18.07.2005)............................................................................................ 198 4.0.2.201 (18.07.2005)............................................................................................ 199 4.0.2.202 (20.07.2005)............................................................................................ 200 4.0.2.203 (20.07.2005)............................................................................................ 201 4.0.2.204 (20.07.2005)............................................................................................ 202 4.0.2.205 (22.07.2005)............................................................................................ 203 4.0.2.206 (25.07.2005)............................................................................................ 204 4.0.2.207 (25.07.2005)............................................................................................ 205 4.0.2.208 (01.08.2005)............................................................................................ 206 4.0.2.209 (01.08.2005)............................................................................................ 207 {3.1.4|4.0.2}.210 (02.08.2005) ................................................................................ 208 4.0.2.211 (03.08.2005)............................................................................................ 209 4.0.2.212 (04.08.2005)............................................................................................ 210 4.0.2.213 (05.08.2005)............................................................................................ 211 4.0.2.214 (05.08.2005)............................................................................................ 212 4.0.2.214 (05.08.2005)............................................................................................ 213 4.0.2.215 (05.08.2005)............................................................................................ 214 4.0.2.216 (06.08.2005)............................................................................................ 215 4.0.2.217 (07.08.2005)............................................................................................ 216 4.0.2.218 (07.08.2005)............................................................................................ 217 4.0.2.219 (08.08.2005)............................................................................................ 218 4.0.2.220 (09.08.2005)............................................................................................ 219 4.0.2.221 (09.08.2005)............................................................................................ 220 4.0.2.222 (10.08.2005)............................................................................................ 221 orgAnice SQL Versionen - Seite 6 von 276 4.0.2.223 (10.08.2005)............................................................................................ 222 4.0.2.224 (16.08.2005)............................................................................................ 223 4.0.2.225 (16.08.2005)............................................................................................ 224 4.0.2.226 (16.08.2005)............................................................................................ 225 4.0.2.227 (16.08.2005)............................................................................................ 226 4.0.2.228 (17.08.2005)............................................................................................ 227 4.0.2.229 (17.08.2005)............................................................................................ 228 4.0.2.230 (17.08.2005)............................................................................................ 229 4.0.2.231 (17.08.2005)............................................................................................ 230 4.0.2.232 (17.08.2005)............................................................................................ 231 4.0.2.233 (17.08.2005)............................................................................................ 232 4.0.2.234 (18.08.2005)............................................................................................ 233 4.0.2.235 (20.08.2005)............................................................................................ 234 4.0.2.236 (20.08.2005)............................................................................................ 235 4.0.2.237 (20.08.2005)............................................................................................ 236 4.0.2.238 (20.08.2005)............................................................................................ 237 4.0.2.239 (21.08.2005)............................................................................................ 238 4.0.2.240 (22.08.2005)............................................................................................ 239 4.0.2.241 (13.09.2005)............................................................................................ 240 4.0.2.242 (14.09.2005)............................................................................................ 241 4.0.2.243 (26.09.2005)............................................................................................ 242 4.0.2.244 (29.09.2005)............................................................................................ 243 4.0.2.245 (30.09.2005)............................................................................................ 244 4.0.2.246 (12.10.2005)............................................................................................ 245 4.0.2.247 (12.10.2005)............................................................................................ 246 4.0.2.248 (12.10.2005)............................................................................................ 247 4.0.2.249 (14.10.2005)............................................................................................ 248 4.0.2.250 (18.10.2005)............................................................................................ 249 4.0.2.251 (18.10.2005)............................................................................................ 250 4.0.2.252 (30.10.2005)............................................................................................ 251 4.0.2.253 (30.10.2005)............................................................................................ 252 4.0.2.254 (31.10.2005)............................................................................................ 253 4.0.2.255 (31.10.2005)............................................................................................ 254 4.0.2.256 (01.11.2005)............................................................................................ 255 4.0.2.257 (02.11.2005)............................................................................................ 256 4.0.2.258 (04.11.2005)............................................................................................ 257 orgAnice SQL Versionen - Seite 7 von 276 4.0.2.259 (09.11.2005)............................................................................................ 258 4.0.2.260 (10.11.2005)............................................................................................ 259 4.0.2.261 (10.11.2005)............................................................................................ 260 4.0.2.262 (10.11.2005)............................................................................................ 261 4.0.2.263 (16.11.2005)............................................................................................ 262 4.0.2.264 (17.11.2005)............................................................................................ 263 4.0.2.265 (18.11.2005)............................................................................................ 264 4.0.2.266 (09.12.2005)............................................................................................ 265 4.0.2.267 (16.12.2005)............................................................................................ 266 4.0.2.268 (16.12.2005)............................................................................................ 267 4.0.2.269 (18.12.2005)............................................................................................ 268 4.0.2.270 (21.12.2005)............................................................................................ 269 4.0.2.271 (25.12.2005)............................................................................................ 270 4.0.2.272 (25.12.2005)............................................................................................ 271 4.0.2.273 (30.12.2005)............................................................................................ 272 4.0.2.274 (03.01.2006)............................................................................................ 273 4.0.2.275 (03.01.2006)............................................................................................ 274 4.0.2.276 (06.01.2006)............................................................................................ 275 4.0.2.277 (06.01.2006)............................................................................................ 276 orgAnice SQL Versionen - Seite 8 von 276 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 9 von 276 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 10 von 276 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 11 von 276 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 12 von 276 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 13 von 276 4.0.2.11 (16.08.2004) OrgDbServer: Index.DeleteIsamTree setzt bei SQL-Tabellen nicht mehr das Flag Database.SqlStructureConsistency. orgAnice SQL Versionen - Seite 14 von 276 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 15 von 276 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 16 von 276 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 17 von 276 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 18 von 276 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 19 von 276 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 20 von 276 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 21 von 276 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 22 von 276 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 23 von 276 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 24 von 276 4.0.2.21 (17.09.2004) OrgDbServer: Bei client-seitigen Markierungen mit markierender Tabelle wurden falsche Datensätze markiert. orgAnice SQL Versionen - Seite 25 von 276 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 26 von 276 4.0.2.23 (17.09.2004) OrgDbServer: interne Optimierungen orgAnice SQL Versionen - Seite 27 von 276 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 28 von 276 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 29 von 276 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 30 von 276 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 31 von 276 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 32 von 276 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 33 von 276 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 34 von 276 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 35 von 276 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 36 von 276 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 37 von 276 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 38 von 276 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 39 von 276 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 40 von 276 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 41 von 276 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 42 von 276 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 43 von 276 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 44 von 276 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 45 von 276 4.0.2.43 (19.10.2004) OrgDbServer: Table.GetValues: SQLEX_CHECKNULL eingefügt. orgAnice SQL Versionen - Seite 46 von 276 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 47 von 276 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 48 von 276 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 49 von 276 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 50 von 276 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 51 von 276 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 52 von 276 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 53 von 276 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 54 von 276 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 55 von 276 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 56 von 276 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 57 von 276 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 58 von 276 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 59 von 276 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 60 von 276 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 61 von 276 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 62 von 276 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 63 von 276 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 64 von 276 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 65 von 276 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 66 von 276 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 67 von 276 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 68 von 276 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 69 von 276 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 70 von 276 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 71 von 276 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 72 von 276 4.0.2.70 (10.01.2005) OrgData: Abfrage der Datenbank-Eigenschaft HideProgressBars war fehlerhaft. Behoben. orgAnice SQL Versionen - Seite 73 von 276 4.0.2.71 (10.01.2005) Alle Module: Copyright-Angabe auf 2005 erweitert. orgAnice SQL Versionen - Seite 74 von 276 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 75 von 276 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 76 von 276 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 77 von 276 4.0.2.75 (10.01.2005) OrgDbServer: Memo-Felder ab einer bestimmten Länge konnten nicht geschrieben werden. Behoben. orgAnice SQL Versionen - Seite 78 von 276 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 79 von 276 4.0.2.77 (18.01.2005) OrgDbServer: Dokumente: CLockBytes greift jetzt auf COrgDocumentImp zu, nicht umgekehrt. orgAnice SQL Versionen - Seite 80 von 276 4.0.2.78 (18.01.2005) OrgDbServer: Dokumente: CSqlLockBytes greift jetzt auf CSqlDocumentImp zu, nicht umgekehrt. orgAnice SQL Versionen - Seite 81 von 276 4.0.2.79 (18.01.2005) OrgDbServer: Verzicht auf CSqlLockBytes, Implementations-Unterschiede sind nur in C*DocumentImp verankert.. orgAnice SQL Versionen - Seite 82 von 276 4.0.2.80 (18.01.2005) Alle Module: Lint-Fehler entfernt. orgAnice SQL Versionen - Seite 83 von 276 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 84 von 276 4.0.2.82 (19.01.2005) Alle Module: Lint ist jetzt für den täglichen Gebrauch einsatzbereit. orgAnice SQL Versionen - Seite 85 von 276 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 86 von 276 4.0.2.84 (23.01.2005) OrgDbServer: Alle leeren Error:-Handler entfernt. orgAnice SQL Versionen - Seite 87 von 276 4.0.2.85 (23.01.2005) OrgDbServer: Error-Handler sollten als letzten Befehl „return hr“ haben. orgAnice SQL Versionen - Seite 88 von 276 4.0.2.86 (23.01.2005) OrgDbServer: Zwei Leerzeilen nach Variablen-Deklaration. orgAnice SQL Versionen - Seite 89 von 276 4.0.2.87 (24.01.2005) OrgDbServer: BEGIN_ERROR_HANDLING und END_ERROR_HANDLING. orgAnice SQL Versionen - Seite 90 von 276 4.0.2.88 (24.01.2005) OrgDbServer: Definition einer Konstante THIS_FILE für jedes Modul. orgAnice SQL Versionen - Seite 91 von 276 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 92 von 276 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 93 von 276 4.0.2.91 (31.01.2005) OrgDbServer: NO_THROW entfernt. orgAnice SQL Versionen - Seite 94 von 276 4.0.2.92 (31.01.2005) interne Optimierungen orgAnice SQL Versionen - Seite 95 von 276 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 96 von 276 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 97 von 276 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 98 von 276 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 99 von 276 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 100 von 276 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 101 von 276 4.0.2.99 (11.03.2005) interne Optimierungen orgAnice SQL Versionen - Seite 102 von 276 4.0.2.100 (11.03.2005) interne Optimierungen orgAnice SQL Versionen - Seite 103 von 276 4.0.2.101 (11.03.2005) interne Optimierungen orgAnice SQL Versionen - Seite 104 von 276 4.0.2.105 (16.03.2005) Keine Änderungen. orgAnice SQL Versionen - Seite 105 von 276 4.0.2.106 (17.03.2005) – SQL: SQL-Replikation und Views Keine Änderungen. orgAnice SQL Versionen - Seite 106 von 276 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 107 von 276 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 108 von 276 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 109 von 276 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 110 von 276 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 111 von 276 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 112 von 276 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 113 von 276 4.0.2.114 (27.03.2005) OrgData: Neue Methode FormControls.CreateDefaultForm und ListColumns.CreateDefaultList. orgAnice SQL Versionen - Seite 114 von 276 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 115 von 276 4.0.2.116 (05.04.2005) Keine Änderungen. orgAnice SQL Versionen - Seite 116 von 276 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 117 von 276 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 118 von 276 4.0.2.120 (08.04.2005) interne Optimierungen orgAnice SQL Versionen - Seite 119 von 276 4.0.2.121 (22.04.2005) Interne Änderungen an OrgExport und OrgImport. orgAnice SQL Versionen - Seite 120 von 276 4.0.2.122 (22.04.2005) Keine Änderung. orgAnice SQL Versionen - Seite 121 von 276 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 122 von 276 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 123 von 276 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 124 von 276 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 125 von 276 4.0.2.127 (23.04.2005) Keine Änderung. orgAnice SQL Versionen - Seite 126 von 276 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 127 von 276 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 128 von 276 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 129 von 276 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 130 von 276 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 131 von 276 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 132 von 276 4.0.2.134 (24.04.2005) Feature: Farbverlauf wird bei Zugriff über die Terminal-Dienste deaktiviert. orgAnice SQL Versionen - Seite 133 von 276 4.0.2.135 (24.04.2005) Keine Änderungen. orgAnice SQL Versionen - Seite 134 von 276 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 135 von 276 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 136 von 276 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 137 von 276 4.0.2.139 (13.05.2005) Bug: OrgExport: Kein Absturz mehr bei Export nach CSV ohne Textqualifizierer („<Keine>“). orgAnice SQL Versionen - Seite 138 von 276 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 139 von 276 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 140 von 276 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 141 von 276 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 142 von 276 4.0.2.144 (24.05.2005) interne Optimierungen orgAnice SQL Versionen - Seite 143 von 276 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 144 von 276 4.0.2.147 (26.05.2005) Migration nach .NET durchgeführt. orgAnice SQL Versionen - Seite 145 von 276 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 146 von 276 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 147 von 276 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 148 von 276 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 149 von 276 4.0.2.152 (01.06.2005) OrgSqlImport: Problem beim Importieren von im SQL-Betrieb neu angelegten Tabellen behoben. orgAnice SQL Versionen - Seite 150 von 276 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 151 von 276 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 152 von 276 4.0.2.155 (02.06.2005) OrgData: ImageLists.Create war fehlerhaft. orgAnice SQL Versionen - Seite 153 von 276 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 154 von 276 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 155 von 276 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 156 von 276 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 157 von 276 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 158 von 276 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 159 von 276 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 160 von 276 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 161 von 276 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 162 von 276 4.0.2.165 (12.06.2005) OrgData: Application.SaveAs funktionierte nicht, wenn das Projekt dirty war. Behoben. orgAnice SQL Versionen - Seite 163 von 276 4.0.2.166 (13.06.2005) OrgExprEditor: Hilfe-Button entfernt. orgAnice SQL Versionen - Seite 164 von 276 4.0.2.167 (13.06.2005) OrgDbServer: (4.0) Volltextsuche auf numerischen Feldern (auch Ganzzahlfelder) funktioniert wieder. orgAnice SQL Versionen - Seite 165 von 276 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 166 von 276 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 167 von 276 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 168 von 276 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 169 von 276 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 170 von 276 4.0.2.173 (17.06.2005) Keine Änderungen. orgAnice SQL Versionen - Seite 171 von 276 4.0.2.174 (17.06.2005) Keine Änderungen. orgAnice SQL Versionen - Seite 172 von 276 4.0.2.175 (17.06.2005) Keine Änderungen. orgAnice SQL Versionen - Seite 173 von 276 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 174 von 276 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 175 von 276 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 176 von 276 4.0.2.179 (21.06.2005) Alle Module: Zusammenführung mit dem Haupt-Entwicklungszweig von orgAnice 4. Keine Änderungen. orgAnice SQL Versionen - Seite 177 von 276 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 178 von 276 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 179 von 276 4.0.2.182 (23.06.2005) OrgDbServer: KS: Volltextsuche zeigte bei untergeordneten Tabellen keine Progress-Bar an. Behoben. orgAnice SQL Versionen - Seite 180 von 276 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 181 von 276 4.0.2.184 (24.06.2005) OrgDbServer: KS: Umwandlung von Dokument- nach String-Feldern funktionierte nicht. Behoben. orgAnice SQL Versionen - Seite 182 von 276 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 183 von 276 4.0.2.186 (24.06.2005) OrgDbServer: Für orgAnice SQL sind Umlaute in Objekt-Bezeichnern zugelassen! orgAnice SQL Versionen - Seite 184 von 276 4.0.2.187 (24.06.2005) OrgImExport: Stack-Unterlauf bei der Auswertung der ArgumentTypes-Eigenschaft. orgAnice SQL Versionen - Seite 185 von 276 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 186 von 276 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 187 von 276 4.0.2.190 (02.07.2005) Änderungen im Code für orgAnice Pi. orgAnice SQL Versionen - Seite 188 von 276 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 189 von 276 4.0.2.192 (11.07.2005) Alle Module: interne Optimierungen orgAnice SQL Versionen - Seite 190 von 276 4.0.2.193 (11.07.2005) Änderungen im Code für orgAnice Pi. orgAnice SQL Versionen - Seite 191 von 276 4.0.2.194 (11.07.2005) OrgDbServer: Neue Methode IsMember für alle Collection-Objekte. orgAnice SQL Versionen - Seite 192 von 276 4.0.2.195 (11.07.2005) interne Optimierungen orgAnice SQL Versionen - Seite 193 von 276 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 194 von 276 4.0.2.197 (14.07.2005) interne Optimierungen orgAnice SQL Versionen - Seite 195 von 276 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 196 von 276 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 197 von 276 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 198 von 276 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 199 von 276 4.0.2.202 (20.07.2005) interne Optimierungen orgAnice SQL Versionen - Seite 200 von 276 4.0.2.203 (20.07.2005) Bug: OrgReplication funktionierte nicht mit leeren Tabellen. Behoben. orgAnice SQL Versionen - Seite 201 von 276 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 202 von 276 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 203 von 276 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 204 von 276 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 205 von 276 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 206 von 276 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 207 von 276 {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 208 von 276 4.0.2.211 (03.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 209 von 276 4.0.2.212 (04.08.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 210 von 276 4.0.2.213 (05.08.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 211 von 276 4.0.2.214 (05.08.2005) Nicht veröffentlicht. orgAnice SQL Versionen - Seite 212 von 276 4.0.2.214 (05.08.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 213 von 276 4.0.2.215 (05.08.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 214 von 276 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 215 von 276 4.0.2.217 (07.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 216 von 276 4.0.2.218 (07.08.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 217 von 276 4.0.2.219 (08.08.2005) Nur interne Änderungen. orgAnice SQL Versionen - Seite 218 von 276 4.0.2.220 (09.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 219 von 276 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 220 von 276 4.0.2.222 (10.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 221 von 276 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 222 von 276 4.0.2.224 (16.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 223 von 276 4.0.2.225 (16.08.2005) Keine Änderungen, nicht veröffentlicht. orgAnice SQL Versionen - Seite 224 von 276 4.0.2.226 (16.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 225 von 276 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 226 von 276 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 227 von 276 4.0.2.229 (17.08.2005) Nicht veröffentlicht. orgAnice SQL Versionen - Seite 228 von 276 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 229 von 276 4.0.2.231 (17.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 230 von 276 4.0.2.232 (17.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 231 von 276 4.0.2.233 (17.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 232 von 276 4.0.2.234 (18.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 233 von 276 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 234 von 276 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 235 von 276 4.0.2.237 (20.08.2005) Log: OrgDbConvert: Protokoll-Ausgaben beim Anlegen von Verknüpfungen erweitert. orgAnice SQL Versionen - Seite 236 von 276 4.0.2.238 (20.08.2005) Log: OrgDbConvert: Protokoll-Ausgaben wieder entfernt. orgAnice SQL Versionen - Seite 237 von 276 4.0.2.239 (21.08.2005) interne Optimierungen orgAnice SQL Versionen - Seite 238 von 276 4.0.2.240 (22.08.2005) Bug 3.1: Stürzte bei manchen Dokument-Links ab. Behoben. orgAnice SQL Versionen - Seite 239 von 276 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 240 von 276 4.0.2.242 (14.09.2005) COM: OrgSqlExport: Neue Methode Application.ExportFromODBEx. Benötigt für SQLReplikation. orgAnice SQL Versionen - Seite 241 von 276 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 242 von 276 4.0.2.244 (29.09.2005) OE: Eingabefeld für ReplicaID entfernt. orgAnice SQL Versionen - Seite 243 von 276 4.0.2.245 (30.09.2005) Bug: Makro-gesteuerte Reports als CSV oder HTML funktionierten nicht. Behoben. orgAnice SQL Versionen - Seite 244 von 276 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 245 von 276 4.0.2.247 (12.10.2005) Keine Änderung. orgAnice SQL Versionen - Seite 246 von 276 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 247 von 276 4.0.2.249 (14.10.2005) Keine Änderungen orgAnice SQL Versionen - Seite 248 von 276 4.0.2.250 (18.10.2005) Refakturierung im großen Stil. orgAnice SQL Versionen - Seite 249 von 276 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 250 von 276 4.0.2.252 (30.10.2005) Fehlerhaft, bitte nicht verwenden. orgAnice SQL Versionen - Seite 251 von 276 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 252 von 276 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 253 von 276 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 254 von 276 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 255 von 276 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 256 von 276 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 257 von 276 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 258 von 276 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 259 von 276 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 260 von 276 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 261 von 276 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 262 von 276 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 263 von 276 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 264 von 276 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 265 von 276 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 266 von 276 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 267 von 276 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 268 von 276 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 269 von 276 4.0.2.271 (25.12.2005) Keine Änderungen orgAnice SQL Versionen - Seite 270 von 276 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 271 von 276 4.0.2.273 (30.12.2005) Keine Änderungen orgAnice SQL Versionen - Seite 272 von 276 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 273 von 276 4.0.2.275 (03.01.2006) Problem: Das Extrahieren des Volltexts bei „Standardbenutzern“ ohne Administratorrechte funktioniert jetzt. orgAnice SQL Versionen - Seite 274 von 276 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 275 von 276 4.0.2.277 (06.01.2006) Bug: OrgDbConvert konnte keine Dateien größer als 4 GB konvertieren. Behoben. orgAnice SQL Versionen - Seite 276 von 276