我在嘗試向Firebird數據庫中插入值時遇到問題。我使用十六進制表示法將值插入到表中。Firebird向表格中插入十六進制值(算術例外)
我做一個插入這樣的:
INSERT INTO ACCELEROMETER (PHYSICALID, XACCEL, YACCEL, ZACCEL, TIMEEPOCH,
TIMEOFFSET, TSTAMP)
VALUES (2, 0x12DF, 0x8000, 0x12, 0x45612, 0x0, current_timestamp);
,當我嘗試插入值大於0x7FFF的更大,會出現問題。我知道,所有的火鳥變量簽名,每當我試圖像插入值0x8000我應該得到一個值-32768,但我不斷收到這樣的信息:
引擎代碼:335544321引擎消息:
算術異常,數值溢出或字符串截斷數字 值超出範圍
它看起來就像當我嘗試插入爲0x8000火鳥認爲它是32768,這顯然是不行的,因爲它比大SMALLINT字段允許什麼。我的印象是,如果我插入十六進制值,firebird會看到最重要的位被設置,它會知道這是一個負值。我在這裏錯過了什麼?
感謝,
下面是表:
RECREATE TABLE accelerometer (
id int not null primary key,
physicalId int not null, -- foreign key physicalDevice table
xAccel SMALLINT,
yAccel SMALLINT,
zAccel SMALLINT,
timeEpoch BIGINT,
timeOffset INTEGER,
tStamp timeStamp -- time stamp generated by the firebird db at the time a record is entered
);