Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ALTER TABLE всех полей по очереди 
V
    Опции темы
Georg4
Дата 15.7.2009, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 961
Регистрация: 2.11.2002

Репутация: нет
Всего: 10



Ребята, привет

тему я тут поднимал в VB ветке вот такую:

http://forum.vingrad.ru/forum/topic-263950/15.html

В кратце: dbf-ник FoxPro всем его полям присвоить значение NOT NULL
на VBScripte что-то не ладится.

Я понимаю что на ФоксПро это быстро и легко, но языком не владею совершенно.

Помошите, пожалуйста, напишите код, чтобы скомпилированный ехе шник  любой файл dbf который рядом с ним в одной папке брал и производил эту операцию с каждым полем файла по порядку.



--------------------
Никто и никогда не должен решать одну проблему дважды
PM MAIL ICQ   Вверх
Данкинг
Дата 15.7.2009, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130



А, всё же послушал меня, дурака старого. smile Насчёт EXE-шника не знаю, я их на фоксе никогда не писал, ибо там всякие проблемы с кодировками возникают, да и кучу библиотек с собой таскать надо. Могу дать пример .prg, который запускает из открытой (фоксом, разумеется) таблицы и делает то, что тебе нужно.

Код

FOR i=1 TO FCOUNT()
 _d=FIELD(i)
 ALTER TABLE DBF() alter COLUMN &_d NOT null
endfor

Соответственно, данный код сохраняешь в файл .prg (например, proga.prg). При установленном фоксе (версии не ниже 7.0) кликаешь на таблицу, она у тебя открывается. Затем запускаешь прогу, т.е. пишешь в командном окне: 
Код

do c:\put'_k_proge\proga.prg

Ну и готово. smile  smile  smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Georg4
Дата 15.7.2009, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 961
Регистрация: 2.11.2002

Репутация: нет
Всего: 10



Я гадом буду, видел, как на фоксе делают ЕХЕ.
Но товарищ тот далеко нынче...

Завтра опробирую на первом попашвемся Фоксе на работе.
Попробую посмотреть как можно сделать ехе с параметром ввиде имени файла.

Спасибо за код.


--------------------
Никто и никогда не должен решать одну проблему дважды
PM MAIL ICQ   Вверх
Данкинг
Дата 15.7.2009, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130



Цитата(Georg4 @  15.7.2009,  22:20 Найти цитируемый пост)
Я гадом буду, видел, как на фоксе делают ЕХЕ.

Я знаю, что делают, даже знаю, как. Но практически я EXE никогда не делал. Вариант - сделать .app или .fxp с возможностью выбора базы (таблицы т.е.) для обработки. Ну, это как .jar на Java. И если у тебя на компе фокс установлен, то такой вариант ничем не отличается от EXE.

Цитата(Georg4 @  15.7.2009,  22:20 Найти цитируемый пост)
Попробую посмотреть как можно сделать ехе с параметром ввиде имени файла.

С параметром вот тоже х/з... Но в любом случае, выбор файла через обычный диалог никто не отменял. smile 

Цитата(Georg4 @  15.7.2009,  22:20 Найти цитируемый пост)
Спасибо за код. 

Пользуйся! smile 

В общем, вот я добавил диалог выбора таблицы:
Код

_asd=GETFILE('dbf')

IF EMPTY(_asd)
QUIT
ENDIF

USE &_asd IN 1
SELECT 1

FOR i=1 TO FCOUNT()
 _d=FIELD(i)
 ALTER TABLE DBF() alter COLUMN &_d NOT null
ENDFOR
QUIT

И прикладываю откомпилированный код (в .fxp). Кликаешь на nullll.fxp, прога запускается. smile 

Это сообщение отредактировал(а) Данкинг - 15.7.2009, 23:02

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  nullll.rar 0,36 Kb


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Georg4
Дата 16.7.2009, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 961
Регистрация: 2.11.2002

Репутация: нет
Всего: 10



После того как согнал товарища с компьютера на пол часа удалось сделать таки порядочный ехе-шник.
там команда Build exe есть которая применяется к проекту.   А ещё в VFP оказалась отдельная кнопка Build которая может сбилдить проект для win32 в виде ехе-шника.

А параметры с которыми можно запускать рализуются первой строчкой такого вида:

PARAMETERS _asd

Вместо _asd=GETFILE('dbf')

Вот так вот
Вопрос на FoxPro решен.

Благодарность Данкингу.

P.S. Но где-то в глубине души остался осадок....почему его (вопрос) нельзя решить на VBScript, с того ли боку я к нему подошел...и какой смысл...и какие из этого можно сделать выводы....


--------------------
Никто и никогда не должен решать одну проблему дважды
PM MAIL ICQ   Вверх
Данкинг
Дата 16.7.2009, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130



Цитата(Georg4 @  16.7.2009,  14:59 Найти цитируемый пост)
А ещё в VFP оказалась отдельная кнопка Build которая может сбилдить проект для win32 в виде ехе-шника.

В общем-то, в такой простой программе, где отображения или изменения данных не требуется, проблема с кодировкам отпадает. К тому же, если бы ты делал обычную прогу (не "консольную", как тут, а с формами), то простым билдом exe не обошлось бы.

Цитата(Georg4 @  16.7.2009,  14:59 Найти цитируемый пост)
PARAMETERS _asd

А, наверное, только с .fxp такое не катит почему-то, ну ладно, если с EXE работает, то и хорошо.

Цитата(Georg4 @  16.7.2009,  14:59 Найти цитируемый пост)
и какие из этого можно сделать выводы.... 

В данном случае такие выводы, что с DBF лучше всего работать на фоксе, если есть такая возможность. А даже если основная программа написана на другом языке, то для непосредственной обработки DBF можно написать .fxp, который запускать из основной программы.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Foxpro/Clipper/Dbase"
MoLeX

Запрещается!

1. Публиковать ссылки для чисто рекламных целей.

2. Оффтопить, флеймить, говорить не культурно.

Пожалуйста, адекватно задавайте свой вопрос. Тема должна создаваться с названием характеризующем Вашу проблему.

Задавайте вопросы правильно - как спросите, так вам и ответят.

Разрешено!

Давать ссылки на статьи, обзоры, если это не нарушает первый пункт правил.

Задавая вопрос, давайте нужную информацию касающуюся Вашей проблемы. Этим вы ускорите полезные ответы.

P.S. Размещение рекламы будет строго наказываться!



Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MoLeX

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Foxpro/Clipper/Dbase | Следующая тема »


 




[ Время генерации скрипта: 0.0866 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.