powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Переименование полей
19 сообщений из 19, страница 1 из 1
Переименование полей
    #33141532
_Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Засада такая
Проект готов к сдаче, он у меня первый
так вот дошло всеря до процедуры реиндексации
почитал все и решил как советует господин Королев
1)Создал скрипт gendbc
2)создаю в временной папке БД
для последующего копирования индексов и прочего
(кроме dbf ftp)-как учили.
И вот она засада
В многих таблицах поля-
названы "PRIM"
(Тока ниче мне не говорите, я уже все сам про себя знаю!!! ёпрст.....)
и на ALTER TABLE засада себя проявила-
Это хороший человек "Фокс" думает что я хочу написать
PRIMARY ну и все вытекающие последствия

Как я могу изменить название полей втаблицах(и читай далее
в представлениях, формах отчетах и прочая)
"PRIM" на что нибудь более удобоваримое фоксом...
Я знаю, фокс умный, должно все получиться
руками лопатить-сами понимаете.
У мня уже острая сердечная недостаточность....

Теперь уже думаю может я зря поля именовал более 10 символов,
может тоже переименовать???
Воопщем Вы все понимаете........
Прошу помощи
...
Рейтинг: 0 / 0
Переименование полей
    #33141708
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi _Новичек!

Если есть скрипт от GENDBC, то проведи там "автозамену" этого PRIM, сгенерируй полностью базу - а потом напиши программку, которая используя ADBOBJECTS(), AFIELDS() и простые циклы сделает перекачку данных из одной базы в другую (например сформирует INSERT ... SELECT ... - тогда даже переименовывать в запросе поля не надо - лишь бы порядок совпадал).
можно также пойти на метод грубого хака - скажем ты решил все PRIM переименовать в PRIMECH - в скрипте понятно как заменить, базу новую сделал - и теперь туда старый dbf+fpt, только dbf после копирования открываем через FOPEN, идём на Field subrecords, считываем по 32 байта, и ежели нашли наше PRIM - записываем на то место PRIMECH - и всё. В индексах и в самом dbc уже и так "новое" имя.

P.S. Обычно с такими "нехорошими" именами помогают справится кавычки - хотя конечно в общем случае лучше всё-же от них (имён таких) избавится, пока не слишком поздно.

P.P.S. Для работы с собственно программой - если фокс >=8 используй CodeReferences - найдёт все ссылки на PRIM - и даже кое где (в текстах методов/процедур) поможет заменить :) Вот свойства объектов она AFAIR не обрабатывает...

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Переименование полей
    #33141813
_новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да вот оказывается все ккак просто
нашел Filer-им все места в проекте где есть PRIM
ну и свято подумал что можно изменить,
а оказывается вот все ак сложно..........
То есть свойства объектов-например колумнов мне толькоручками????
Блин, я разярен...
...
Рейтинг: 0 / 0
Переименование полей
    #33141849
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открываешь все файлы проекта через FOPEN, ищешь ".PRIM ", заменяешь на что-нибудь из 4-х буковок...Типа ".ABCD "... Назначение точки впереди и пробела сзади понятно? ;-)
...
Рейтинг: 0 / 0
Переименование полей
    #33141865
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что делать в таком случае:

а = somefunc(prim)
...
Рейтинг: 0 / 0
Переименование полей
    #33143090
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После поиска и замены ".PRIM " поискать "(PRIM)"... :-)))
...
Рейтинг: 0 / 0
Переименование полей
    #33143124
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedrikПосле поиска и замены ".PRIM " поискать "(PRIM)"... :-)))
Поискать просто "PRIM", только выдаст больше мест, чем потребуется править ;-)
...
Рейтинг: 0 / 0
Переименование полей
    #33143376
_новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чего значит точка-не знаю, подскажите
что обязательно 4 символа-удручает...
мне так и не ответили -свойства в формах править только руками
Попробовать не могу, пока не у проекта, просьба не пинать...
...
Рейтинг: 0 / 0
Переименование полей
    #33143453
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_новичекЧего значит точка-не знаю
Например, пишешь "корректно", то должно быть так:
Код: plaintext
REPLACE MyTable.Prim WITH "zzz"
Вот и будет точка перед "PRIM" и пробел после "PRIM".
Если алиас не указывал, тогда ищи " PRIM " - ведь что бы ты с полем не вытворял, его имя окружают пробелы... Не так ли? Еще может быть нечто похожее на "PRIM=", "PRIM =" и т.п. Вспоминай!

_новичекчто обязательно 4 символа-удручает...
Почему? Разве недостаточно? Зато можно "автоматом" сделать тупую замену везде и всюду не заморачиваясь!

_новичекмне так и не ответили -свойства в формах править только руками
Давай-ка я спрошу - у тебя где-нибудь встречается "PRIM", кроме указанного тобой случая? Если нет - мой "совет" в силе! Если да - придется помучиться... Но откуда ж возьмется опыт, как не через муки? ;-)

