|
kingfish1 Beginner
Joined: 13 Jun 2005 Posts: 20
|
Posted: Tue Feb 09, 2010 3:08 am
[3.14] SQL Error: ObjectTbl.Enabled may not be NULL |
I am getting this error when trying to add a new room to a database I converted from 2.37. The database opens fine in 2.37 but after converting to 3.14 I get this error any time I try to create a new room.
I am running Vista 64.
Any ideas/info would be appreciated.
-KF |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Tue Feb 09, 2010 5:54 pm |
You need to give us the exact step by step procedure for reproducing this. There are many different ways to add rooms to the map, so we need to know exactly what you are doing.
Also, to determine if this is a problem with your specific map database or not, try the following procedure:
1) Run CMUD, Close the Session window
2) Click the Map button in the toolbar
3) Click the "Map Mode" button in the mapper window toolbar to enable the edit toolbar on the left side of the mapper window
4) Click the square "Add Room" button in the toolbar on the left side of the mapper window, then click anywhere in the map window to add a room
Does that work? If it does, try the same procedure in your own session with your own map.
Also, please send me the crash dump or post it here within [CODE] tags so that we can see the details of the crash report. |
|
|
|
kingfish1 Beginner
Joined: 13 Jun 2005 Posts: 20
|
Posted: Fri Feb 12, 2010 4:37 am |
The steps you mentioned are the steps that I followed on my map. On a new map/session it works fine. On the one I brought from 2.37 I get the error mentioned. One thing I tried is opening the map database in a sqlite viewer and removing the not null constraints on the obj table. Once I did that I was able to create a room by clicking on the "Add Room" button and clicking on the map. It still will not automap because it now throws an error on the ExitTbl.DrawRev (I am assuming more not Null fields on a different table). I sent that report this evening.
It looks to me like a problem with the conversion and creating new rooms. When the mapper creates a new room what does it initialize the fields to and how does it get around the not null constraints in the database. Will going through and removing all the not null constraints on all the tables fix my problem (as a bandaid) or will it cause more issues later down the road after I have a lot more hours mapping.
If my map is hosed anyone happen to have a current map of Aardwolf?
Thanks
-KF |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Feb 12, 2010 5:07 am |
I got your map file via email and will play with it next week. It looks like a bug in the database conversion. Once this is fixed you should be able to just re-convert your original 2.37 map file, so just keep it handy.
|
|
|
|
mgrommet Newbie
Joined: 18 Aug 2009 Posts: 1
|
Posted: Sun Feb 14, 2010 12:18 am |
I got exactly the same error as the previous poster.
If you would like to have another converted / unconverted map database for experimentation, just holler.
M. |
|
|
|
charneus Wizard
Joined: 19 Jun 2005 Posts: 1876 Location: California
|
Posted: Sat Feb 27, 2010 9:05 pm |
I'm getting this same error myself, even with 3.14a. Using the map converter didn't help, either. It's just simply refusing to let me make a new room. Not sure what the problem is. I may wind up downgrading to another 3.xx version, converting the map with that one (since they've worked in the past...) and seeing if it produces the same error.
In the meantime, here's the call stack:
Code: |
date/time : 2010-02-27, 15:10:01, 897ms
computer name : CHARNEUS-LAPTOP
user name : Charneus <admin>
registered owner : Charneus
operating system : Windows 7 build 7600
system language : English
system up time : 14 hours 10 minutes
program up time : 9 minutes 33 seconds
processors : 2x AMD Turion(tm) 64 X2 Mobile Technology TL-60
physical memory : 882/1918 MB (free/total)
free disk space : (C:) 75.11 GB
display mode : 1280x800, 32 bit
process id : $538
allocated memory : 147.14 MB
command line : "C:\Program Files\CMUD\cMUD.exe" Aardwolf
executable : cMUD.exe
exec. date/time : 2010-02-08 12:53
version : 3.14.0.1
compiled with : BCB 2006/07
madExcept version : 3.0k
contact name :
contact email :
callstack crc : $06a99d80, $1b2f3f5a, $1b2f3f5a
exception number : 2
exception class : EZDatabaseError
exception message : SQL Error: ObjectTbl.Enabled may not be NULL.
Main ($b3c):
008b5ef5 +0e9 cMUD.exe ZAbstractDataset 417 +14 TZAbstractDataset.InternalAddRecord
77c365c6 +081 ntdll.dll RtlRaiseStatus
75dc9611 +04e KERNELBASE.dll RaiseException
77c365c6 +081 ntdll.dll RtlRaiseStatus
77c36452 +00a ntdll.dll KiUserExceptionDispatcher
00890c8a +02a cMUD.exe ZDbcStatement 2000 +1 TZEmulatedPreparedStatement.ExecuteUpdate
00890d8a +02a cMUD.exe ZDbcStatement 2040 +1 TZEmulatedPreparedStatement.ExecuteUpdatePrepared
0087cef0 +14c cMUD.exe ZDbcGenericResolver 776 +26 TZGenericCachedResolver.PostUpdates
00897350 +038 cMUD.exe ZDbcSqLiteResultSet 853 +1 TZSQLiteCachedResolver.PostUpdates
0087e628 +018 cMUD.exe ZDbcCachedResultSet 439 +5 TZAbstractCachedResultSet.PostRowUpdates
0087e7a0 +05c cMUD.exe ZDbcCachedResultSet 545 +14 TZAbstractCachedResultSet.PostUpdates
0087f118 +080 cMUD.exe ZDbcCachedResultSet 1526 +16 TZAbstractCachedResultSet.InsertRow
008b5ec4 +0b8 cMUD.exe ZAbstractDataset 415 +12 TZAbstractDataset.InternalAddRecord
008b609c +10c cMUD.exe ZAbstractDataset 465 +19 TZAbstractDataset.InternalPost
00517841 +029 cMUD.exe DB TDataSet.CheckOperation
005174dc +048 cMUD.exe DB TDataSet.Post
00d6d073 +257 cMUD.exe MapList3 3438 +30 TMapNode.MakeRoom
00a85d5c +07c cMUD.exe MapFrame3 6524 +4 TMapFr.MakeRoom
00a73fdd +b15 cMUD.exe MapFrame3 1845 +146 TMapFr.MouseBoxMouseDown
00d23946 +04e cMUD.exe MapNew3 1399 +6 TNewMapF.MapMouseBoxMouseDown
004bc5eb +02b cMUD.exe Controls TControl.MouseDown
004bc66e +076 cMUD.exe Controls TControl.DoMouseDown
004bc6bc +040 cMUD.exe Controls TControl.WMLButtonDown
004bc093 +2bb cMUD.exe Controls TControl.WndProc
004bbd20 +024 cMUD.exe Controls TControl.Perform
004bf8b6 +0aa cMUD.exe Controls GetControlAtPos
004bf97e +0a6 cMUD.exe Controls TWinControl.ControlAtPos
004bbd20 +024 cMUD.exe Controls TControl.Perform
004bfb89 +0a1 cMUD.exe Controls TWinControl.IsControlMouseMsg
004bff51 +3b5 cMUD.exe Controls TWinControl.WndProc
004bf7c0 +02c cMUD.exe Controls TWinControl.MainWndProc
0047d424 +014 cMUD.exe Classes StdWndProc
76503573 +00a USER32.dll DispatchMessageA
004aa76c +0fc cMUD.exe Forms TApplication.ProcessMessage
004aa7a6 +00a cMUD.exe Forms TApplication.HandleMessage
004aaa9b +0b3 cMUD.exe Forms TApplication.Run
00e27a78 +088 cMUD.exe CMUD 352 +20 initialization
76931192 +010 kernel32.dll BaseThreadInitThunk
|
Charneus |
|
|
|
charneus Wizard
Joined: 19 Jun 2005 Posts: 1876 Location: California
|
Posted: Sat Feb 27, 2010 9:22 pm |
Downgraded to 3.11, converted the map, no issues. It may very well just be an issue with 3.14, maybe even 3.13. I didn't test from 3.12 up because I'm on a crappy connection right now, but if need be, I can do that in about... three weeks. :\
Charneus |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Sun Feb 28, 2010 6:57 am |
Yes, it's because of the new map database conversion algorithm. CMUD 3.14 uses the same algorithm that was being tested in the external MapConvert program. Apparently there wasn't enough beta testing of the MapConvert program to find this bug. It's already on the bug list for the next version.
|
|
|
|
haderach Newbie
Joined: 10 May 2007 Posts: 4
|
Posted: Sat Dec 01, 2012 4:34 am |
I'm on CMUD 3.34, and I haven't been able to use my old maps for quite some time because of the same issues with ExitTbl.DrawRev throwing an error ("ExitTbl.DrawRev may not be null"). I discovered a way to make things work today by loading the dbm file into sqlite3 and manually removing the NOT NULL from the DrawRev column. I don't know whether this will break other things in the future, but for now, it allows me to actually use my maps and modify them.
I'm posting this in case it helps anyone else with the same problem. All you have to do is load up the dbm file in sqlite3 and rename the existing ExitTbl to a temp name. Then create a new table without the NOT NULL restrictions and move all the records over.
Code: |
> sqlite3 map.dbm
> ALTER TABLE ExitTbl RENAME TO tmp_ExitTbl;
> CREATE TABLE ExitTbl ([ExitID] INTEGER DEFAULT -1,[FromID] INTEGER,[ToID] INTEGER,[ExitKindID] INTEGER,[Name] VARCHAR(80),[Param] VARCHAR(80),[Label] VARCHAR(80),[X0] INTEGER DEFAULT 0,[Y0] INTEGER DEFAULT 0,[Z0] INTEGER DEFAULT 0,[X1] INTEGER DEFAULT 0,[Y1] INTEGER DEFAULT 0,[Z1] INTEGER DEFAULT 0,[Distance] INTEGER DEFAULT 0,[Script] TEXT,[Color] INTEGER DEFAULT 536870911,[MetaID] INTEGER DEFAULT -1,[DrawRev] BOOLEAN,[DirType] INTEGER DEFAULT 0,[DirToType] INTEGER DEFAULT 0,[Tested] BOOLEAN,[Flags] INTEGER DEFAULT 0,[UserID] INTEGER DEFAULT 0,[Modified] TIMESTAMP,[ExitIDTo] INTEGER DEFAULT -1);
> insert into ExitTbl(ExitID, FromID, ToID, ExitKindID, Name, Param, Label, X0, Y0, Z0, X1, Y1, Z1, Distance, Script, Color, MetaID, DrawRev, DirType, DirToType, Tested, Flags, UserID, Modified, ExitIDTo) select ExitID, FromID, ToID, ExitKindID, Name, Param, Label, X0, Y0, Z0, X1, Y1, Z1, Distance, Script, Color, MetaID, DrawRev, DirType, DirToType, Tested, Flags, UserID, Modified, ExitIDTo from tmp_ExitTbl;
> DROP TABLE tmp_ExitTbl;
|
|
|
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|