Doug Henning | |
---|---|
Naomi Сообщений: 1796 Дата регистрации: 09.10.2003 |
I don't think Doug Henning is not currently working with VFP, at least I haven't heard anything about it. I didn't see him in .NET forum on UT...
|
Re: Doug Henning | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi Nadya!
Ну книжку то он про то как нужно на NET переходить написал ------------------ WBR, Igor |
Про Дага | |
---|---|
Naomi Сообщений: 1796 Дата регистрации: 09.10.2003 |
Первый раз слышу. Я знаю книгу Леса Пинтера и Кевина МкНиша, но про книгу Дага слышу впервые. Можно линк?
|
Re: Про Дага | |
---|---|
zilot Автор Сообщений: 48 Дата регистрации: 11.10.2004 |
Господа лисоводы, мы несколько отвлеклись от темы вопроса.
Может ли кто-нибудь ответить верен ли мой алгоритм и что-нибудь добавить? ------------------ Fox - всем фокусам фокус! |
Re: модификация таблиц в БД согласно эталонной | |
---|---|
Владимир Максимов Сообщений: 14100 Откуда: Москва Дата регистрации: 02.09.2000 |
Цитата:Если формализовать, то что ты написал, то твоя схема примерно такая:
По сути, эту схему, так или иначе используют все. Отличия заключается в том, откуда взять образец структуры таблиц для выполнения команд ALTER TABLE Вариантов тоже немного
Ну, дальше идут вариации на тему, как именно этот эталон должен выглядеть. Это уже детали конкретной реализации. Оба подхода имеют свои достониства и недостатки. Следует иметь в виду, что практически любая модификация структуры сопровождается написанием программы по модификации содержимого в соответствии с новой структурой. Т.е. написание нового PRG понадобиться в любом случае. Даже при наличии эталонной базы. Наличие эталонной базы предполагает достаточно развитый интерфейс по поддержанию этого эталона в актуальном состоянии. Это относительно сложный программный модуль. Его "вылизывание" может занять достаточно много времени. При этом последовательность этапов модификации структуры будет жестко прописана в этом интерфейсе. Хотя этот модуль будет написан только один раз. Написать простой PRG, вносящий нужные изменения в структуру без эталона - достаточно просто. Но каждое новое изменение - это новая программа. Т.е. получается примерно следующее: Если модификация базы данных относительно частый процесс и при этом модификация собственно содержимого либо вообще не производится, либо она элементарна, то имеет смысл потратить время на использование эталонной базы данных. Если модификация базы данных относительно редкий процесс или должна выполняться сложная модификация содержимого при изменении структуры, то лучше отказаться от эталонной базы и писать чистые программные модули. |
Re: модификация таблиц в БД согласно эталонной | |
---|---|
IGOR_SMIRNOVSKY Сообщений: 132 Откуда: СПб Дата регистрации: 02.03.2005 |
2zilot
Здесь сложно судить об алгоритме. Я решал эту задачу сам, когда созрело, без советчиков (теперь вижу, что подходы м.б. разные). В любом случае неделю головоломной работы я тебе гарантирую. Я структуру и все-все пишу в текстовый файл. Это гибче. Трудно знать заранее что потребуется и куда это все вырулит. Нужно следить и за изменениями файлов отчетов, и настроечных таблиц. По мне, все равно как ты меняешь структуру. Трудно отказать в удовольствии потрогать ее, родную, ручками. Ну потрогал, затем вернул обратно: и это все писать в *.prg ? У меня программуля сама скажет, что думает, предложит изменить номер версии, если изменения существены. Одни и те же функции программули работают и у юзера при смене номера версии (без этого, есесе, работа юзера невозможна), и у меня в момент создания версии. Ну экран, одна из фишек которого никогда не доступна юзеру и активизируется только при "головном" запуске экрана. Удаляю даже не нужные в новой версии столбцы таблиц, для отката делаю копию таблицы с тем же именем, но другим расширением. В общем, вперед, на камни (а их много) ! ------------------ дураком помру |
Re: модификация таблиц в БД согласно эталонной | |
---|---|
zilot Автор Сообщений: 48 Дата регистрации: 11.10.2004 |
Спасибо всем, кто ответил.
. ------------------ Fox - всем фокусам фокус! |
Re: Про Дага | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi Nadya!
Сорри, затупил ------------------ WBR, Igor |
Re: модификация таблиц в БД согласно эталонной | |
---|---|
pr Сообщений: 46 Дата регистрации: 17.09.2003 |
Для VFP таблиц я делаю так.
Function ChekTableHeader PARAMETER lcdescfil, lcdescorig * lndescfil=FOPEN(lcdescfil, 10) IF lndescfil=-1 RETURN .T. ENDIF lndescorig=FOPEN(lcdescorig, 10) IF lndescorig=-1 =FCLOSE(lndescfil) RETURN .T. ENDIF nn1=FSEEK(lndescfil, 0,0) IF !(Asc(FREAD(lndescfil, 1))=0x30) =FCLOSE(lndescfil) =FCLOSE(lndescorig) RETURN .F. ENDIF lctxtFile="" lctxtOrig="" nn1=FSEEK(lndescfil, 8,0) lbpola11=FREAD(lndescfil, 1) nn1=FSEEK(lndescfil, 9,0) lbpola12=FREAD(lndescfil, 1) lnpole=(Asc(lbpola11)*(256^(1-1))+Asc(lbpola12)*(256^(2-1))-296)/32 nn1=FSEEK(lndescorig, 8,0) lbpola21=FREAD(lndescorig, 1) nn1=FSEEK(lndescorig, 9,0) lbpola22=FREAD(lndescorig, 1) lnpoleorig=(Asc(lbpola21)*(256^(1-1))+Asc(lbpola22)*(256^(2-1))-296)/32 IF lnpole#lnpoleorig =FCLOSE(lndescfil) =FCLOSE(lndescorig) RETURN .F. ENDIF * FSEEK(lndescfil, 32,0) FSEEK(lndescorig, 32,0) * IF lnpole<200 lnstep=lnpole ELSE lnstep=200 ENDIF FOR i=lnstep TO lnpole STEP 200 IF i>lnpole lnfstep=i-lnpole ELSE lnfstep=lnstep ENDIF * lctxtFile=FREAD(lndescfil, 32*lnfstep) lctxtOrig=FREAD(lndescorig, 32*lnfstep) IF !(lctxtFile==lctxtOrig) =FCLOSE(lndescfil) =FCLOSE(lndescorig) RETURN .F. ENDIF * ENDFOR =FCLOSE(lndescfil) =FCLOSE(lndescorig) RETURN .T. |
Re: модификация таблиц в БД согласно эталонной | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi pr!
Следующие таблицы являются одинаковыми по структуре?
находится)? Допустимо ли для проверки структуры открывать таблицу эксклюзивно? Могут и другие вопросы возникнуть... Так что если уж идти по пути сравнения, то наверное проще использовать штатные механизмы - AFIELDS(), COPY STRUCTURE EXTENDED... ------------------ WBR, Igor |
DBC structures | |
---|---|
Naomi Сообщений: 1796 Дата регистрации: 09.10.2003 |
I can send you my DataDictionary application, if you'd like. But it would just give you idea.
Oops, I would need to send you our framework classes for the interface... I guess, I can send you programs... |
© 2000-2024 Fox Club  |