|
|
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
Засада такая Проект готов к сдаче, он у меня первый так вот дошло всеря до процедуры реиндексации почитал все и решил как советует господин Королев 1)Создал скрипт gendbc 2)создаю в временной папке БД для последующего копирования индексов и прочего (кроме dbf ftp)-как учили. И вот она засада В многих таблицах поля- названы "PRIM" (Тока ниче мне не говорите, я уже все сам про себя знаю!!! ёпрст.....) и на ALTER TABLE засада себя проявила- Это хороший человек "Фокс" думает что я хочу написать PRIMARY ну и все вытекающие последствия Как я могу изменить название полей втаблицах(и читай далее в представлениях, формах отчетах и прочая) "PRIM" на что нибудь более удобоваримое фоксом... Я знаю, фокс умный, должно все получиться руками лопатить-сами понимаете. У мня уже острая сердечная недостаточность.... Теперь уже думаю может я зря поля именовал более 10 символов, может тоже переименовать??? Воопщем Вы все понимаете........ Прошу помощи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2005, 21:36:27 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 03:52:33 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
Да вот оказывается все ккак просто нашел Filer-им все места в проекте где есть PRIM ну и свято подумал что можно изменить, а оказывается вот все ак сложно.......... То есть свойства объектов-например колумнов мне толькоручками???? Блин, я разярен... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 09:16:37 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
Открываешь все файлы проекта через FOPEN, ищешь ".PRIM ", заменяешь на что-нибудь из 4-х буковок...Типа ".ABCD "... Назначение точки впереди и пробела сзади понятно? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 09:36:08 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
А что делать в таком случае: а = somefunc(prim) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 09:45:43 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
После поиска и замены ".PRIM " поискать "(PRIM)"... :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 15:40:44 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
RedrikПосле поиска и замены ".PRIM " поискать "(PRIM)"... :-))) Поискать просто "PRIM", только выдаст больше мест, чем потребуется править ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 15:49:36 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
Чего значит точка-не знаю, подскажите что обязательно 4 символа-удручает... мне так и не ответили -свойства в формах править только руками Попробовать не могу, пока не у проекта, просьба не пинать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 16:48:36 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
_новичекЧего значит точка-не знаю Например, пишешь "корректно", то должно быть так: Код: plaintext Если алиас не указывал, тогда ищи " PRIM " - ведь что бы ты с полем не вытворял, его имя окружают пробелы... Не так ли? Еще может быть нечто похожее на "PRIM=", "PRIM =" и т.п. Вспоминай! _новичекчто обязательно 4 символа-удручает... Почему? Разве недостаточно? Зато можно "автоматом" сделать тупую замену везде и всюду не заморачиваясь! _новичекмне так и не ответили -свойства в формах править только руками Давай-ка я спрошу - у тебя где-нибудь встречается "PRIM", кроме указанного тобой случая? Если нет - мой "совет" в силе! Если да - придется помучиться... Но откуда ж возьмется опыт, как не через муки? ;-) P.S. Где-то в инете валяется готовая мелкая программулька, нарисованная на великом и вечном Васике, заменяющая одну символьную строку на другую во всех файлах указанного каталога... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 17:06:24 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
Redrik ведь что бы ты с полем не вытворял, его имя окружают пробелы... Не так ли? Увы, но не так. а = PRIM replace somefield1 with PRIM, somefield2 with ... a = alltrim(PRIM) a = &PRIM..somefield ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 17:25:34 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 01:47:37 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
2 Igor Korolyov: В общем-то, речь шла том, как что -то сделать, а том, как это может выглядеть в исходном тексте. И не более того. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 09:32:01 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
to Sergey Sizov Угу... Но пусть вопрошающий тоже немного понапрягается, вспоминая ЧТО он творил со своим "ПРИМом"! ;-) В крайнем случае (если не все вспомнит) - пусть послушает совет Urri! Только тогда уж придется все делать вручную... Кстати, а какой смысл Вы видите в присвоении переменной значения поля с примечанием? Или в REPLACE его в какое-то другое поле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 09:56:28 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
2Redrik Где-то в инете валяется готовая мелкая программулька, нарисованная на великом и вечном Васике за то время пока идет дискусия можно и самому программу сваять подобную этой без всякого двойного смысла просто предложение к автору проблемма то как бы и не проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 10:22:42 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
to leaf: Согласен! ;-) Но - "Проект готов к сдаче, он у меня первый" ... Потянет ли? ;-) Да и до сих пор неизвестно - подходит ли в данном случае такая "глобальная" замена? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 10:33:20 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
Стараюсь жить по принципу "Дурак не знает и не спросит, а умный и знает и спросит" В данном случае конечно я не говорю что знаю, но вопрос считаю необходимым обсудить с профессионалами я конечно же нашел все места в проекте, где у меня есть указание на 'PRIM' Вначале подумалось-а вдруг открыть все текстовым редактором, да и все имена изменить на 'KOMMENS' Но нет, думаю дай спрошу. И узнал много нового, что в таблице есть Field subrecords,с пользовательскими свойствами не все так просто и прочее. Можно ведь взять и сдеалать поверхностно проработав вопрос, а потом с глюками придут ко мне. Если ты писал, ты же ответственнен. Спасибо всем большое за помощь, будем править, с учетом Ваших хороших советов.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 10:49:57 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
2 Redrik: Приведенные мной строчки кода - всего лишь разные примеры использования поля в выражениях, виденные мной в разных программах, в том числе и писанных новичками в фоксе. Поэто о смысле этих строк меня лучше не спрашивать, иногда мне самому приходится долго голову ломать над пониманим смысла написанного. Еще раз поврторяю - это всего лишь примеры текста и не более того. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 10:59:00 |
|
||
|
Переименование полей
|
|||
|---|---|---|---|
|
#18+
Hi _новичек! "Текстовой заменой" можно пользоваться только для prg и подобных ТЕКСТОВЫХ файлов - а вот для sct/vct это НЕЛЬЗЯ делать - там внутри структура, и любое "смещение" просто убъёт файл. Хотя если заменять на "равноразмерное" выражение - то вполне возможно :) Конечно в общем случае лучше работать штатными командами обработки dbf-ов. Собственно сами dbf-ы с "плохими" полями - если и заменять "автоматически", то о-очень осторожно - cdx в принципе не приспособлен к такой "замене" - проще его перестроить с нуля... Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2005, 02:56:13 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33144458&tid=1593949]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 455ms |

| 0 / 0 |
