Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / APPEND PROCEDURES ??? / 25 сообщений из 26, страница 1 из 2
30.01.2006, 13:42
    #33510811
Prot0s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Вот взял тут на форуме пример кода. Попробовал под VF 6.0 проделать, но почему-то никак не хочет добавлять хранимые процедуры к БД. И вообще как это можно сделать, т.е. есть БД и к ней нужно прикрепить хп, которые описаны в prg файле. В документации написано, что через APPEND, но не выходит.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
* создаем тестовую БД
CREATE DATABASE DBCheck
****** это подготовитльная работа 
* создаем курсор куда запишем текст нашей процедуры
CREATE CURSOR tmp (TextProc M)
* собственно текст
INSERT INTO tmp (TextProc) VALUES ('Function Summ' + + CHR( 13 ) + CHR( 10 ) )
replace TextProc WITH 'replace SumTwoDigit with FirstDigit + SecondDigit' + + CHR( 13 ) + CHR( 10 )  ADDITIVE IN tmp
replace TextProc WITH 'EndFunc' ADDITIVE IN tmp
* записываем из Мемо на диск в текстовый файл
COPY MEMO TextProc TO mytemp.txt
USE             
* добавляем процедуру (ХП) в контейнр БД
APPEND PROCEDURES FROM mytemp.txt   
* компилируем нашу ХП
COMPILE DATABASE DBCheck
****** конец подготовки
****** Такой изврат нужен, что бы добавить ХП в БД, поскольку нет штатной
****** команды CREATE PROCEDURE
...
Рейтинг: 0 / 0
30.01.2006, 13:50
    #33510834
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
1. Какая ошибка появляется
2. Каким образом определяется отсутствие ХП

Открой БД, скажи ей modi database, затем выполни DISPLAY PROCEDURES или правая педаль мыши не контейнере БД - EditStoregeProcedure
...
Рейтинг: 0 / 0
30.01.2006, 13:59
    #33510861
Prot0s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Возможно, я плохо описал суть проблемы. В общем она такова. Есть приложение, написаное на VF 6.0. На форме есть (утрировано) кнопка выбора какой-либо БД, нажимаем на эту кнопку, выбираем нужную БД (файл *.dbc). Далее выбираем какой-либо файл .prg, содежащий процедуры. После осуществления всего вышеописанного уже нажимаем, допустим, на третью кнопку, и программа должна взять процедуры из файла prg и добавить их в нашу БД. Таки образом, в БД появиться дополнительные процедуры. Все это нужно сделать программно, т.е. по нажатию трех кнопок.
...
Рейтинг: 0 / 0
30.01.2006, 14:02
    #33510867
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
вот насчет
COMPILE DATABASE DBCheck

в рантайме я не уверен
там компил не работает кажется в рантайме
...
Рейтинг: 0 / 0
30.01.2006, 14:19
    #33510909
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Работает, в атаче простенький код
...
Рейтинг: 0 / 0
30.01.2006, 14:19
    #33510912
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Фу елки палки, улетел пост без кода

Код: plaintext
1.
2.
OPEN DATABASE DBCheck EXCLUSIVE

COMPILE DATABASE DBCheck
...
Рейтинг: 0 / 0
30.01.2006, 14:22
    #33510919
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Prot0sВозможно, я плохо описал суть проблемы. В общем она такова. Есть приложение, написаное на VF 6.0. На форме есть (утрировано) кнопка выбора какой-либо БД, нажимаем на эту кнопку, выбираем нужную БД (файл *.dbc). Далее выбираем какой-либо файл .prg, содежащий процедуры. После осуществления всего вышеописанного уже нажимаем, допустим, на третью кнопку, и программа должна взять процедуры из файла prg и добавить их в нашу БД. Таки образом, в БД появиться дополнительные процедуры. Все это нужно сделать программно, т.е. по нажатию трех кнопок.

Перед добавление ХП, надо старую удалить, а затем новую добавить, иначе новая ХП допишится в конец файла процедур и при исполнении фокс до неё не доберётся, поскольку сначала встретит старую ХП.
...
Рейтинг: 0 / 0
30.01.2006, 14:32
    #33510946
Prot0s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Все равно не добавляет. Есть ли где-нибудь рабочий пример для VF 6.0. Просто не понятно в таком случае, зачем команду такую ввели, если она в run-time не работает.
...
Рейтинг: 0 / 0
30.01.2006, 14:56
    #33511006
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
я Вам помочь не смогу
у меня 6-ки нет

