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

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

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

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

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


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

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


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


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

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

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

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

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
17.09.2005, 11:20:58
    #33274809
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу прокомментировать (VFP+SQL)
В 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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Прошу прокомментировать (VFP+SQL) / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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