|
|
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
Доброго вечера! Перетащил базу с Accessа на IBase, только встала проблема что делать с boolевскими полями. Datapump загнал их в varchar(1), но в таком виде с ними работать невозможно. Подскажите как лучше поступить? На крайняк как их попроще в shortinteger перевести? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 18:17:00 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
Я вот в БД сделал свои boolean- поля типа shortint, и теперь жалею- все время забываю, что у меня true- 0 или 1. Лучше уж char(1) - "Y"/"N", сразу ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 21:06:59 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
FEVДоброго вечера! Перетащил базу с Accessа на IBase, только встала проблема что делать с boolевскими полями. Datapump загнал их в varchar(1), но в таком виде с ними работать невозможно. Подскажите как лучше поступить? Уточни версию Interbase. В семерке появился тип поля Boolean. Код: plaintext А в каком виде они сейчас в varchar(1) стали выглядеть ? Если, например "0" и "1", а версия InterBase<7.0, тогда : Create Domain BooleanD As Integer Default 0 Check (Value In (0,1)); Alter Table SomeTable Add BooleanColumn BooleanD; Update SomeTable Set BooleanColumn=VarcharColumn; Alter Table SomeTable Drop VarcharColumn; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 21:18:00 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
Smallint + Check Value(0,1) не подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 22:29:08 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
Если с FIBPlus работаешь, то он тип Integer может понимать как Bool-ево да и в Блядере или Дельфях 0 - false , все иное - true тобишь i=0 if(i) - нафиг i=1 if(i) - окей! ShortInt - FIB тупит, или я не знаю настроек. но в грид он мне его как Bool не дает. а с Var или просто Char - понятнее в базе, но сложнее в обработке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 23:04:22 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
IBase 7.1 авторА в каком виде они сейчас в varchar(1) стали выглядеть ? Если, например "0" и "1" В виде "F" и "T". IBase Manager на попытку смены типа поля на boolean даёт ошибку: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 09:52:41 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
Возможно ли поменять тип поля с varchar(1) на integer без создания нового поля? (поле содержит только "1" и "0")? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 10:07:01 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
так он у тебя на COLLATE ругается, скрипт изменения типа может покажешь? и вообще, что за COLLATE для типа Boolean, разве он там может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 10:16:34 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
но всё та4ки экспериментировать лучше на експерементальной БД... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 10:17:23 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
IBase manager генерит такой скрипт: Код: plaintext 1. 2. 3. 4. This operation is not defined for system tables. unsuccessful metadata update. Cannot change datatype for column ZAMENA from a character type to a non-character type. Короче, как я понял, вариант только один: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 10:28:22 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
я работаю с FB1.5 там нет булевых полей, поэтому не могу ничего сказать толкового, но если устроит вариант с созданием промежуточного поля, то можно и так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 12:42:49 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
авторя работаю с FB1.5 там нет булевых полей, поэтому не могу ничего сказать толкового, но если устроит вариант с созданием промежуточного поля, то можно и так... Только тогда встаёт другой вопрос: как потом это промежуточное поле переименовать в прежнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 12:48:57 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
Легко. Прочитав документацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 12:52:05 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
авторЛегко. Прочитав документацию. Мимопроходящий , может подскажете команду переименования поля в таблице, а то я что-то не припомню такой в SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 13:20:53 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
Я сноб. Мне в западло. Доку читай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 13:27:51 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
Эх-эх, держи пример. alter table users_mailbox alter column stamp to timemarker users_mailbox - имя таблицы stamp - старое имя поля timemarker - новое имя поля разумеется на это поле таблицы не должно быть нигде ссылок (см. Dependencies) если есть - убери, потом сделаешь на новое имя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 14:43:28 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
в принципе можно и ручками в ситемных таблицах, но если не знаешь как то минимум - не получится, максимум - запорешь БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 14:45:16 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
2 d'Evil Спасибо. Буду знать. Но я всё-таки решил воспользоваться преимуществами версии 7.1 и сделал так: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 14:48:19 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
FEVupdate RDB$RELATION_FIELDS set RDB$FIELD_SOURCE = 'RDB$SYSTEM_FLAG' where (RDB$FIELD_NAME = 'Fld') and (RDB$RELATION_NAME = 'Tbl'); А нахрена? Тем болеЕ, что потом делаешь: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 15:04:59 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
То что ты делаешь путём подсовывания RDB$FIELD_SOURCE - грязный хак. Пусть даже возведённый автором IBExpert'a в ранг "законных". Но хак. Можно же сделать по человечески. Как тебе советовали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 15:28:38 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
авторМожно же сделать по человечески. Как тебе советовали. А как мне советовали? Уйти от bool к другому типу поля? Мне придётся прогу заново переписать, а это не раз плюнуть. А больше советов и не было... Я не пойму чем вас не устраивает моё решение? Хак или нет, но это работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 15:42:14 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
FEVА как мне советовали? Уйти от bool к другому типу поля? Мне придётся прогу заново переписать, а это не раз плюнуть. А больше советов и не было... Тебе советовали создать промежуточное поле, перелить в него данные (с конвертацией), потом старое дропнуть, а новое переименовать. FEVЯ не пойму чем вас не устраивает моё решение? Хак или нет, но это работает. Да нам-то пофигу. Тебе жить. Ковыряние в системных таблицах - способ умереть молодым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 15:51:44 |
|
||
|
Bool -> ?
|
|||
|---|---|---|---|
|
#18+
FEVА как мне советовали? Уйти от bool к другому типу поля? Мне придётся прогу заново переписать, а это не раз плюнуть. А больше советов и не было... Я не пойму чем вас не устраивает моё решение? Хак или нет, но это работает. Что ж ты, али не слушаешь ? Я ж тебе сразу сказал Уточни версию Interbase. В семерке появился тип поля Boolean. Вот и пользуй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 18:35:15 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32608002&tid=1578228]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 528ms |

| 0 / 0 |
