Автор | Сообщение |
|
| постоянный участник
|
Пост N: 475
Зарегистрирован: 13.10.05
|
|
Отправлено: 11.02.15 11:26. Заголовок: MEMORY_ТАБЛЕ
Можно скопировать выборку в таблицу в памяти (MEMORY) одной командой типа Copy To Temp или только создать, и потом копировать по записям?
|
|
|
Новых ответов нет
, стр:
1
2
All
[см. все]
|
|
|
| |
Пост N: 4473
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.02.15 11:44. Заголовок: Пробовать надо что т..
Пробовать надо что то типа Copy To mem:Temp , но думаю не сработает.
|
|
|
|
| постоянный участник
|
Пост N: 476
Зарегистрирован: 13.10.05
|
|
Отправлено: 11.02.15 13:47. Заголовок: *******************..
цитата: | ********************************************/ PROCEDURE MAIN() REQUEST DBFCDX , DBFFPT REQUEST HB_CODEPAGE_RU866 hb_SetCodepage("RU866") set date brit set century on Select 0 Use NASP Via "DBFCDX" alias Nasp index on Left(code,8) tag i1 OrdSCope(0,"56000005") OrdScope(1,"56000005") // Set filter to Left(code,8) = "56000004" go top browse(1,1,30,78) Copy to "mem:test" Close Nasp Select 0 Use "mem:test" Via "DBFCDX" Alias memTabl ?'1',lastrec() ?'1' wait browse(1,1,30,78) CLOSE all Select 0 Use "mem:test" Via "DBFCDX" Alias memTabl ?'2',lastrec() ?'2' ?'2' wait browse(5,1,30,78) // Close ("mem:test") DBDROP("mem:test") // Free memory resource Select 0 ?'3',lastrec() ?'3' ?'3' wait Use "mem:test" Via "DBFCDX" Alias memTabl browse(15,1,30,78) Return |
| хХарбоур 1.0 Получилось
|
|
|
|
| |
Пост N: 4474
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.02.15 13:51. Заголовок: Vlad04 пишет: Получ..
Vlad04 пишет: Нежданчик
|
|
|
|
| постоянный участник
|
Пост N: 473
Зарегистрирован: 17.02.12
|
|
Отправлено: 11.02.15 14:01. Заголовок: Dima пишет:Нежданчик..
Dima пишет: так тоже работает. DbCreate("mem:Temp", aStru, "DBFCDX", .T., "TMP" ) __dbTrans( nDstArea, aFieldsStru, cFor, cWhile, nNext, nRecord, lRest )
|
|
|
|
| постоянный участник
|
Пост N: 477
Зарегистрирован: 13.10.05
|
|
Отправлено: 12.02.15 06:21. Заголовок: SergKis Отдельной о..
SergKis Отдельной операцией наверно надо структуру исходной базы записывать записывать в массив? А отношении моего примера. Скорее всего создается временная таблица с именем "mem:test", а не таблица в памяти. В реальной программе потребовалось указать путь, иначе ошибка цитата: | Copy to "c:\temp\mem:test" Use "c:\temp\mem:test" |
|
|
|
|
|
| постоянный участник
|
Пост N: 474
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.02.15 15:02. Заголовок: Vlad04 вот пример ис..
Vlad04 вот пример использования (выдран из реального) с расширением структуры (если расширять\сужать не надо то copy to ... достаточно): Скрытый текст
REQUEST DBFCDX, HB_MEMIO ... LOCAL aStru, nSrcArea, nDstArea, cMemFile, aFldStru ... USE K3.DBF ALIAS K3 NEW nSrcArea := select() aStru := DbStruct() aFldStru := DbStruct() cMemFile := 'mem:'+alias()+'_' aAdd(aStru, {'R_KOL1', 'N', 15, 3}) // добавим new field aAdd(aStru, {'R_CEN1', 'N', 15, 4) aAdd(aStru, {'R_SUM1', 'N', 15, 2}) DbDrop(cMemFile, cMemFile, 'DBFCDX') DbCreate(cMemFile, aStru, 'DBFCDX',.T., "TMP" ) nDstArea := select() DbSelectArea(nSrcArea) __dbTrans( nDstArea, aFldStru, {|| ! empty(DATA_P)}, , , , ) // FOR DbCloseArea() DbSelectArea(nDstArea) DbGotop() DO WHILE !EOF // вычисляем new field REPL R_KOL1 with R_K1 + R_K2 + R_K3 - R_K4 REPL R_SUM1 with R_S1 + R_S2 + R_S3 - R_S4 IF ! empty(R_KOL1) REPL R_CEN1 with R_SUM1 / R_KOL1 ENDIF SKIP ENDDO DbCloseArea() DbDrop(cMemFile, cMemFile, 'DBFCDX')
|
|
|
|
|
| постоянный участник
|
Пост N: 475
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.02.15 15:48. Заголовок: Vlad04 пишет:Скорее ..
Vlad04 пишет: цитата: | Скорее всего создается временная таблица с именем "mem:test", а не таблица в памяти. В реальной программе потребовалось указать путь, иначе ошибка |
| при указании пути, думаю файл создавался на диске. надо Copy to ( "mem:test" ) Use ( "mem:test" ) Via "DBFCDX" Alias memTabl и лучше DbDrop("mem:test", "mem:test", 'DBFCDX') не надо думать был индекс у таблицы или нет.
|
|
|
|
| |
Пост N: 4478
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.02.15 15:54. Заголовок: SergKis пишет: DbDr..
SergKis пишет: цитата: | DbDrop("mem:test", "mem:test", 'DBFCDX') не надо думать был индекс у таблицы или нет. |
| А разве вот так индекс не завалится ? DbDrop("mem:test",, 'DBFCDX')
|
|
|
|
| постоянный участник
|
Пост N: 476
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.02.15 17:20. Заголовок: Dima пишет:А разве в..
Dima пишет: цитата: | А разве вот так индекс не завалится ? DbDrop("mem:test",, 'DBFCDX') |
| DbDrop(<mem:dbf>,<mem:ind>, 'DBFCDX') - удаляются парой, если есть Use ("mem:test") .... Index ... ("mem:test") ... dbDrop("mem:test", , 'DBFCDX') Use ("mem:test") .... Index ... ("mem:test") свалится (остался инд.файл) и что бы не думать был индекс у таблицы или нет, делаю всегда DbDrop("mem:test", "mem:test", 'DBFCDX') до dbCreate("mem:test",...) и по завершении использования таблицы mem:test
|
|
|
|
| |
Пост N: 4480
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.02.15 17:34. Заголовок: SergKis пишет: до d..
SergKis пишет: цитата: | до dbCreate("mem:test",...) и по завершении использования таблицы mem:test |
| Понял. Спасибо. Пошел свою прогу полировать PS Упс , исправил 87 исходников.
|
|
|
|
| |
Пост N: 4481
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.02.15 18:56. Заголовок: SergKis пишет: Inde..
SergKis пишет: Оригинально. Ведь если индекс строится как TAG то вот это ("mem:test") тут не нужно. Собственно изначально я смотрел пример в harbour\contrib\hbmemio\tests\test.prg
|
|
|
|
|
| постоянный участник
|
Пост N: 477
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.02.15 21:37. Заголовок: Dima пишет:то вот эт..
|
|
|
|
| |
Пост N: 4482
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.02.15 22:13. Заголовок: SergKis пишет: подр..
SergKis пишет: цитата: | подробнее уже было в теме |
| Согласен. Проехали.
|
|
|
|
| постоянный участник
|
Пост N: 478
Зарегистрирован: 13.10.05
|
|
Отправлено: 13.02.15 10:38. Заголовок: SergKis Я на Харбор..
SergKis Я на Харборе 1.0 не понимает
|
|
|
|
| |
Пост N: 4485
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.02.15 10:40. Заголовок: Vlad04 Библу Hbmemi..
Vlad04 Библу Hbmemio тоже не линковал ?
|
|
|
|
| постоянный участник
|
Пост N: 479
Зарегистрирован: 13.10.05
|
|
Отправлено: 13.02.15 10:55. Заголовок: какая библиотека в н..
какая библиотека в на xХарборе 1.0 подключает mem: ? hbmemio.lib такой нет
|
|
|
|
| |
Пост N: 4486
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.02.15 10:58. Заголовок: xharbour\contrib..
xharbour\contrib\filemem Правда у меня xHarbour 1.2.3 Intl
|
|
|
|
| постоянный участник
|
Пост N: 480
Зарегистрирован: 13.10.05
|
|
Отправлено: 13.02.15 11:34. Заголовок: В 1.0 нет Выложи куд..
В 1.0 нет Выложи куда нибудь
|
|
|
|
| постоянный участник
|
Пост N: 3950
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.02.15 11:40. Заголовок: Vlad04 пишет: на xХ..
Vlad04 пишет: Переходи на 1.2.3 - стабильнеё работа на порядок !
|
|
|
|
| |
Пост N: 4487
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.02.15 11:50. Заголовок: Vlad04 http://my-fi..
|
|
|
Новых ответов нет
, стр:
1
2
All
[см. все]
|
|