powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Прошу прокомментировать (VFP+SQL)
12 сообщений из 12, страница 1 из 1
Прошу прокомментировать (VFP+SQL)
    #33241761
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые !! Хотелось бы узнать ваше мнение по следующей ситуации ...

Моя программа (VFP+SQL) работает в нескольких местах. Соотвественно в каждом месте находится как программа, так и SQL-сервер. Постоянного Internet-соединения между этими местами нет.
Естественно, периодически вносятся измения как в саму программу, так и в sql. И тут возникает прроблема - обновленную версию программы я погу переслать по электронной почте, а изменеия в sql приходится вносить вручную (а это же надо выезжать, да и всегда есть риск что-то упустить).

Посему возникло следующее решение - все изменения на SQL-сервере делать из программы - т.е. запускаем программу, она смотрит - надо ли делать изменения, а дальше - SQLEXEC(hndl,'ALTER TABLE ....') и т.д.

Ваше мнение ?
...
Рейтинг: 0 / 0
Прошу прокомментировать (VFP+SQL)
    #33241776
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да

только наверна
new=filetostring('c:\updates\update.sql')
sqlexec(m.cn,m.new)


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Прошу прокомментировать (VFP+SQL)
    #33241783
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе можно, но нужно учесть нюансы - например для обновления -соответствующие права пользователя должны иметься
...
Рейтинг: 0 / 0
Прошу прокомментировать (VFP+SQL)
    #33246230
foxwizard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я обычно на фоксе пишу процедуру обновления с индикатором и предварительным бакапом
и раздаю заказчикам.
...
Рейтинг: 0 / 0
Прошу прокомментировать (VFP+SQL)
    #33246451
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
foxwizardЯ обычно на фоксе пишу процедуру обновления с индикатором и предварительным бакапом
и раздаю заказчикам.

Замечательно !!!
Т.е. - перед выполнением обновления в прогамму вставляется что-то типа
SQLEXEC(hndl,'BACKUP DATABASE ...') ?
...
Рейтинг: 0 / 0
Прошу прокомментировать (VFP+SQL)
    #33246498
WORKSNS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уже довольно давно использую автообновление.
Порядок таков:
1) при компиляции создается файл структур, индексов и ХП
2) далее обновление выкладывается в таблицу SQL сервера с обязательным фиксированием версии EXE-файла
3) клиентская станция при запуске проверяет текущую версию EXE-файала с версией прописанной на SQL сервере.
4) При различии версии установленной и предлагаемой выводит диалог с предложением установить боле свежую версию.
5) Если дано согласие, то завершается работа главного модуля программы и вызывается модуль закачки обновления, который после закачки обновления предлагает установить оное.
6) вместе с обновлением подтягиваются структуры, ХП и т.д. После затягивания предлагается заменить головной модуль, соответственно, если он никем не занят меняются кроме него все вспомогательные файлы.
7) при повторном запуске головного приложения задается запрос на выолнение в БД, ХП и т.д. и производятся все необходимые операции, соответствующие вновь затянутым файлам.
...
Рейтинг: 0 / 0
Прошу прокомментировать (VFP+SQL)
    #33247339
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WORKSNS
5) Если дано согласие, то завершается работа главного модуля программы и вызывается модуль закачки обновления, который после закачки обновления предлагает установить оное.


А как сделана закачка?
...
Рейтинг: 0 / 0
Прошу прокомментировать (VFP+SQL)
    #33247450
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может немного не в тему, я испытываю немного другуютехнологию- создал таблицу в которой грубо говоря 2 поля имя программы С(50) и текст программы (Memo) при выборе меню программа достает текст из соответствующей записи, компилирует ее и запускает при этом достаточно просто вносить изменения при желании быстро найти изменения, наращивать состав задачи. а если это стоит на сервере, то получается довольно быстрая и универсальная серверная часть, оторванная от определенного приложения и позволяющая выполнять сервисные задачи по расписанию. более глубоко проработать к сожалению времени не хватает.
...
Рейтинг: 0 / 0
Прошу прокомментировать (VFP+SQL)
    #33249630
WORKSNS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
w3d WORKSNS
5) Если дано согласие, то завершается работа главного модуля программы и вызывается модуль закачки обновления, который после закачки обновления предлагает установить оное.


А как сделана закачка?

Закачка обновления производится как обычное получение курсора. На SQL сервере находится таблица имеющая следующие поля:
Поле имени файла, типа VarChar
Поле версии файла, типа VarChar
Поле непосредственно самого файла, типа BLOB

Механизм таков:

Программа при запуске запрашивает версию EXE выложенного на сервере и сверяет с текущей версией (AGETFILEVERSION( )), если версия на сервере больше, то предлагает получить обновление. В случае согласия завершает свою работу и вызывает модуль получения обновления. Модуль обновления при помощи SELECT * FROM ... получает все файлы новой версии в курсор. Далее все файлы извлекаются в подпапку UPDATE с помощью команды COPY MEMO TO .... Далее программа переписывает вновь полученные файлы в папку программы, проверяя не заняты ли исходные файлы. Все, обновление получено и установлено.
...
Рейтинг: 0 / 0
Прошу прокомментировать (VFP+SQL)
    #33250508
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глянь тут http://www.caws.atnet.ru/vfox/sql7.html.
Я тоже использую закачку версий с сервера, но не только EXE - файлов, а любых.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Прошу прокомментировать (VFP+SQL)
    #33274408
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вернемся к нашим баранам ...

1024
только наверна
new=filetostring('c:\updates\update.sql')
sqlexec(m.cn,m.new)


Попробовал. Все замечательно - пока не понадобилось добавить сохраненную процедуру. Если делать так
... что-то ...
CREATE PROCEDURE ...

то выдается сообщение об ошибке, что оператор CREATE PROCEDURE должен быть первым. А если так -
CREATE PROCEDURE ...
GO
... что-то еще ...

то ругается на GO. Подскажите, если не трудно, как это объехать ...

На всякий случай - VFP-8, MS SQL 7.0, подключение через ODBC
...
Рейтинг: 0 / 0
Прошу прокомментировать (VFP+SQL)
    #33274809
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В T-SQL нет такой команды GO !!!
Это директива двух утилит MICROSOFT (OSQL и Query Analyzer) и означает "конец пакета". SQL начинает выполнять твои команды, когда кончается пакет. Каждая SQLEXEC - это есть пакет, который может содержать много команд T-SQL. Некоторые команды T-SQL ОБЯЗАТЕЛЬНО должны быть в ОТДЕЛЬНОМ пакете. CREATE PROCEDURE... - одна из них.(только НЕ сохраненную, а хранимую). Если файл UPDATE.SQL ты формируешь средствами SQL, то он туда вставляет GO, так как предполагает, что скрипт будет выполнятся его средствами (OSQL или Query Analyzer).
Вывод:
Перед выполнением скрипта на сервера с помощью SQLEXEC, ты должен открыть это файл, как текстовый, средствами VFP и выполнять его по частям от GO до GO. Сама директива GO, разумеется в код, выподянемый на SQL Server попадать не должна.
С уважением, Алексей.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Прошу прокомментировать (VFP+SQL)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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