![]() |
|
|
![]()
|
|
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
объясните пожалуйста примерно что делается в этом коде
2 Cashey особо уповаю на тебя, ты вроде в фоксе разбираешься хорохо
Это сообщение отредактировал(а) Paradox - 22.1.2004, 08:05 -------------------- --- |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
Вот еще выручайте попадаю надо эти алгоритмы на SQL сконвертить
Это сообщение отредактировал(а) Paradox - 22.1.2004, 09:30 -------------------- --- |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 13 Всего: 60 |
Код написан на каком-то старом диалекте Фокса, но постараюсь помочь
Кажется так Это сообщение отредактировал(а) Cashey - 22.1.2004, 10:32 -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
Спасибо большое
-------------------- --- |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
Cashey
а что подразумевается под этим псевдонимом? Какая таблица ? -------------------- --- |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 13 Всего: 60 |
a здесь это первая область данных, которая используется на момент исполнения комманды. В твоем случае это таблица m20000
Да, связь установится по индексированному полю Это сообщение отредактировал(а) Cashey - 22.1.2004, 15:07 -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 13 Всего: 60 |
А что тебе нужно по второму коду? Там сплошные удаления таблиц и создание таблиц с тем же именнем, вероятно с той же структурой и набором данных. Лечение баз какое-то. Если будешь перекладывать его на VisualFoxPro имей ввиду, что код в высшей степени безграммотный.
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Korney |
|
|||
|
Unregistered |
Я не знаю размера таблиц, но судя по тому, как с ними обращаются, они не очень большие и либо учебные, либо никому не нужные.
Если не объяснять, что делает этот "код", то его можно заменить следующим и получить тотже результат быстрее.
Можно сделать одно замечание по поводу оператора SET RELA.... Я думаю, что должно работать корректно, но если вдруг поле obkdpp имеет большую длину нежели поле obd, то правильнее его записать SET RELATION TO LEFT(obkdpp, <длина поля OBD>) Если что не так можно писать [email protected] |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 13 Всего: 60 |
Korney если уж решил похвастаться своими знаниями Фокса так уж пиши код правильный, твой вариант будет работать только при некоторых стечениях данных. те теряет универсальность
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
Korney это таблицы БД одного из крупнейших заводов Новосибирска, просто они щас с досовского фокса переходят под винды и интербейз - этим переводм занимается наша фирма и в частоности я -------------------- --- |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 13 Всего: 60 |
Paradox
А почему им не воспользоваться VisualFoxPro? Пареход будет, относительно, простой, работать будет под виндами, а работа с базами надежна. Если сеть маленькая, то можно и сетевую версию сделать. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Модератор: На форуме запрещено переходить на личности. Если человек ошибся, то не стОит ему это указывать в грубой форме. Все мы не идеальны. |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Korney
Администрация с огромным удовольствием выражает Вам свою благодарность за посещение нашего форума. Приглашаем Вас зарегистрироваться и стать нашим постоянным участником. Мы всегда рады новым лицам |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 13 Всего: 60 |
AntonSaburov а в чем тут грубая форма? Топик создался с просьбой расшифровать приведенный код, а ему его переложили на тот же язык. Просто хотели похвастаться, что могут лекгий код сделать еще легче. Вот только если он еще и корректным был...
Если все-таки я кого-то обидел приношу свои извенения, не хотел. Korney участники форума также присоединяются к словам администрации, мы тоже рады новым аватарам Это сообщение отредактировал(а) Cashey - 23.1.2004, 11:01 -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
Потому что договор с нами а мы VisualFoxPro не занимаемся мы ставим им свою систему, для этого все их базы надо перегнать под InterBase Это является одной из моих задач - мне на нее два месяца Доделаю и уволюсь - далеко мотаться приходится на работу (но это уже оффтоп пошел) -------------------- --- |
|||
|
||||
| Korney |
|
|||
|
Unregistered |
OK Ничего обидного я не обнаружил.
По первому коду. 1.Я возможно что-то напортачил. и код действительно не сложный 2.Раскажите, как можно перекладывать на сервер код в котором используется несколько таблиц, которые при исполнении этого кода полностью перезаписываются, в них изменяются одно-два поля (часто на поля этой-же таблицы) и все это в режиме эксклюзивного использования. Возможно какие-то из них используются в других прогах. (Тогда мой код однозначно не корректный) 3.Я пытался объяснить, что реально изменяются несколько полей. Судя по последнему оператору код лежит в отдельном PRG-файле и переодически запускается на выполнение, как отдельная прога 4. В коде не используется оператор SELECT - SQL. Не известно сколько полей в исходных таблицах (файлы m310p_t.dbf и m20000.dbf), но их данные копируются, удаляются и добавляются ВСЕ БЕЗ ИСКЛЮЧЕНИЯ и многократно, т.е. при работе с сервером такого рода реализация его просто "убъет" (я так думаю) По второму коду Используется три таблицы: m310p m20310 PPP Последняя - результирующая Приблизительно этот код делает следующее. В цикле в первой таблице (m310p) ищется запись у которой aaa не равно '*'. Если таковая найдена, то переменной KUDA присваиваем значение поля obkd и в m20310 ищем в поле obkd это значение (KUDA). Если НЕ найден, то мы в m310p "однозначно" нахом запись для которой aaa=' ' и obkd=KUDA, и в этой записи меняем поле aaa1 на '-' при условии, что первый символ поля obchd равен '1' или '2' или ('7' и начиная с 4-го символа девять '0'). Если НАШЛИ то для всех записей таблицы m20310 у которых obkd=KUDA и aaa=m310p.aaa (предварительно была установлена связь между m20310 и m310p по не полному ключу aaa+obkd) в результирующую таблицу PPP добавляется по пустой записи и части полей присваиваются значения (см. несколько подряд идущих команд REPL), а в таблице m310p полю aaa1 присваивается '+'. Так разделавшись с этими записями мы разрываем связь между таблицами, закрываем и снова открываем m310p и присваиваем полю aaa значение '*' для всех записей удовлетворяющих условию : первый символ obchd='0' или >'2' (т.е. любой ASCII-код начиная с '3') или поле aaa1='+' или '-'. Затем для всех записей полю urov присваиваем значение поля kkk1. Если в таблицу PPP попала хотябы одна запись, то мы эти записи добавляем к таблице m310p. Заменяем для всех записей поле nomz на физический номер записи, а поле prim_uzel на obkd для aaa#'*' и первый символ obkd='1' и начиная с 4-го символа девять '0'. После этого мы удаляем индес таблицы m310p и строим его снова. Затем очищаем таблицу PPP и повторяем цикл. Это конечно очень приблизительное описание и возможно я где-то ошибся. Как это сконвертить на SQL. Я думаю никак. Говорите это большой завод? Этот код начали писать лет 20 назад (используются операторы которые даже в досовском фоксе были оставлены для совместимости), а это скорее всего означает, что у тех, кто этими программами пользуется есть постановка задачи. Она наверняка устаревшая и не совсем соответствует реализации, но из нее можно почерпнуть какую-то информацию по поводу входных и выходных данных. Далее входные таблицы при необходимости конвертить в БД, которая будет использоваться в вашей проге. Но по собственному опыту знаю, что если там есть данные которые пользуют другие отделы, а вы переписываете не все предприятие целиком, а только часть - тогда можно просто вешаться. "У нас есть программы которые замечательно работают и нас устраивают!!!" (на тех же данных в DOS) и т.д |
|||
|
||||
| Paradox |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
именно это и делается
именно все от бухгалтерии и планового отдела до отдела кадров -------------------- --- |
||||
|
|||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Перенесено из баз данных
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]()
|
| Правила форума "Foxpro/Clipper/Dbase" | |
|
|
Запрещается! 1. Публиковать ссылки для чисто рекламных целей. 2. Оффтопить, флеймить, говорить не культурно. Пожалуйста, адекватно задавайте свой вопрос. Тема должна создаваться с названием характеризующем Вашу проблему. Задавайте вопросы правильно - как спросите, так вам и ответят. Разрешено! Давать ссылки на статьи, обзоры, если это не нарушает первый пункт правил. Задавая вопрос, давайте нужную информацию касающуюся Вашей проблемы. Этим вы ускорите полезные ответы. P.S. Размещение рекламы будет строго наказываться! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MoLeX |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Foxpro/Clipper/Dbase | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |