powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перевод кода на MS SQL Server
25 сообщений из 53, страница 1 из 3
Перевод кода на MS SQL Server
    #34176838
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые! У меня такой вопрос.
Имеется приложение на фоксе, его нужно перевести на MS SQL Server. Т.е. данные поместить на SQL Server. Предполагается использовать ADODB и VFP CursorAdapter. В коде имеется выделенный слой для работы с базой данных, в котором куча Select'ов, Insert'ов, Delete'ов напрямую обращающихся к физическим данным. Посоветуйте какую технологию переработки кода лучше всего избрать, чтобы обойтись как можно меньшей кровью?
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34176941
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поясню:
Вот например мне не понятно, как бороться с таким кодом -

SELECT IdExp ;
FROM KsPrd ;
WHERE Period IN ( lcTagPeriod, tcPeriod) ;
AND idexp IN (SELECT Id FROM CurTO) AND EMPTY(ddelete);
INTO CURSOR IdExpCursor

строка AND idexp IN (SELECT Id FROM CurTO) предполагает, что есть некий курсор CurTO, как это объяснить SQL Server'у?
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177039
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть на форуме кто-нибудь, кто переводил фоксовское приложение на SQL сервер?
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177054
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin_timaЕсть на форуме кто-нибудь, кто переводил фоксовское приложение на SQL сервер?
Ох.. тяжело это... Вот так в лоб переводить из файл-сервер в клиент-сервер. А главное, мало смысла такого перевода. Да, работать будет, но не лучше, чем у вас работало в файл-сервер. Другая идеология. Граната не той системы :).
Проще, по моему мнению, для клиент-сервер все начать с нуля.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177084
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут такая ситуация. Заказчик требует сделать перевод. Делать это всеравно придется. А переработать код всетаки легче, чем написать заново. Но не в этом суть.
Хотелось бы все-таки услышать реальные предложения! Возможно и другим это пригодится...
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177089
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотелось бы узнать, что вы имели в виду - Другая идеология. Граната не той системы :).
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177143
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin_timaХотелось бы все-таки услышать реальные предложения! Возможно и другим это пригодится...
К тому что сказал Алексей - добавлю, что прийдется переписывать все, включая интерфейс, иначе все будет работать оооччччень меееедленно...

В настоящий момент имею очень большую проблему с промышленной ERP программой, быстро переведенной на MS SQL Server (наверное в Индии ) Так одна форма в ней открывается за 30-35 секунд... Это что-то

But anyway, good luck!
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177151
Фотография Vladimir M Sklyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin_timaХотелось бы узнать, что вы имели в виду - Другая идеология. Граната не той системы :).

