|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
Здравствуйте. Помогите разобраться. Есть таблица с полями kod_prib(type=character) и now_kod(type=numeric). Как при записи поля now_kod, записывать поле kod_prib? now_kod=kod_prib. Пороцедура Init: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2011, 21:37 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
Андрей1985, А зачем два одинаковых поля, только одно цифровое, а другое текстовое? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 09:05 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
IgorNG, дело в том, что нужно заполнить таблицу для foxpro2.6, не меняя структуры таблицы. У меня заполняется поле now_kod(числовое), нужно, чтобы при заполнении поля now_kod заполнялось поле kod_prib(текстовое поле). Так, почему-то не работает. Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 11:21 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
Андрей1985IgorNG, дело в том, что нужно заполнить таблицу для foxpro2.6, не меняя структуры таблицы. У меня заполняется поле now_kod(числовое), нужно, чтобы при заполнении поля now_kod заполнялось поле kod_prib(текстовое поле). Так, почему-то не работает. Код: plaintext 1.
Не работает - этот как? Какая ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 11:50 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
IgorNG, процедура Init: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Прооцедура Save: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 14:50 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
Андрей1985, Правильно. if upper(evl(tcMode, "")) = "NEW" this.txtkod_prib.value = 0 && Числовое поле if thisform.lNew insert into spr_prib ; (now_kod,vid_prib,nai_prib,firma,marka,model,pasp_moh,timerab,rashodgp,kod_prib) ; values ; (this.txtkod_prib.value,this.txtvid_prib.value,this.txtnai_prib.value,this.combofirma.value,this.txtmarka.value,this.txtmodel.value,this.txtmoh.value,this.txttimerab.value,this.txtrashod.value,!ALLTRIM(STR(this.txtkod_prib.value))) А зачем воцклицательный знак? Что по-твоему будет означать выражение NOT ALLTRIM(STR(this.txtkod_prib.value)) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 15:01 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
Вот я ибалбе!!! IgorNG, не подскажите,в чем может быть причина. Создавал таблицу в VFP9. Почему таблица не открывается в Foxpro2.6 ? А если создаю в Foxpro2.6 и хочу открыть в VFP9, то говорит "Database is invalid. Please valid date". ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 15:26 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
Андрей1985Вот я ибалбе!!! IgorNG, не подскажите,в чем может быть причина. Создавал таблицу в VFP9. Почему таблица не открывается в Foxpro2.6 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 15:32 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
Андрей1985, Таблицы VFP9 в более ранних версиях открыть нельзя. В VFP9 можно открывать таблицы ранних версий. Возможно, таблица испорчена. Попробуй set tablevalidate to 0 или http://www.cmstory.com/modules.php?op=modload&name=Downloads&file=index&req=getit&lid=6 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 15:33 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
Андрей1985, эээ... как-то так :) процедура Init: lparameters tcMode this.lNew = (upper(evl(tcMode, "")) == "NEW") * Кстати - а где в Вашем коде с этой переменной снимается флаг "Истина"? sele spr_prib if this.lNew scatter blank name spr_Tmp else scatter name spr_Tmp endif this.txtkod_prib.ControlSource = "spr_Tmp.now_kod" this.txtvid_prib.ControlSource = "spr_Tmp.vid_prib" this.txtNai_prib.ControlSource = "spr_Tmp.Nai_prib" this.combofirma.ControlSource = "spr_Tmp.firma" this.txtmarka.ControlSource = "spr_Tmp.marka" this.txtmodel.ControlSource = "spr_Tmp.model" this.txtmoh.ControlSource = "spr_Tmp.pasp_moh" this.txttimerab.ControlSource = "spr_Tmp.timerab" this.txtrashod.ControlSource = "spr_Tmp.rashodgp" ..... Процедура Save: local llOk do case ... otherwise sele spr_prib if thisform.lNew appe blank endif gather name spr_Tmp ... endcase ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 17:27 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
Сейчас сделал следующее, создал таблицы в 2.6. Перекинул в папку dbf базы VFP. В VFP открывается, но тут какие-то проблемы с кодировкой. В таблице вручную заношу значения в строку (cntr+y), сохраняю таблицу, но теперь она уже не открывается в FP2.6. В config прописал codepage=866 systemmenu=off MVCOUNT=30000 А если после создания таблиц в VFP их прекодировать под дос866.Такое возможно? Как нибудь, Код: foxpro 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 17:45 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
Делаю в VFP забивалку значений справочников, для FP2.6. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 17:46 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
Варианты совместной работы FPD2.6 и Visual FoxPro 1. Открывать таблицы FoxPro for DOS в среде Visual FoxPro через драйвер ODBC. 2. В среде FoxPro for DOS таблица обязательно должна иметь признак кодовой страницы. Как правило, это 866. Индексы допустимы только по именам полей. Никаких функций в выражении индекса быть не должно. Такие таблицы без проблем открываются и редактируются в среде Visual FoxPro как свободные таблицы. Включать их в контейнер базы данных не надо 3. Создать и наполнить таблицу в середе Visual FoxPro затем сконвертировать ее в формат FoxPro for DOS командой вида Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 18:24 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
Андрей1985Сейчас сделал следующее, создал таблицы в 2.6. Перекинул в папку dbf базы VFP. В VFP открывается, но тут какие-то проблемы с кодировкой. В таблице вручную заношу значения в строку (cntr+y), сохраняю таблицу, но теперь она уже не открывается в FP2.6. В config прописал codepage=866 systemmenu=off MVCOUNT=30000 А если после создания таблиц в VFP их прекодировать под дос866.Такое возможно? Как нибудь, Код: foxpro 1.
1. Создаем таблицу в ФоксДос 2. Открываем в 9-ке _эксклюзивно_ 3. Запросит кодировку - выбираем "родную" - 866 4. Собственно - все Если будет глючить с кодировкой - снесите намек на нее (см cpzero) Ну и... Почитайте доку по SET NOCPTRANS и рядом-около И еще момент... пытаясь создать ее все-таки в ВФП - обратите внимание, чтоб она была ФРИ, не принадлежала какой-то БД ВладимирМ, пункт 1... жесть... зачем? Можно конечно еще и IIS прикрутить.. но :):) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 19:00 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
гм... вдогонку... "снесите при помощи cpzero" - и естественно - опять октройте экслюзивно 9-кой и укажите 866 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 19:02 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
SSn888ВладимирМ, пункт 1... жесть... зачем? Это не "жесть". Это самый беспроблемный способ доступа во всех смыслах. Все остальные работают с оговорками. Всегда надо будет "пальцем придерживать" Например, если выражение индекса содержит функцию вида UPPER(MyField), то при редактировании DOS-таблицы в VFP индекс будет безнадежно испорчен. Его придется перестраивать в FPD. Старые драйвера ODBC вообще не требуют наличия признака кодовой страницы. Они его не проверяют. Это значит, что не возникнет диалога на предмет установки 866 кодовой страницы. Поскольку обращение будет идти напрямую к рабочей таблице, то и не возникнет необходимости в пересоздании и замены. Не надо будет после COPY TO что-то там "переливать" в DOS-таблицы. Другими словами, подключение по ODBC, хотя и кажется более сложным в исполнении, но сопровождается меньшим количеством проблем связанных с совместимостью старых и новых версий FoxPro. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 20:12 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
Спасибо, получилось. Сконвертировал таблицу в формат FoxPro for DOS командой вида Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2011, 22:07 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
ВладимирМ, я исходил из того, что таблица уже имеется, работает под Досом и создана одним из предшественников автора сабжа. Вряд ли там понадобиться определять новые индексы и так далее... Все Вами приведенные плюсы работы через ОДБС верно, но - это примерно как читать файлы старого ворда в 2077 версии при помощи использования кубов :) ИМХО - лишняя трата времени и сил... сугубо ИМХО В любом случае - рад за Андрея :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 13:27 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
SSn888ВладимирМ, я исходил из того, что таблица уже имеется, работает под Досом и создана одним из предшественников автора сабжа. Вряд ли там понадобиться определять новые индексы и так далее... Определять новые индексы - не понадобиться. Но изменить или удалить существующие - невозможно. С очень высокой степенью вероятности там будет присутствовать индекс по UPPER(MyField) С признаком кодовой страницы - дополнительные сложности. Установить-то его не проблема, но, опять же, нет гарантии, что он не будет удален при каких-либо модификациях таблицы в самом DOS-приложении. Например, в FPD2.0 он вообще не записывался. Значит, после PACK может оказаться удаленным. Это значит, что, в общем случае, подключится напрямую к DOS-таблице - невозможно . Все-равно придется писать некий "переходник". По сути, делать некий аналог ODBC своими руками. Ну, разве что, контроль целостности DOS-базы данных будет в одном месте, а не "размазан" между DOS и VFP приложениями. Что, собственно, автор темы и сделал. Ведь он, скорее всего, полученную DOS-таблицу не будет использовать напрямую. А будет писать некий код, по заливке данных из этой промежуточной таблицы в DOS-приложение. Т.е. как раз-таки кажущееся более простым решение и приведет "к лишней трате времени и сил". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 14:32 |
|
Вопрос по таблице
|
|||
---|---|---|---|
#18+
ВладимирМ, Ваша аргументация великолепна Разве что "Это значит, что, в общем случае, подключится напрямую к DOS-таблице - невозможно" как-то не соответствует истине... Ни один десяток раз именно так и делал, все было в ажуре. С учетом того, что как понимаю - модифицироваться в Досе таблица не будет. Просто не стоит забывать про ситацию когда на одной хиленькой машинке стоит Дос или версия Винды 1812 года (да-да, в наше время такое щщо есть, к сожалению, особенно на некоторых дотационных госпредприятиях), а на другой уже нормальной планируется софтина на ВФП. Это - типичный вариант, объясняющий "почему достаточно большая часть софта до сих пор на Фокс2.6 и от разработанных для него приложений нельзя отказаться". Вот тут-то одно дело - с более мощной машины по сети дергать табличку, а совсем другое - устраивать песни и пляски с ОДБС. Если же эта таблица используется только как некий шлюз для переливки данных в Дос-приложение - тогда вообще зачем огород городить со всеми этими совместимостями и прочим? Кидать пакеты в текстовый файл и подбирать их оттуда другим приложением - и надежней, и проще... В любом случае - повторюсь - не совсем ясно "зачем" (лично мне) и "в каких условиях", а без понимания картины, которую хочет получить автор вопроса - у нас будет не больше чем абстрактный разговор за чашкой ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 14:53 |
|
|
start [/forum/topic.php?fid=41&msg=37438817&tid=1584144]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 295ms |
total: | 441ms |
0 / 0 |