|
VisualFoxPro & VFCOM
|
|||
---|---|---|---|
#18+
Средсвами ADO создаю Recordset. Данные достаю с MSSQL 7.0. Все отрабатывает отлично. Но есть потребность перевести этот набор записей в родную фоксовскую форму. Использовал VFCOM Utilites - все получилось, но только каждый байт килицы подменяется на байт 0x00. С остальными все нормально. Вот так : Создаю набор записей Recordset(это не пишу за доступностью и понятностью), потом пытаюсь создать фоксовский курсор c C_TABLENAME ....... #DEFINE C_TABLENAME 'Test' Код: plaintext 1. 2. 3. 4. 5. 6.
Все отрабатывает, но в курсоре VFP килица "съедена", a в наборе записей ADO все нормально. [src][/src] ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2003, 15:19 |
|
VisualFoxPro & VFCOM
|
|||
---|---|---|---|
#18+
Забей на этот VFPCOM. Глючный он. Используй метод GetRows рекордсета. Таким образом данные кидаются в массив. На www.universalthread.com есть даже готовый конвертер работающий таким образом , у меня тоже где-то валяется :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2003, 15:46 |
|
VisualFoxPro & VFCOM
|
|||
---|---|---|---|
#18+
Хотелось бы прибегнуть к такому варианту в самую последнюю очередь. Для малых объемов - несомненно конвертор это хорошо, а как быть с большими? Фоксяра повесится же пока что-то откуда-то на таком высоком уровне будет конвертироваться. Хотя если сам VFPCOM написан с таким же подходом , то не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2003, 15:58 |
|
VisualFoxPro & VFCOM
|
|||
---|---|---|---|
#18+
Рекордсет имеет коннект или оторванный? Если коннект есть то существует тулза от Александра Головлева. Скачать можно с www.universalthread.com ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2003, 16:14 |
|
VisualFoxPro & VFCOM
|
|||
---|---|---|---|
#18+
Crip, можно ссылочку поточнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2003, 17:08 |
|
VisualFoxPro & VFCOM
|
|||
---|---|---|---|
#18+
Crip, премного благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2003, 17:19 |
|
VisualFoxPro & VFCOM
|
|||
---|---|---|---|
#18+
Crip, это бета - версия. А где нибудь есть нормальный релиз? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2003, 18:08 |
|
VisualFoxPro & VFCOM
|
|||
---|---|---|---|
#18+
Блин другой нету... Это не коммерческий продукт... А что-то не так? В конце концов поставь себе VFP8 и будет тебе счастье Пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2003, 18:56 |
|
VisualFoxPro & VFCOM
|
|||
---|---|---|---|
#18+
Crip, все дело в том что при установлении коннекта данный OLE сервер ругался что я мол бета и если хочешь заиметь меня хорошего то обратись суда-то , суда-то. Поставил 8 Фокс. Да, проблемы отпали. Но возникли несколько вопросов. 1. Каким образом я могу отловить изменения в БД другим пользователем( допустим во время редактирования кто-то изменил запись или добавил). Тобишь как заиметь все время актуальную текущую инфу на сервере в своем курсоре? 2. Как внести изменения сделанные в курсоре созданном адаптером в курсор ADO и в конце концов на сервер? 3. Если я в режиме Буферизации, что или кто мне скажет что при сбросе буфера во время моего редактирования кто-то другой уже обновил данные в таблице на сервере? Буду признателен за ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2003, 16:48 |
|
VisualFoxPro & VFCOM
|
|||
---|---|---|---|
#18+
1. Каким образом я могу отловить изменения в БД другим пользователем( допустим во время редактирования кто-то изменил запись или добавил). Тобишь как заиметь все время актуальную текущую инфу на сервере в своем курсоре? например requery по таймеру . Это вопрос поищи в MS SQL много там обсуждали 2. Как внести изменения сделанные в курсоре созданном адаптером в курсор ADO и в конце концов на сервер? Весь вопрос в том как организована у тебя работа с сервером. Варианты а) через хранимые процедуры б) в пакетном режиме в) пакетный режим для 1 записи Вообще вариантов решения этой задачи в твоем случае целая куча. Интересно знать зачем используется ADO? 3. Если я в режиме Буферизации, что или кто мне скажет что при сбросе буфера во время моего редактирования кто-то другой уже обновил данные в таблице на сервере Можно использовать простой вариант - кто последний тот и прав. Можно также держать спец.таблицу с инфой какой пользователь , что открыл для редактирования. Это тоже много обсуждалось в форуме ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2003, 17:02 |
|
VisualFoxPro & VFCOM
|
|||
---|---|---|---|
#18+
Crip, с 3 пунктом понятно. Я сам не знаю зачем ADO, препочитаю сквозные запросы через ODBC. Как говорится "партия приказала - комсомол ответил есть." Работа с сервером в пакетном режиме. на счет таймера была мысль, но данных слишком много и ежемесячное приращение 300 тыс. записей. Не пробовал, но есть подожрения что это будет сииильно притормаживать если пользователь попросит все. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2003, 17:15 |
|
VisualFoxPro & VFCOM
|
|||
---|---|---|---|
#18+
Работа с сервером в пакетном режиме. 1) можно напихать измененных данных из cursoradaptera в ADO.RecordSet после чего UpdateBatch 2) Обычный tableupdate И с курсорадаптером нужно поразбираться. Мне пока не до этого... на счет таймера была мысль, но данных слишком много и ежемесячное приращение 300 тыс. записей. Не пробовал, но есть подожрения что это будет сииильно притормаживать если пользователь попросит все. ХМ. А 1 запрос выбирает все? Самоубийство ИМХО. И вообще пора бы научиться обьяснять начальству что обновление онлайн вещь слишком грузящая сеть и надо от этой идее надо отказаться. Должна быть кнопочка refresh ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2003, 17:52 |
|
|
start [/forum/topic.php?fid=41&fpage=420&tid=1598200]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 143ms |
0 / 0 |