|
|
|
Уменьшение ширины столбца по макс. длине строки
|
|||
|---|---|---|---|
|
#18+
Добрый день! Очень нужен совет, хочу написать скрипт для редактирования файлов dbf ,а конкретно обрезания ширины столбца по макс. длине выражения в нем, вот что вышло: USE ? STORE ALIAS() TO cTabName nCnt = AFIELD(arr) FOR i=1 to nCnt IF TYPE(arr(i,1))='C' SELECT MAX(LEN(ALLTRIM(&arr(i,1)))) FROM cTabName SELECT query LOCATE FOR NOT EMPTY(max_exp_1) cwidth=max_exp_1+2 CLEAR query SELECT cTabName ALTER TABLE cTabName alter COLUMN &arr(i,1) C (cwidth) endif ENDFOR SELECT (cTabName) GO TOP BROWSE Но проблема в том что программа стопорится на запросе query и дальше ничего не происходит,подскажите, где ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2008, 16:48 |
|
||
|
Уменьшение ширины столбца по макс. длине строки
|
|||
|---|---|---|---|
|
#18+
zavhozДобрый день! Очень нужен совет, хочу написать скрипт для редактирования файлов dbf ,а конкретно обрезания ширины столбца по макс. длине выражения в нем, Уже странная задача. Для таких дел есть поля типа varchar. вот что вышло: USE ? STORE ALIAS() TO cTabName nCnt = AFIELD(arr) FOR i=1 to nCnt IF TYPE(arr(i,1))='C' SELECT MAX(LEN(ALLTRIM(&arr(i,1)))) FROM cTabName B вот тут, наверняка, выскакивает окно browse? но отнюдь не то, которое должно выводится по последней команде, не так ли? А куда по умолчанию фоксу поместить результат запроса? Правильно, в полном соответствии с докой, в окно browse. А чтоб такого не было, надо ему явно указать получателя результата запроса. Например, дописав конце into cursor query SELECT query И вот эта команда совершенно лишняя. LOCATE FOR NOT EMPTY(max_exp_1) cwidth=max_exp_1+2 CLEAR query SELECT cTabName ALTER TABLE cTabName alter COLUMN &arr(i,1) C (cwidth) endif ENDFOR SELECT (cTabName) GO TOP BROWSE Но проблема в том что программа стопорится на запросе query и дальше ничего не происходит,подскажите, где ошибка? Может просто всем у всех полей типа char поменять тип на varchar и не заниматься ерундой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2008, 16:58 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=35150979&tid=1588119]: |
0ms |
get settings: |
12ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 348ms |

| 0 / 0 |