в 9- ке вот такой синтаксис
APPEND PROCEDURES FROM FileName [AS nCodePage] [OVERWRITE]

с [OVERWRITE] как раз будет переписывать


впихнуть код там можно и руками

use ...\dddd.dbc

поле Code
3-я запись как раз исходный код
4-я запись компилированный

в 6-ке компила в рантайме точно нет
как Вы компилить будете???

переходите на старшие версии
...
Рейтинг: 0 / 0
30.01.2006, 15:00
    #33511017
FM32YO aka KID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Prot0sВсе равно не добавляет. Есть ли где-нибудь рабочий пример для VF 6.0. Просто не понятно в таком случае, зачем команду такую ввели, если она в run-time не работает.

Была та же проблема.. решил так:



НЕ РАБОТАЕТ - причина неизвестна
Код: plaintext
1.
2.
3.
4.
5.
6.
APPEND PROCEDURES FROM myProc.txt
close data all
clear all

COMPILE DATABASE MyDB



РАБОТАЕТ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
USE MyDB.dbc
GOTO  3 
APPEND MEMO Code FROM myProc.txt
close data all
clear all
*OPEN DATABASE URAR
COMPILE DATABASE URAR
close data all
...
Рейтинг: 0 / 0
30.01.2006, 15:03
    #33511030
FM32YO aka KID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Вместо COMPILE DATABASE URAR
будет COMPILE DATABASE MyDB

ошибся слегка
...
Рейтинг: 0 / 0
30.01.2006, 15:18
    #33511093
Prot0s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
2 FM32YO aka KID

Похоже на правду, т.е. работает 8) А насколько это корректно, по сути APPEND PROCEDURES должна делать тоже самое, но не делает 8( Скорее всего придется воспользоваться вышепредложенным методом, а что остается.
...
Рейтинг: 0 / 0
30.01.2006, 15:24
    #33511111
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Вот еще работающий пример , если интересно...
...
Рейтинг: 0 / 0
30.01.2006, 16:12
    #33511294
FM32YO aka KID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Prot0s 2 FM32YO aka KID

Похоже на правду, т.е. работает 8) А насколько это корректно, по сути APPEND PROCEDURES должна делать тоже самое, но не делает 8(

я тоже так думал.. пока не заметил, что APPEND PROCEDURES проходит, но в дизайнере БД нету процедур...
в итоге APPEND MEMO Code FROM myProc.txt и усе...
...
Рейтинг: 0 / 0
31.01.2006, 11:43
    #33512854
Prot0s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Метод работает, но не в runtime. А так APPEND PROCEDURES добавляет и компилирует хр. процедуры, но не записывает текст в memo поле БД, т.е. ее вызвать можно, но текст подправить будет проблематично. Второй метод добавляет сначало в memo поле код, а потом его компилирует. Только все это не работает в runtime, т.к. APPEND PROCEDURES и COMPILE DATABASE не поддерживаются, что очень печалит.
По этому поводу возникает вопрос, где найти более подробную информацию о внутреннем устройстве Fox Pro 6.0 и последующих версий, о том какие функции будут работать в runtime, а какие только при создании проекта, форматы файлов БД и прочее. MSDN читал, но там только описываются описание функций, и целой картины не видно. В общем нужны ссылки на источники (англоязычные и русскоязычные).

8)
...
Рейтинг: 0 / 0
31.01.2006, 11:49
    #33512887
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Prot0s нужно запускаться под фоксой
или переходить на старшие версии

у меня в 98г проблемы как раз с компилом модулей были
я скрипты компилил и засовывал в мемо как раз в отдельном модуле
который запускался под фоксом

а уже остальной софт в рантайме работал
неудобства жуткие были
принцип как в 1ц был (пошли все нафиг - я в настройку полез)

сейчас в 9-ке проблем вообще нет
хоть укомпилься в рантайме
...
Рейтинг: 0 / 0
31.01.2006, 11:58
    #33512926
