
|
If you were logged in you would be able to see more operations.
|
|
|
| Planning Status: |
Unspecified
|
|
On UTF8 connection:
isc_get_segment from V_T_TEST.MEMO_UTF8 V_T_TEST.MEMO_WIN1250 returns buffer as utf-8 string
but
isc_put_segment on V_T_TEST.MEMO_UTF8 with buffer as utf-8 is OK
isc_put_segment on V_T_TEST.MEMO_WIN1250 with buffer as utf-8 not transliterate character set and stores in table incorrect as utf-8
isc_put_segment on V_T_TEST.MEMO_WIN1250 with buffer as win1250 report error malformed string
on table T_TEST isc_get_segment, isc_put_segment with buffer utf-8 works OK
CREATE TABLE T_TEST (
ID UID NOT NULL /* UID = BIGINT */,
MEMO_UTF8 MEMO_UTF8 /* MEMO_UTF8 = BLOB SUB_TYPE 1 SEGMENT SIZE 100 */,
MEMO_WIN1250 MEMO_WIN1250 /* MEMO_WIN1250 = BLOB SUB_TYPE 1 SEGMENT SIZE 100 */,
MEMO_OCTETS MEMO_OCTETS /* MEMO_OCTETS = BLOB SUB_TYPE 1 SEGMENT SIZE 100 */
);
ALTER TABLE T_TEST ADD CONSTRAINT PK_T_TEST PRIMARY KEY (ID);
CREATE OR ALTER VIEW V_T_TEST(
ID,
MEMO_UTF8,
MEMO_WIN1250,
MEMO_OCTETS)
AS
SELECT
T.ID,
T.MEMO_UTF8,
T.MEMO_WIN1250,
T.MEMO_OCTETS
FROM T_TEST T
;
SET TERM ^ ;
/* Trigger: V_T_TEST_BD */
CREATE OR ALTER TRIGGER V_T_TEST_BD FOR V_T_TEST
ACTIVE BEFORE DELETE POSITION 0
AS
BEGIN
DELETE FROM T_TEST
WHERE ID = OLD.ID;
END
^
/* Trigger: V_T_TEST_BI */
CREATE OR ALTER TRIGGER V_T_TEST_BI FOR V_T_TEST
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
INSERT INTO T_TEST(
ID,
MEMO_UTF8,
MEMO_WIN1250,
MEMO_OCTETS)
VALUES(
NEW.ID,
NEW.MEMO_UTF8,
NEW.MEMO_WIN1250,
NEW.MEMO_OCTETS);
END
^
/* Trigger: V_T_TEST_BU */
CREATE OR ALTER TRIGGER V_T_TEST_BU FOR V_T_TEST
ACTIVE BEFORE UPDATE POSITION 0
AS
BEGIN
UPDATE T_TEST SET
ID = NEW.ID,
MEMO_UTF8 = NEW.MEMO_UTF8,
MEMO_WIN1250 = NEW.MEMO_WIN1250,
MEMO_OCTETS = NEW.MEMO_OCTETS
WHERE ID = OLD.ID;
END
^
SET TERM ; ^
|
|
Description
|
On UTF8 connection:
isc_get_segment from V_T_TEST.MEMO_UTF8 V_T_TEST.MEMO_WIN1250 returns buffer as utf-8 string
but
isc_put_segment on V_T_TEST.MEMO_UTF8 with buffer as utf-8 is OK
isc_put_segment on V_T_TEST.MEMO_WIN1250 with buffer as utf-8 not transliterate character set and stores in table incorrect as utf-8
isc_put_segment on V_T_TEST.MEMO_WIN1250 with buffer as win1250 report error malformed string
on table T_TEST isc_get_segment, isc_put_segment with buffer utf-8 works OK
CREATE TABLE T_TEST (
ID UID NOT NULL /* UID = BIGINT */,
MEMO_UTF8 MEMO_UTF8 /* MEMO_UTF8 = BLOB SUB_TYPE 1 SEGMENT SIZE 100 */,
MEMO_WIN1250 MEMO_WIN1250 /* MEMO_WIN1250 = BLOB SUB_TYPE 1 SEGMENT SIZE 100 */,
MEMO_OCTETS MEMO_OCTETS /* MEMO_OCTETS = BLOB SUB_TYPE 1 SEGMENT SIZE 100 */
);
ALTER TABLE T_TEST ADD CONSTRAINT PK_T_TEST PRIMARY KEY (ID);
CREATE OR ALTER VIEW V_T_TEST(
ID,
MEMO_UTF8,
MEMO_WIN1250,
MEMO_OCTETS)
AS
SELECT
T.ID,
T.MEMO_UTF8,
T.MEMO_WIN1250,
T.MEMO_OCTETS
FROM T_TEST T
;
SET TERM ^ ;
/* Trigger: V_T_TEST_BD */
CREATE OR ALTER TRIGGER V_T_TEST_BD FOR V_T_TEST
ACTIVE BEFORE DELETE POSITION 0
AS
BEGIN
DELETE FROM T_TEST
WHERE ID = OLD.ID;
END
^
/* Trigger: V_T_TEST_BI */
CREATE OR ALTER TRIGGER V_T_TEST_BI FOR V_T_TEST
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
INSERT INTO T_TEST(
ID,
MEMO_UTF8,
MEMO_WIN1250,
MEMO_OCTETS)
VALUES(
NEW.ID,
NEW.MEMO_UTF8,
NEW.MEMO_WIN1250,
NEW.MEMO_OCTETS);
END
^
/* Trigger: V_T_TEST_BU */
CREATE OR ALTER TRIGGER V_T_TEST_BU FOR V_T_TEST
ACTIVE BEFORE UPDATE POSITION 0
AS
BEGIN
UPDATE T_TEST SET
ID = NEW.ID,
MEMO_UTF8 = NEW.MEMO_UTF8,
MEMO_WIN1250 = NEW.MEMO_WIN1250,
MEMO_OCTETS = NEW.MEMO_OCTETS
WHERE ID = OLD.ID;
END
^
SET TERM ; ^
|
Show » |
|