Что-то типа этого. Если переделывать - то с нуля и наче это будет тот-же файл-сервер, только способ хранения другой
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177176
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В нашей системе есть выделенный слой данных, в виде Dll компоненты, который обменивается с интерфейсом через XML пакеты. Вот только в этой компаненте и нужно сделать преобразования. А она в свою очередь содержит только методы доступа к данным через SQL команды, естественно в фоксовском формате. Вот эти методы требуется переработать. Как это лучше сделать? У кого есть опыт, тот может, я думаю дать реальные советы. Может использовать хранимые процедуры на сервере подобных методам компоненты? Или все же переработка кода. А может кто-то использовал другие пути?
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177444
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin_timaВ нашей системе есть выделенный слой данных, в виде Dll компоненты, который обменивается с интерфейсом через XML пакеты. Вот только в этой компаненте и нужно сделать преобразования. А она в свою очередь содержит только методы доступа к данным через SQL команды, естественно в фоксовском формате. Вот эти методы требуется переработать. Как это лучше сделать? У кого есть опыт, тот может, я думаю дать реальные советы. Может использовать хранимые процедуры на сервере подобных методам компоненты? Или все же переработка кода. А может кто-то использовал другие пути?
Язык у Вас какой-то странный... Вы вообще, на чем пишете программы, если не секрет и как долго?
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177457
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще то на фоксе, а что странного?
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177580
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А клиент для вашей Dll тоже на VFP написан? Иначе зачем тут XML ?
С уважением, Алексей
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177612
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin_timaВообще то на фоксе, а что странного?
Просто мы хотм понять, в чем у Вас проблема и какие Ваши возможности как программиста, чтобы показать правильный путь... Потому как правильно заметил Алексей - фраза "Dll компоненты, который обменивается с интерфейсом через XML пакеты" говорит о том, что тут пахнет "Delphi"... и очень мало от FoxPro...
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177715
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Клиент тоже на фоксе написан, а компанента используется как COM+, преимущества те же, что и в многослойной архитектуре.
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177735
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch Valentin_timaВообще то на фоксе, а что странного?
Просто мы хотм понять, в чем у Вас проблема и какие Ваши возможности как программиста, чтобы показать правильный путь... Потому как правильно заметил Алексей - фраза "Dll компоненты, который обменивается с интерфейсом через XML пакеты" говорит о том, что тут пахнет "Delphi"... и очень мало от FoxPro...
Нет! "Delphi" тут и не пахнет. все на фоксе до последней команды. А что не понятного в этой фразе? Компонента обменивается с клиентом данными через XML.
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177777
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Меня интересует то, что касается кода работы с данными через фоксовский SQL, вот что с этим кодом делать? Можно его каким то образом переработать на месте? И если можно, то как это лучше сделать?
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177793
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin_timaХотелось бы узнать, что вы имели в виду - Другая идеология. Граната не той системы :).
Есть такая прога, может слышал, 1С 7.7 называется. Вот ее разработчики в лоб на MS-SQL с файл-серверного варианта перевели. Идеология работы с базой как была файловая, так и осталась. Тормоз жуткий.
При программировании клиент-сервера, идеология другая, абсолютно другой подход к получению данных, если с файл-сервером быстрее работа с записями, при этом к источнику данных можно постоянно быстро обращаться, то в клиент-сервере главное получить результат минимальным количеством обращений к базе.
Valentin_timaВ нашей системе есть выделенный слой данных, в виде Dll компоненты, который обменивается с интерфейсом через XML пакеты. Вот только в этой компаненте и нужно сделать преобразования. А она в свою очередь содержит только методы доступа к данным через SQL команды, естественно в фоксовском формате. Вот эти методы требуется переработать. Как это лучше сделать? У кого есть опыт, тот может, я думаю дать реальные советы. Может использовать хранимые процедуры на сервере подобных методам компоненты? Или все же переработка кода. А может кто-то использовал другие пути?
Простой заменой одного синтаксиса на другой не отделаться, даже если получится, то тормоз будет страшный. Совета типа "Сделай так и будет тебе счастье" никто не даст. Если задашь конкретный вопрос, получишь конкретный ответ.
А разработчиков этой DLL спросить можешь? Может ТЗ или описаловка какая есть? Тебе надо четко представлять как эта DLL работает. В фоксе только один вид DLL бывает - COM-объекты, которые используются клиентским софтом, поэтому надо понять что делает каждый класс, и исходя из этого переписывать, можеть с нуля быстрей написать будет. Вероятно структура базы изменится.
Valentin_timaЕсть на форуме кто-нибудь, кто переводил фоксовское приложение на SQL сервер?
Переводил - писал с нуля
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177803
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin_tima Компонента обменивается с клиентом данными через XML.
Уже теплее... А что клиент потом делает с этим XML, после приема его от Вашей "компоненты"?
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177829
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch Valentin_tima Компонента обменивается с клиентом данными через XML.
Уже теплее... А что клиент потом делает с этим XML, после приема его от Вашей "компоненты"?
Преобразует в VFP курсоры, т.е. происходит двусторонний обмен XML пакетами между клиентом и компанентой. А что это так важно? Вопрос то не совсем об этом, а точнее совсем не об этом... Как заставить компоненту работать с SQL Server'ом. Вот на этот вопрос хотелось бы получить ответы....
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34177869
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T Valentin_tima
А разработчиков этой DLL спросить можешь? Может ТЗ или описаловка какая есть? Тебе надо четко представлять как эта DLL работает. В фоксе только один вид DLL бывает - COM-объекты, которые используются клиентским софтом, поэтому надо понять что делает каждый класс, и исходя из этого переписывать, можеть с нуля быстрей написать будет. Вероятно структура базы изменится.
[quot Valentin_tima]Есть на форуме кто-нибудь, кто переводил фоксовское приложение на SQL сервер?
Переводил - писал с нуля
Dll'ки эти знаю, так как являюсь сопроводителем как раз этого добра.
Тогда конкретный вопрос.
Есть ли разница при работе с SQL Server'ом в СOM и COM+ технологии?
Какие реальные преимущества дает CurcorAdapter и ADODB против использования SQLConnect, SQLExec.
Какие преимущества при использовании CurcorAdapter против ADODB.
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34178070
andrew_Pr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin_timaВот например мне не понятно, как бороться с таким кодом -