P.S. Где-то в инете валяется готовая мелкая программулька, нарисованная на великом и вечном Васике, заменяющая одну символьную строку на другую во всех файлах указанного каталога...
...
Рейтинг: 0 / 0
Переименование полей
    #33143516
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Redrik
ведь что бы ты с полем не вытворял, его имя окружают пробелы... Не так ли?

Увы, но не так.

а = PRIM

replace somefield1 with PRIM, somefield2 with ...

a = alltrim(PRIM)

a = &PRIM..somefield
...
Рейтинг: 0 / 0
Переименование полей
    #33144050
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Sergey!

> a = &PRIM..somefield

Некорректно - макро не работает с полями :)

2 _новичек scx, vcx и т.п. это по сути таблицы - т.е. можно их открыть по USE, и сделать замену - свойства хранятся в поле Properties, код методов - в Methods (только не забывай ДО правки сделать резервную копию, а после такой правки сделать COMPILE FORM aaa или COMPILE CLASSLIB bbb). Я не знаю почему разработчики CodeReferences не дали возможность делать замену ещё и в свойствах - видимо это слишком уж опасно :)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Переименование полей
    #33144224
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Igor Korolyov:

В общем-то, речь шла том, как что -то сделать, а том, как это может выглядеть в исходном тексте. И не более того.
...
Рейтинг: 0 / 0
Переименование полей
    #33144272
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Sergey Sizov
Угу... Но пусть вопрошающий тоже немного понапрягается, вспоминая ЧТО он творил со своим "ПРИМом"! ;-)
В крайнем случае (если не все вспомнит) - пусть послушает совет Urri! Только тогда уж придется все делать вручную...

Кстати, а какой смысл Вы видите в присвоении переменной значения поля с примечанием? Или в REPLACE его в какое-то другое поле?
...
Рейтинг: 0 / 0
Переименование полей
    #33144349
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Redrik
Где-то в инете валяется готовая мелкая программулька, нарисованная на великом и вечном Васике
за то время пока идет дискусия можно и самому программу сваять подобную этой
без всякого двойного смысла просто предложение к автору
проблемма то как бы и не проблема
...
Рейтинг: 0 / 0
Переименование полей
    #33144378
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to leaf:
Согласен! ;-)
Но - "Проект готов к сдаче, он у меня первый" ... Потянет ли? ;-)
Да и до сих пор неизвестно - подходит ли в данном случае такая "глобальная" замена?
...
Рейтинг: 0 / 0
Переименование полей
    #33144433
_новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стараюсь жить по принципу
"Дурак не знает и не спросит,
а умный и знает и спросит"
В данном случае конечно я не говорю что знаю,
но вопрос считаю необходимым обсудить с профессионалами
я конечно же нашел все места в проекте, где у меня есть указание
на 'PRIM'
Вначале подумалось-а вдруг открыть все текстовым редактором, да и все имена изменить на 'KOMMENS'
Но нет, думаю дай спрошу.
И узнал много нового, что в таблице есть
Field subrecords,с пользовательскими свойствами не все так просто
и прочее.
Можно ведь взять и сдеалать поверхностно проработав вопрос,
а потом с глюками придут ко мне.
Если ты писал, ты же ответственнен.
Спасибо всем большое за помощь,
будем править, с учетом Ваших хороших советов....
...
Рейтинг: 0 / 0
Переименование полей
    #33144458
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Redrik:

Приведенные мной строчки кода - всего лишь разные примеры использования поля в выражениях, виденные мной в разных программах, в том числе и писанных новичками в фоксе. Поэто о смысле этих строк меня лучше не спрашивать, иногда мне самому приходится долго голову ломать над пониманим смысла написанного. Еще раз поврторяю - это всего лишь примеры текста и не более того.
...
Рейтинг: 0 / 0
Переименование полей
    #33146213
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi _новичек!

"Текстовой заменой" можно пользоваться только для prg и подобных ТЕКСТОВЫХ файлов - а вот для sct/vct это НЕЛЬЗЯ делать - там внутри структура, и любое "смещение" просто убъёт файл. Хотя если заменять на "равноразмерное" выражение - то вполне возможно :)
Конечно в общем случае лучше работать штатными командами обработки dbf-ов.
Собственно сами dbf-ы с "плохими" полями - если и заменять "автоматически", то о-очень осторожно - cdx в принципе не приспособлен к такой "замене" - проще его перестроить с нуля...

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Переименование полей
    #33146226
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Igor
> cdx в принципе не приспособлен к такой "замене" - проще его перестроить с нуля...
;-)
В этом смысле автору повезло, что PRIM - это поле примечаний (скорее всего, индекса не будет).
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Переименование полей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]