powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VisualFoxPro & VFCOM
13 сообщений из 13, страница 1 из 1
VisualFoxPro & VFCOM
    #32187487
Flex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Средсвами ADO создаю Recordset. Данные достаю с MSSQL 7.0. Все отрабатывает отлично. Но есть потребность перевести этот набор записей в родную фоксовскую форму. Использовал VFCOM Utilites - все получилось, но только каждый байт килицы подменяется на байт 0x00. С остальными все нормально.
Вот так :
Создаю набор записей Recordset(это не пишу за доступностью и понятностью), потом пытаюсь создать фоксовский курсор c C_TABLENAME
.......

#DEFINE C_TABLENAME 'Test'
Код: plaintext
1.
2.
3.
4.
5.
6.
oVfpCom = Newobject( "VFPCom.ComUtil" )
     lnError = oVfpCom.RSToCursor(oRecordSet , C_TABLENAME)
        If lnError #  0 
           Return
        Endif
     Select C_TABLENAME
     browse

Все отрабатывает, но в курсоре VFP килица "съедена", a в наборе записей ADO все нормально.
[src][/src]
...
Рейтинг: 0 / 0
VisualFoxPro & VFCOM
    #32187530
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забей на этот VFPCOM. Глючный он. Используй метод GetRows рекордсета. Таким образом данные кидаются в массив. На www.universalthread.com есть даже готовый конвертер работающий таким образом , у меня тоже где-то валяется :)
...
Рейтинг: 0 / 0
VisualFoxPro & VFCOM
    #32187554
Flex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы прибегнуть к такому варианту в самую последнюю очередь.
Для малых объемов - несомненно конвертор это хорошо,
а как быть с большими? Фоксяра повесится же пока что-то откуда-то
на таком высоком уровне будет конвертироваться. Хотя если сам VFPCOM написан с таким же подходом , то не будет.
...
Рейтинг: 0 / 0
VisualFoxPro & VFCOM
    #32187584
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекордсет имеет коннект или оторванный?
Если коннект есть то существует тулза от Александра Головлева. Скачать можно с www.universalthread.com
...
Рейтинг: 0 / 0
VisualFoxPro & VFCOM
    #32187653
Flex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crip, можно ссылочку поточнее?
...
Рейтинг: 0 / 0
VisualFoxPro & VFCOM
    #32187661
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
VisualFoxPro & VFCOM
    #32187673
Flex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crip, премного благодарен.
...
Рейтинг: 0 / 0
VisualFoxPro & VFCOM
    #32187736
Flex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crip, это бета - версия. А где нибудь есть нормальный релиз?
...
Рейтинг: 0 / 0
VisualFoxPro & VFCOM
    #32187767
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин другой нету... Это не коммерческий продукт...
А что-то не так?
В конце концов поставь себе VFP8 и будет тебе счастье
Пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
oc = CREATEOBJECT('adodb.connection')
rs = CREATEOBJECT('adodb.recordset')
rs.CursorLocation =  3   && adUseClient
rs.LockType =  4   && adLockBatchOptimistic
rs.CursorType =  3   && adOpenStatic
oc.Open([Provider=SQLOLEDB. 1 ;Persist Security Info=False;User ID=sa;Password = ;Initial Catalog=Northwind;Data Source=SQL])
rs.ActiveConnection = oc
rs.Open('Products')
ggg=CREATEOBJECT('cursoradapter')
ggg.DataSourceType = "ADO" 
ggg.CursorFill(.f.,.f.,,rs)
BROWSE LAST
...
Рейтинг: 0 / 0
VisualFoxPro & VFCOM
    #32189446
Flex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crip, все дело в том что при установлении коннекта данный OLE сервер ругался что я мол бета и если хочешь заиметь меня хорошего то обратись суда-то , суда-то. Поставил 8 Фокс. Да, проблемы отпали. Но возникли несколько вопросов.
1. Каким образом я могу отловить изменения в БД другим пользователем( допустим во время редактирования кто-то изменил запись или добавил). Тобишь как заиметь все время актуальную текущую инфу на сервере в своем курсоре?
2. Как внести изменения сделанные в курсоре созданном адаптером в курсор ADO и в конце концов на сервер?
3. Если я в режиме Буферизации, что или кто мне скажет что при сбросе буфера во время моего редактирования кто-то другой уже обновил данные в таблице на сервере?
Буду признателен за ответ.
...
Рейтинг: 0 / 0
VisualFoxPro & VFCOM
    #32189475
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Каким образом я могу отловить изменения в БД другим пользователем( допустим во время редактирования кто-то изменил запись или добавил).
Тобишь как заиметь все время актуальную текущую инфу на сервере в своем курсоре?

например requery по таймеру . Это вопрос поищи в MS SQL много там обсуждали
2. Как внести изменения сделанные в курсоре созданном адаптером в курсор ADO и в конце концов на сервер?

Весь вопрос в том как организована у тебя работа с сервером. Варианты
а) через хранимые процедуры
б) в пакетном режиме
в) пакетный режим для 1 записи

Вообще вариантов решения этой задачи в твоем случае целая куча.
Интересно знать зачем используется ADO?

3. Если я в режиме Буферизации, что или кто мне скажет что при сбросе буфера во время моего редактирования кто-то другой уже обновил данные в таблице на сервере

Можно использовать простой вариант - кто последний тот и прав. Можно также держать спец.таблицу с инфой какой пользователь , что открыл для редактирования. Это тоже много обсуждалось в форуме
...
Рейтинг: 0 / 0
VisualFoxPro & VFCOM
    #32189497
Flex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crip, с 3 пунктом понятно.
Я сам не знаю зачем ADO, препочитаю сквозные запросы через ODBC. Как говорится "партия приказала - комсомол ответил есть."
Работа с сервером в пакетном режиме.
на счет таймера была мысль, но данных слишком много и ежемесячное приращение 300 тыс. записей. Не пробовал, но есть подожрения что это будет сииильно притормаживать если пользователь попросит все.
...
Рейтинг: 0 / 0
VisualFoxPro & VFCOM
    #32189584
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работа с сервером в пакетном режиме.
1) можно напихать измененных данных из cursoradaptera в ADO.RecordSet
после чего UpdateBatch
2) Обычный tableupdate
И с курсорадаптером нужно поразбираться. Мне пока не до этого...

на счет таймера была мысль, но данных слишком много и ежемесячное приращение 300 тыс. записей. Не пробовал, но есть подожрения что это будет сииильно притормаживать если пользователь попросит все.
ХМ. А 1 запрос выбирает все? Самоубийство ИМХО.
И вообще пора бы научиться обьяснять начальству что обновление онлайн вещь слишком грузящая сеть и надо от этой идее надо отказаться. Должна быть кнопочка refresh
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VisualFoxPro & VFCOM
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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