Код: plaintext
1.
2.
3.
4.
SELECT IdExp ;
FROM KsPrd ; 
WHERE Period IN ( lcTagPeriod, tcPeriod) ; 
AND idexp IN (SELECT Id FROM CurTO) AND EMPTY(ddelete);
INTO CURSOR IdExpCursor
строка AND idexp IN (SELECT Id FROM CurTO) предполагает, что есть некий курсор CurTO, как это объяснить SQL Server'у?

Сначала объясните, откуда Fox знает о существовании "некий курсор CurTO" ?
Очевидно, клиент предварительно отправляет, а компонента выполняет нечто вроде "Select * from тра-та-та INTO Cursor CurTO"
Что Вам мешает аналогично поступить с MSSQL ?

***
Valentin_tima
Вот только в этой компаненте и нужно сделать преобразования. А она в свою очередь содержит только методы доступа к данным через SQL команды, естественно в фоксовском формате.

Насколько я себе представляю взаимодействие с компонентой происходит примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
оКомпанент.МетодПолученияДанных(Текст_SQL_запроса,Имя_XML_файла)

****
Define CLASS  Компанент OLEPUBLIC
Function МетодПолученияДанных
param Текст_SQL_запроса, Имя_XML_файла

&Текст_SQL_запроса into tmpCursor
=CURSORTOXML('tmpCursor',Имя_XML_файла)

ENDDEFINE

Что именно Вам мешает заменить < &Текст_SQL_запроса into tmpCursor >
на < =SQLEXEC(КоннектДескриптор,Текст_SQL_запроса ,'tmpCursor' >
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34178143
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin_tima Преобразует в VFP курсоры, т.е. происходит двусторонний обмен XML пакетами между клиентом и компанентой. А что это так важно? ....
Вот это очень важно... Получается, что Ваше приложение уже написано под клиент-серверную идеологию...

Осталось только переписать как указано Выше запросы на прием данных от сервера и все...

У меня работает аналогичный подход внутри Web Service - там идет внутри соединиение где надо с dbf или MS SQL Server... (на SQL Server я все сделал через хранимые процедуры - так проще по причине более развитого синтаксиса SQL)...

Good luck!

P.S. Как работать в FoxPro с MS SQL Server есть хорошие статьи на сайте Алексея или в VFP Help...
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34178151
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По первому вопросу, данный курсор создается в коде из XML строки во входном параметре и далее используется, как видите, в запросе к источнику данных. Дело в том, что если послать на прямую этот запрос на сервер, то естественно сервер его не переварит, потому что просто не поймет. Как можно обйти подобные места в коде, а их как раз очень много?
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34178189
Valentin_tima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch Valentin_tima Преобразует в VFP курсоры, т.е. происходит двусторонний обмен XML пакетами между клиентом и компанентой. А что это так важно? ....
Вот это очень важно... Получается, что Ваше приложение уже написано под клиент-серверную идеологию...

Осталось только переписать как указано Выше запросы на прием данных от сервера и все...

У меня работает аналогичный подход внутри Web Service - там идет внутри соединиение где надо с dbf или MS SQL Server... (на SQL Server я все сделал через хранимые процедуры - так проще по причине более развитого синтаксиса SQL)...

Good luck!

P.S. Как работать в FoxPro с MS SQL Server есть хорошие статьи на сайте Алексея или в VFP Help...
Вы очень правильно поняли мою проблему, сразу видно, что Вы имеете в этом вопросе опыт.
Да, действительно приложение создавалось под идеалогию клиент-сервер.
Вопрос: Каким способом Вы подключаетесь в серверу, и какие средства используете при работе с сервером через фокс (RV, ADO, CA, SPT) ?
...
Рейтинг: 0 / 0
Перевод кода на MS SQL Server
    #34178203
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin_timaПо первому вопросу, данный курсор создается в коде из XML строки во входном параметре и далее используется, как видите, в запросе к источнику данных. Дело в том, что если послать на прямую этот запрос на сервер, то естественно сервер его не переварит, потому что просто не поймет. Как можно обйти подобные места в коде, а их как раз очень много?
1. перед запросом создать временную таблицу на сервере, заполнить и указать ее в запросе
2. перечислить список вместо подзапроса
Код: plaintext
select ... idexp in ( 1 , 2 , 3 , 4 , 5 ,...)
Что быстрее работает надо пробовать. Зависит от размеров таблиц. И во втором варианте могут быть проблемы если запрос окажется очень длинный. В VFP6 ограничение около 4000 знаков.
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 1 из 3
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перевод кода на MS SQL Server
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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