Prot0s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Может и перешел бы на 9-ку. Собственно организацией уже приобретена, но ее еще внедрять надо, а это обычно долго проходит. А программного обеспечения у нас под Fox много, есть даже проги под DOS 8) У нас все жестко регламентированно. Большая просьба подкинуть ссылки по поводу Fox Pro 6/0 и далее, молод еще в этом деле, тока 3-и месяца им занимаюсь, сейчас очень плотно засел за него, хочется понять внутреннее взаимодействие и структуру. Так, думается, будет проще писать. А по поводу настроек получается, что runtime отдыхает (((
...
Рейтинг: 0 / 0
31.01.2006, 13:13
    #33513194
FM32YO aka KID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Prot0sМетод работает, но не в runtime. А так APPEND PROCEDURES добавляет и компилирует хр. процедуры, но не записывает текст в memo поле БД, т.е. ее вызвать можно, но текст подправить будет проблематично. Второй метод добавляет сначало в memo поле код, а потом его компилирует. Только все это не работает в runtime, т.к. APPEND PROCEDURES и COMPILE DATABASE не поддерживаются, что очень печалит.


погодите это как же?
я для таких вещей, как модификация базы у клиента написал а-ля утилитку - выполнитель скриптов ..
которая берет на диске prg файл - компилит его и выполняет..
так вот только что попробовал.. в этом прг написать полное создание БД + таблиц + хранимки в БД...запустил - получил пустую БД, но ХП в ней есть и их видно и текст можно править... специально попробовал...
или это не есть "в runtime" ????
...
Рейтинг: 0 / 0
31.01.2006, 13:22
    #33513230
Prot0s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Под runtime я понимаю скомпилированное приложение *.exe + dll. Там не работает, а под оболочкой все ОК.
...
Рейтинг: 0 / 0
31.01.2006, 15:13
    #33513554
FM32YO aka KID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Prot0sПод runtime я понимаю скомпилированное приложение *.exe + dll. Там не работает, а под оболочкой все ОК.

утилитка, о которой я писал выше представляет собой
DoScript.exe (VFP 7) + нужные длл файлы, чтобы ехе-шник запустился...
в нем просто выбираешь нужный ПРГ-файл - и выполняешь его..
то есть среда фокса тут вроде не присутствует а?
придумано именно для того, чтобы не таскать среду к клиенту в случае изменения структуры базы...
...
Рейтинг: 0 / 0
31.01.2006, 16:06
    #33513753
Prot0s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
2 FM32YO aka KID

А можно ли посмотреть на код? Может быть здравые мысли и посетят мою бренную голову.
Можно скинуть на мыло - protein@inbox.ru
...
Рейтинг: 0 / 0
31.01.2006, 16:34
    #33513840
FM32YO aka KID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Prot0s 2 FM32YO aka KID

А можно ли посмотреть на код? Может быть здравые мысли и посетят мою бренную голову.
Можно скинуть на мыло - protein@inbox.ru

хм.. думаю тебе хочется взглянуть по быстрей.. а исходники у меня дома
Поэтому на пальцах поясню
1 есть форма с кнопкой выбора файла *.prg, который собственно хочешь выполнить, вроде через GetFile его выбираешь
2 его имя с путем прописыаается в текстбоксе на форме, ну чтобы видно было :-)
3 есть свойстфо на форме, которому присваивается то, что в текстбоксе...
4 рядом кнопка под которой простенький код
Compile Thisform.cPathFile
* это и есть путь в прг-файлу
DO Thisform.cPathFile
хотя в 7-ке и выше вроде можно сделать изящней через
FILETOSTR - EXECUTESCRIPT
но я как-то по старинке сделал :-)
В итоге в принципе наверное в выполняемый ПРГ-файл можно наверное даже форму запихнуть (не пробовал), но модификация базы данных и заполнение ее, если надо идет на ура....
...
Рейтинг: 0 / 0
31.01.2006, 17:14
    #33513981
Prot0s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Попробую, хотя уже дома, но работа не ждет 8) Спасибо, лишними знания никогда не бывают.
...
Рейтинг: 0 / 0
31.01.2006, 20:09
    #33514561
Prot0s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
В общем неудача. Feature is not available, как пишет мне Fox Pro 6.0 при выполнении команды COMPILE ("C:\prog.prg"), остается модифицировать БД из оболочки. Exe + dll вариант провалился.
...
Рейтинг: 0 / 0
01.02.2006, 02:55
    #33514818
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APPEND PROCEDURES ???
Hi Prot0s!

COMPILE для prg в рантайме доступен начиная с VFP6SP3 (ну а в SP5 он 100%
есть и работает). Использовать VFP6 без SP5 я бы никому не советовал (если
уж приходится оставаться на старой версии, то как минимум нужно все
исправления к оной иметь).
Был ли доступен COMPILE DATABASE в VFP6 я не помню - в 7-ке и выше он
работает. APPEND PROCEDURES не работает и не должен (в смысле в рантайме) -
про это написано в хелпе (перечислено в числе прочих недоступных в рантайме
возможностей).

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / APPEND PROCEDURES ??? / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]