Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Копия таблиц базы с переименованием полей...
|
|||
|---|---|---|---|
|
#18+
Подскажите кто сталкивался с подобной проблемой: Нужно экспортировать в другую прогу данные, при этом так уж получилось что в ней поля некоторых таблиц называються по другому, либо их вообще нет (структура несовпадает).. Как сделать копироване базы с переименованием полей (изменением структуры)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 15:19 |
|
||
|
Копия таблиц базы с переименованием полей...
|
|||
|---|---|---|---|
|
#18+
почему не запросом ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 15:26 |
|
||
|
Копия таблиц базы с переименованием полей...
|
|||
|---|---|---|---|
|
#18+
или как вариант copy как файл и alter table ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 15:29 |
|
||
|
Копия таблиц базы с переименованием полей...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 18:01 |
|
||
|
Копия таблиц базы с переименованием полей...
|
|||
|---|---|---|---|
|
#18+
да, все классно! Спасибо! только есть еще такой ньюанс: в базе названия полей длинные, когда я селектом делаю выборку и формирую новую таблицу с нужными именами полей, длина этих полей обрезается до 10 символов!!! .. незнаю чесно говоря почему.. Как с этим бороться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 11:29 |
|
||
|
Копия таблиц базы с переименованием полей...
|
|||
|---|---|---|---|
|
#18+
Andriy Likhodidтакая фигня получается, когда делаешь SELECT name as name_of_field FROM tmptable INTO table newtable. То при открытии таблицы newtable название поля будет name_of_fi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 11:32 |
|
||
|
Копия таблиц базы с переименованием полей...
|
|||
|---|---|---|---|
|
#18+
Andriy Likhodidда, все классно! Спасибо! только есть еще такой ньюанс: в базе названия полей длинные, когда я селектом делаю выборку и формирую новую таблицу с нужными именами полей, длина этих полей обрезается до 10 символов!!! .. незнаю чесно говоря почему.. Как с этим бороться? Никак Это ограничение свободных таблиц. Т.е. таблиц не включенных в контейнер базы данных (DBC). Можно обойти следующими способами: 1) Формировать не таблицу (INTO TABLE|DBF), а курсор (INTO CURSOR). Как собственно и привел в примере Анатолий. Недостаток : такой курсор может физически и не создать файла на диске. Как следвие, APPEND FROM выдаст сообщение об ошибке, что такого файла не найдено. Предсказать такую ситуацию очень проблематично. Зависит от многих факторов 2) Создать временную базу данных и создавать новую таблицу сразу в этой временной базе данных: Код: plaintext 1. 2. Недостатки : надо следить за корректностью имен и текущей базой данных (SET DATABASE). Вобщем, нужна повышенная бдительность от программиста, чтобы не перпутать таблицы из разных баз данных 3) Можно вообще не использовать Select-SQL, а делать вставку прямым сканированием: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 12:22 |
|
||
|
Копия таблиц базы с переименованием полей...
|
|||
|---|---|---|---|
|
#18+
2 ВладимирМ > 1) Формировать не таблицу (INTO TABLE|DBF), а курсор (INTO CURSOR). > Как собственно и привел в примере Анатолий. > Недостаток: такой курсор может физически и не создать файла на диске. Совершенно верно. > Как следвие, APPEND FROM выдаст сообщение об ошибке, что такого файла > не найдено. Неверно! Для фокса физическое наличие файла на диске не требуется! APPEND FROM DBF("CursorAlias") сработает даже если никакого физического файла с именем DBF("CursorAlias") на диске и не существует! Другое дело что выборка может не создать реального курсора, а лишь повторно открыть ту-же таблицу но под другим алиасом - я не уверен что фокс так сделает если в запросе реально имеются конструкции переименования полей (cOriginalName AS cNewName) - но всё-же исключать не стал бы. От этой оптимизации лечит опция NOFILTER в запросе (для очень старых версий фокса введение дополнительного фиктивного поля типа .T. AS lDummy) > 2) Создать временную базу данных и создавать новую таблицу сразу в > этой временной базе данных: А смысл? Если уж нужно из одной базы в другую - то прям её и указывай как целевая база - ну разве что надо реально "объединять" данные, а не просто залить новые... Posted via ActualForum NNTP Server 1.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 01:24 |
|
||
|
Копия таблиц базы с переименованием полей...
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Неверно! Для фокса физическое наличие файла на диске не требуется! APPEND FROM DBF("CursorAlias") сработает даже если никакого физического файла с именем DBF("CursorAlias") на диске и не существует! В целом так оно и есть. Но однажды я нарвался именно на ошибку невозможности APPEND FROM (dbf("CursorAlias")). К сожалению, сейчас не вспомню, в чем там было дело. Возможно, действительно забыл NOFILTER. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 09:36 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32716940&tid=1595716]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
90ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 397ms |

| 0 / 0 |
