Subject | creating custom collations |
---|---|
Author | martinknappe |
Post date | 2006-04-25T06:05:07Z |
Hi me again
maybe I'd better come up with something concrete to see if any of you
can help me:
I've downloaded the paper describing how to create a custom collation
for interbase under
http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_collation
Next, I had to adapt the makefile a little until I was able to compile
gdsintl2.dll. Now I wanted to run the cs_example.sql file (to be found
at the above link) but when I start it, I get a lot of error messages
so would any of you please have a look at my console log and tell me
what the problem ist:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Dokumente und Einstellungen\Sancho\Desktop\custom collation
schreiben>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> input cs_example.sql;
ISQL Version: WI-V6.5.0.28
InterBase/x86/Windows NT (access method), version "WI-V6.5.0.28"
on disk structure version 10.1
CHARACTER_SET CHARACTER_SET_ID
============================== ================
ASCII 2
BIG_5 56
CYRL 50
DOS437 10
DOS850 11
DOS852 45
DOS857 46
DOS860 13
DOS861 47
DOS863 14
DOS865 12
EUCJ_0208 6
EXAMPLE_CHARSET 251
GB_2312 57
ISO8859_1 21
KSC_5601 44
NEXT 19
NONE 0
OCTETS 1
SJIS_0208 5
CHARACTER_SET CHARACTER_SET_ID
============================== ================
UNICODE_FSS 3
WIN1250 51
WIN1251 52
WIN1252 53
WIN1253 54
WIN1254 55
COLLATION COLLATION_ID
============================== ============
EXAMPLE_COLLATION 250
PXW_INTL 1
PXW_INTL850 2
PXW_NORDAN4 3
PXW_SPAN 4
PXW_SWEDFIN 5
WIN1252 0
Statement failed, SQLCODE = -924
bad parameters on attach or create database
-CHARACTER SET EXAMPLE_CHARSET is not defined
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
select * from x2 order by a;
Use CONNECT or CREATE DATABASE to specify a database
select * from x2 order by a descending;
Use CONNECT or CREATE DATABASE to specify a database
create index x2 on x2(a);
Use CONNECT or CREATE DATABASE to specify a database
select * from x2 order by a;
Use CONNECT or CREATE DATABASE to specify a database
set echo off;
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
select * from x3;
Use CONNECT or CREATE DATABASE to specify a database
select * from x3 order by a;
Use CONNECT or CREATE DATABASE to specify a database
select * from x3 order by a descending;
Use CONNECT or CREATE DATABASE to specify a database
create index x3 on x3(a);
Use CONNECT or CREATE DATABASE to specify a database
select * from x3 order by a;
Use CONNECT or CREATE DATABASE to specify a database
commit;
Use CONNECT or CREATE DATABASE to specify a database
/* Now set the DEFAULT CHARACTER SET of the database to the new
character set
NOTE: We cannot do this when the database is created as the charset
must be declared to the database first */
execute procedure set_default_character_set ('EXAMPLE_CHARSET');
Use CONNECT or CREATE DATABASE to specify a database
commit;
Use CONNECT or CREATE DATABASE to specify a database
/* Reload the database so the metadata is reloaded */
connect '/tmp/example.gdb' user 'SYSDBA' password 'masterkey';
Statement failed, SQLCODE = -924
bad parameters on attach or create database
-CHARACTER SET EXAMPLE_CHARSET is not defined
show database;
Use CONNECT or CREATE DATABASE to specify a database
create table x4 (a character(25));
Use CONNECT or CREATE DATABASE to specify a database
commit;
Use CONNECT or CREATE DATABASE to specify a database
show table x1;
Use CONNECT or CREATE DATABASE to specify a database
show table x2;
Use CONNECT or CREATE DATABASE to specify a database
show table x3;
Use CONNECT or CREATE DATABASE to specify a database
show table x4;
Use CONNECT or CREATE DATABASE to specify a database
commit;
Use CONNECT or CREATE DATABASE to specify a database
/* These drops will fail as objects are in use */
execute procedure drop_collation ('EXAMPLE_COLLATION');
Use CONNECT or CREATE DATABASE to specify a database
execute procedure drop_collation ('EXAMPLE_CHARSET');
Use CONNECT or CREATE DATABASE to specify a database
execute procedure drop_character_set ('EXAMPLE_CHARSET');
Use CONNECT or CREATE DATABASE to specify a database
commit;
Use CONNECT or CREATE DATABASE to specify a database
drop table x2;
Use CONNECT or CREATE DATABASE to specify a database
execute procedure drop_collation ('EXAMPLE_COLLATION');
Use CONNECT or CREATE DATABASE to specify a database
execute procedure drop_character_set_alias ('EXAMPLE_BY_ANOTHER_NAME');
Use CONNECT or CREATE DATABASE to specify a database
drop table x1;
Use CONNECT or CREATE DATABASE to specify a database
drop table x3;
Use CONNECT or CREATE DATABASE to specify a database
drop table x4;
Use CONNECT or CREATE DATABASE to specify a database
execute procedure drop_character_set ('EXAMPLE_CHARSET');
Use CONNECT or CREATE DATABASE to specify a database
commit;
Use CONNECT or CREATE DATABASE to specify a database
select * from show_character_sets;
Use CONNECT or CREATE DATABASE to specify a database
select * from show_collations ('WIN1252');
Use CONNECT or CREATE DATABASE to specify a database
/* drop database; */
quit;
maybe I'd better come up with something concrete to see if any of you
can help me:
I've downloaded the paper describing how to create a custom collation
for interbase under
http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_collation
Next, I had to adapt the makefile a little until I was able to compile
gdsintl2.dll. Now I wanted to run the cs_example.sql file (to be found
at the above link) but when I start it, I get a lot of error messages
so would any of you please have a look at my console log and tell me
what the problem ist:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Dokumente und Einstellungen\Sancho\Desktop\custom collation
schreiben>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> input cs_example.sql;
ISQL Version: WI-V6.5.0.28
InterBase/x86/Windows NT (access method), version "WI-V6.5.0.28"
on disk structure version 10.1
CHARACTER_SET CHARACTER_SET_ID
============================== ================
ASCII 2
BIG_5 56
CYRL 50
DOS437 10
DOS850 11
DOS852 45
DOS857 46
DOS860 13
DOS861 47
DOS863 14
DOS865 12
EUCJ_0208 6
EXAMPLE_CHARSET 251
GB_2312 57
ISO8859_1 21
KSC_5601 44
NEXT 19
NONE 0
OCTETS 1
SJIS_0208 5
CHARACTER_SET CHARACTER_SET_ID
============================== ================
UNICODE_FSS 3
WIN1250 51
WIN1251 52
WIN1252 53
WIN1253 54
WIN1254 55
COLLATION COLLATION_ID
============================== ============
EXAMPLE_COLLATION 250
PXW_INTL 1
PXW_INTL850 2
PXW_NORDAN4 3
PXW_SPAN 4
PXW_SWEDFIN 5
WIN1252 0
Statement failed, SQLCODE = -924
bad parameters on attach or create database
-CHARACTER SET EXAMPLE_CHARSET is not defined
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
select * from x2 order by a;
Use CONNECT or CREATE DATABASE to specify a database
select * from x2 order by a descending;
Use CONNECT or CREATE DATABASE to specify a database
create index x2 on x2(a);
Use CONNECT or CREATE DATABASE to specify a database
select * from x2 order by a;
Use CONNECT or CREATE DATABASE to specify a database
set echo off;
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
select * from x3;
Use CONNECT or CREATE DATABASE to specify a database
select * from x3 order by a;
Use CONNECT or CREATE DATABASE to specify a database
select * from x3 order by a descending;
Use CONNECT or CREATE DATABASE to specify a database
create index x3 on x3(a);
Use CONNECT or CREATE DATABASE to specify a database
select * from x3 order by a;
Use CONNECT or CREATE DATABASE to specify a database
commit;
Use CONNECT or CREATE DATABASE to specify a database
/* Now set the DEFAULT CHARACTER SET of the database to the new
character set
NOTE: We cannot do this when the database is created as the charset
must be declared to the database first */
execute procedure set_default_character_set ('EXAMPLE_CHARSET');
Use CONNECT or CREATE DATABASE to specify a database
commit;
Use CONNECT or CREATE DATABASE to specify a database
/* Reload the database so the metadata is reloaded */
connect '/tmp/example.gdb' user 'SYSDBA' password 'masterkey';
Statement failed, SQLCODE = -924
bad parameters on attach or create database
-CHARACTER SET EXAMPLE_CHARSET is not defined
show database;
Use CONNECT or CREATE DATABASE to specify a database
create table x4 (a character(25));
Use CONNECT or CREATE DATABASE to specify a database
commit;
Use CONNECT or CREATE DATABASE to specify a database
show table x1;
Use CONNECT or CREATE DATABASE to specify a database
show table x2;
Use CONNECT or CREATE DATABASE to specify a database
show table x3;
Use CONNECT or CREATE DATABASE to specify a database
show table x4;
Use CONNECT or CREATE DATABASE to specify a database
commit;
Use CONNECT or CREATE DATABASE to specify a database
/* These drops will fail as objects are in use */
execute procedure drop_collation ('EXAMPLE_COLLATION');
Use CONNECT or CREATE DATABASE to specify a database
execute procedure drop_collation ('EXAMPLE_CHARSET');
Use CONNECT or CREATE DATABASE to specify a database
execute procedure drop_character_set ('EXAMPLE_CHARSET');
Use CONNECT or CREATE DATABASE to specify a database
commit;
Use CONNECT or CREATE DATABASE to specify a database
drop table x2;
Use CONNECT or CREATE DATABASE to specify a database
execute procedure drop_collation ('EXAMPLE_COLLATION');
Use CONNECT or CREATE DATABASE to specify a database
execute procedure drop_character_set_alias ('EXAMPLE_BY_ANOTHER_NAME');
Use CONNECT or CREATE DATABASE to specify a database
drop table x1;
Use CONNECT or CREATE DATABASE to specify a database
drop table x3;
Use CONNECT or CREATE DATABASE to specify a database
drop table x4;
Use CONNECT or CREATE DATABASE to specify a database
execute procedure drop_character_set ('EXAMPLE_CHARSET');
Use CONNECT or CREATE DATABASE to specify a database
commit;
Use CONNECT or CREATE DATABASE to specify a database
select * from show_character_sets;
Use CONNECT or CREATE DATABASE to specify a database
select * from show_collations ('WIN1252');
Use CONNECT or CREATE DATABASE to specify a database
/* drop database; */
quit;