Автор | Сообщение |
|
| |
Пост N: 2964
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.04.13 16:17. Заголовок: HBMEMIO
Что то я застрял. Вот такой код работает REQUEST HB_MEMIO REQUEST DBFCDX PROCEDURE Main() dbCreate( "mem:test", { { "pole", "N", 1, 0 }},,.T.,"tmp" ) index on pole tag "test" close tmp dbDrop( "mem:test" ) dbCreate( "mem:test", { { "pole2", "N", 1, 0 }},,.T.,"tmp" ) index on pole2 tag "test" close tmp dbDrop( "mem:test" ) RETURN Но так как работаю с ADS , код пришлось изменить и он становится не рабочим REQUEST HB_MEMIO REQUEST DBFCDX PROCEDURE Main() dbCreate( "mem:test", { { "pole", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole tag "test" close tmp dbDrop( "mem:test" ) dbCreate( "mem:test", { { "pole2", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole2 tag "test" close tmp dbDrop( "mem:test" ) RETURN Как явно указать DBCREATE что юзать нужно именно HBMEMIO ?
|
|
|
Ответов - 42
, стр:
1
2
3
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 867
Зарегистрирован: 27.01.07
|
|
Отправлено: 08.04.13 16:29. Заголовок: А так dbCreate( ..
А так dbCreate( "mem:test", { { "pole", "N", 1, 0 }},"HBMEMIO",.T.,"tmp" ) не получается?
|
|
|
|
| |
Пост N: 2965
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.04.13 16:31. Заголовок: PSP пишет: не получ..
PSP пишет: Нет так падает Dbcreate
|
|
|
|
| постоянный участник
|
Пост N: 204
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.04.13 16:37. Заголовок: Dima пишет:Как явно ..
Dima пишет: цитата: | Как явно указать DBCREATE что юзать нужно именно HBMEMIO ? |
| PROCEDURE Main() RddSetDefault('DBFCDX') dbCreate( "mem:test", { { "pole", "N", 1, 0 }}, ,.T.,"tmp" ) ? RddName() // DBFCDX без RddSetDefault будет DBFNTX ...
|
|
|
|
| постоянный участник
|
Пост N: 868
Зарегистрирован: 27.01.07
|
|
Отправлено: 08.04.13 16:38. Заголовок: Тогда ничего не надо..
Тогда ничего не надо указывать. "mem:test" достаточно. https://groups.google.com/forum/?fromgroups=#!topic/harbour-users/d8C6cXWbR-E
|
|
|
|
| постоянный участник
|
Пост N: 205
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.04.13 16:40. Заголовок: Dima HB_MEMIO через ..
Dima HB_MEMIO через mem: в имени dbf
|
|
|
|
| |
Пост N: 2967
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.04.13 17:01. Заголовок: SergKis пишет: RddS..
SergKis пишет: цитата: | RddSetDefault('DBFCDX') dbCreate( "mem:test", { { "pole", "N", 1, 0 }}, ,.T.,"tmp" ) |
| Это понятно ;) Но у меня RddSetDefault('ADSCDX') Поэтому dbcreate будет юзать именно ADSCDX и прога упадет. Можно сделать через ж...у Перед Dbcreate установитьRddSetDefault('DBFCDX') а после создания индекса RddSetDefault('ADSCDX')
|
|
|
|
| |
Пост N: 2968
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.04.13 17:10. Заголовок: Dima пишет: Перед D..
Dima пишет: цитата: | Перед Dbcreate установитьRddSetDefault('DBFCDX') а после создания индекса RddSetDefault('ADSCDX') |
| Фокус не удался. Dima пишет: цитата: | PROCEDURE Main() dbCreate( "mem:test", { { "pole", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole tag "test" close tmp dbDrop( "mem:test" ) dbCreate( "mem:test", { { "pole2", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole2 tag "test" close tmp dbDrop( "mem:test" ) RETURN |
| если умалчиваемый RDD LetoDB или ADSCDX то как сделать приведенный выше код рабочим ? Похоже по DBDROP убивается база а индекс продолжает жить.
|
|
|
|
| |
Пост N: 2969
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.04.13 17:49. Заголовок: Вот так будет пахать..
Вот так будет пахать dbCreate( "mem:test", { { "pole", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole tag test orddestroy("test") close tmp dbDrop( "mem:test" ) dbCreate( "mem:test", { { "pole2", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole2 tag test orddestroy("test") close tmp dbDrop( "mem:test" )
|
|
|
|
| moderator
|
Пост N: 583
Зарегистрирован: 06.07.06
|
|
Отправлено: 08.04.13 18:39. Заголовок: Никак не пойму, чего..
Никак не пойму, чего именно вы хотите добиться. Чтобы rddads работал через hbmemio ? Это невозможно, да и зачем ?
|
|
|
|
| |
Пост N: 2970
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.04.13 19:18. Заголовок: alkresin пишет: Что..
alkresin пишет: цитата: | Чтобы rddads работал через hbmemio ? |
| Нет конечно , чуть позже объясню и все станет ясно.
|
|
|
|
| |
Пост N: 2971
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.04.13 21:07. Заголовок: REQUEST DBFCDX REQU..
REQUEST DBFCDX REQUEST HB_MEMIO REQUEST ADS rddSetDefault( "ADSCDX" ) ..... и тд и тп иду в определеный раздел своей проги и формирую ведомость. открываю нужные базы с умалчиваемым RDD (ADSCDX) и создаю временную базу в памяти для отчета. dbCreate( "mem:test", { { "pole", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole tag test ....... создал отчет и якобы похоронил и временную базу и индекс к ней close tmp dbDrop( "mem:test" ) затем лезу в другой раздел проги и создаю совершенно другой отчет и поля в базе будут другие и ключи в индексе тоже. создаю с тем же MEM: именем полагая что по DBDROP("mem:test") ранее я убил и базу и индекс. dbCreate( "mem:test", { { "pole2", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole2 tag test // облом наступит тут с base error 1003 Где я не прав и что нужно исправлять ? Почему жив предыдущий индекс ? То есть все как и выше писал dbCreate( "mem:test", { { "pole", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole tag test close tmp dbDrop( "mem:test" ) dbCreate( "mem:test", { { "pole2", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole2 tag test // BASE/1003 Variable does not exist: POLE close tmp dbDrop( "mem:test" )
|
|
|
|
|
| Администратор
|
Пост N: 2840
Зарегистрирован: 23.05.05
|
|
Отправлено: 08.04.13 21:37. Заголовок: Dima пишет: Где я н..
Dima пишет: цитата: | Где я не прав и что нужно исправлять ? Почему жив предыдущий индекс ? |
| Метод drop отсутствует у DBFCDX, он его наследует от своего предка, т.е. DBF. А dbfDrop удаляет только файл dbf. Индекс он тоже вроде бы пытается удалить, ищет по запросу RDDI_ORDSTRUCTEXT, но что-то там не складывается видать. Можно не заморачиваться с этими методами rdd, а поступить проще: FErase("mem:test.dbf") FErase("mem:test.cdx") Префикс mem: хорош тем, что работает для любых файловых операций, если подключен memio. Это не rdd, а драйвер ввода-вывода. Так что это можно использовать.
|
|
|
|
| |
Пост N: 2972
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.04.13 21:47. Заголовок: Pasha пишет: FErase..
Pasha пишет: цитата: | FErase("mem:test.dbf") FErase("mem:test.cdx") |
| Попробую , спасибо !!! Pasha пишет: Это я понял методом полевых испытаний ;)
|
|
|
|
| |
Пост N: 2973
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.04.13 09:18. Заголовок: Pasha А как по имен..
Pasha А как по имени алиаса закрыть индексы , закрыть базу и потом из завалить ? Про mem: речь Пробую функцию сочинить но пока не выходит. Что то типа memdrop(alias)
|
|
|
|
| постоянный участник
|
Пост N: 206
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.04.13 09:57. Заголовок: Dima Есть еще hb_db..
Dima Есть еще hb_dbdrop(dbf,ind,rdd,...) no VIA RDD parameter, use default
|
|
|
|
| Администратор
|
Пост N: 2841
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.04.13 11:35. Заголовок: Dima пишет: А как п..
Dima пишет: цитата: | А как по имени алиаса закрыть индексы , закрыть базу и потом из завалить ? |
| Это же обычная рабочая область, закрывается по dbCloseArea() вместе с индексами. А валить файл и индекс надо как обычные файлы, только указать префикс "mem:" перед именем.
|
|
|
|
| постоянный участник
|
Пост N: 2789
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.04.13 11:40. Заголовок: SergKis пишет: Есть..
SergKis пишет: цитата: | Есть еще hb_dbdrop(dbf,ind,rdd,...) no VIA RDD parameter, use default |
| А это для чего ? По доке не нашел...
|
|
|
|
| |
Пост N: 2974
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.04.13 11:42. Заголовок: Решил сделать так ..
Решил сделать так Func Clearmemfile(_alias) local cfile:=(_alias)->(dbinfo(DBI_FULLPATH)) local cindeks:=(_alias)->(dbOrderInfo(DBOI_FULLPATH)) (_alias)->(DbCloseArea()) hb_dbdrop(cfile,cindeks) return nil
|
|
|
|
| постоянный участник
|
Пост N: 207
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.04.13 11:46. Заголовок: Andrey пишет:По доке..
Andrey пишет: см. DbCmd.c (на ней, я так понимаю, сделана dbDrop(...)) Скрытый текст
HB_FUNC( HB_DBDROP ) { LPRDDNODE pRDDNode; HB_USHORT uiRddID; HB_ULONG ulConnection; const char * szDriver; PHB_ITEM pName; szDriver = hb_parc( 3 ); if( ! szDriver ) /* no VIA RDD parameter, use default */ { szDriver = hb_rddDefaultDrv( NULL ); } ulConnection = hb_parnl( 4 ); pRDDNode = hb_rddFindNode( szDriver, &uiRddID ); /* find the RDDNODE */ pName = hb_param( 1, HB_IT_STRING ); if( pRDDNode && pName ) hb_retl( SELF_DROP( pRDDNode, pName, hb_param( 2, HB_IT_STRING ), ulConnection ) == HB_SUCCESS ); else hb_errRT_DBCMD( EG_ARG, EDBCMD_EVAL_BADPARAMETER, NULL, HB_ERR_FUNCNAME ); }
|
|
|
|
|
| |
Пост N: 2975
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.04.13 12:13. Заголовок: Dima пишет: Решил с..
Dima пишет: Так тоже не прокатило. Индексный продолжает жить в памяти.
|
|
|
|
| |
Пост N: 2976
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.04.13 12:16. Заголовок: Pasha пишет: FErase..
Pasha пишет: возвращает -1 и файл продолжает жить
|
|
|
|
|
| |
Пост N: 2977
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.04.13 12:29. Заголовок: Pasha Вот самодост..
Pasha Вот самодостаточный пример REQUEST HB_MEMIO REQUEST DBFCDX REQUEST LETO #include "dbinfo.ch" PROCEDURE Main() RDDSETDEFAULT( "LETO" ) dbCreate( "mem:test", { { "pole", "N", 1, 0 },{ "pole22", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole tag test2 index on pole22 tag eeee *Clearmemfile("tmp") close tmp dbdrop("mem:test") Ferase("mem:test.cdx") // до лампочки dbCreate( "mem:test", { { "pole2", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole2 tag test // вот тут мы упадем ;) *Clearmemfile("tmp") close tmp dbdrop("mem:test") RETURN ************* Func Clearmemfile(_alias) local cfile:=(_alias)->(dbinfo(DBI_FULLPATH)) local cindeks:=(_alias)->(dbOrderInfo(DBOI_FULLPATH)) (_alias)->(DbCloseArea()) hb_dbdrop(cfile,cindeks) return nil
|
|
|
|
| постоянный участник
|
Пост N: 208
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.04.13 12:52. Заголовок: Dima У меня все OK!...
Dima У меня все OK!. FUNCTION TestMemIO() LOCAL cRdd cRdd := RddSetDefault() RddSetDefault("LETO") dbCreate( "mem:test", { { "pole", "N", 1, 0 },{ "pole22", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole tag test2 index on pole22 tag eeee ? alias(),used(),cRdd,RddSetDefault() close tmp dbdrop("mem:test","mem:test","DBFCDX") dbCreate( "mem:test", { { "pole2", "N", 1, 0 }},"DBFCDX",.T.,"tmp" ) index on pole2 tag test // вот тут мы упадем ;) close tmp dbdrop("mem:test","mem:test","DBFCDX") RddSetDefault(cRdd) RETURN
|
|
|
|
| |
Пост N: 2978
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.04.13 12:56. Заголовок: SergKis пишет: dbdr..
SergKis пишет: цитата: | dbdrop("mem:test","mem:test","DBFCDX") |
| Спасибо , мой косяк. Виноват ;)
|
|
|
|
| Администратор
|
Пост N: 2842
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.04.13 13:03. Заголовок: request dbfcdx rddSe..
request dbfcdx rddSetDefault('DBFCDX') У меня такой тест работает: dbCreate('mem:test', {{'T1', 'C', 10, 0}}, 'DBFCDX', .t., 'tmp') index on Field->t1 tag test2 ? reccount(), IndexKey() close tmp //dbDrop('mem:test') ? FErase('mem:test.dbf') // 0 ? FErase('mem:test.cdx') // 0 У тебя не сработал FErase из-за того, что файл уже удален вызовом dbDrop. Хотя неясно, если dbDrop удаляет индекс, откуда он появляется вновь ?
|
|
|
|
| |
Пост N: 2979
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.04.13 13:13. Заголовок: Pasha Косяк мой был..
Pasha Косяк мой был в том что mem: базу создавал через DBFCDX А в DBROP , RDD не указывал в то время как умалчиваемым RDD был ADSCDX или Leto как в примере. Делал так Dbdrop("mem:test") А надо было Dbdrop("mem:test",,"DBFCDX") и тогда убивается и база и индекс. Накосячил я ;)
|
|
|
|
| |
Пост N: 2980
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.04.13 13:20. Заголовок: Pasha пишет: reques..
Pasha пишет: цитата: | request dbfcdx rddSetDefault('DBFCDX') У меня такой тест работает: |
| Сделай rddSetDefault('LETO') и тогда Ferase вернет -1
|
|
|
|
| Администратор
|
Пост N: 2843
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.04.13 16:44. Заголовок: Dima пишет: А надо ..
Dima пишет: цитата: | А надо было Dbdrop("mem:test",,"DBFCDX") и тогда убивается и база и индекс. |
| Да, выходит эти команды вызываются вне контекста рабочей области, и поэтому rdd приходится для них указывать напрямую, если по умолчанию используется другой.
|
|
|
|
| постоянный участник
|
Пост N: 7564
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.09.23 13:38. Заголовок: Вопрос по ускорению ..
Вопрос по ускорению расчётов по DBF Имею большую базу 350 Мб, по ней раз в неделю идут расчёты. Есть ли смысл эту базу записать в "mem:", сделать расчёты, а потом перезаписать обратно на диск ? Будет ли при этом ускорение при расчётах ?
|
|
|
|
| постоянный участник
|
Пост N: 4400
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.09.23 14:15. Заголовок: Если она поместится ..
Если она поместится в память Для ускорения можно ключевые и если надо поля для фильтров класть в mem:, делать на них scope, filter и связывать с осн. базой, считать. У тебя база не большая, а широкая, колонки по годам, вот можешь в mem: переносить только колонки года, считать, брать другого года колонки в mem:. снова считать ..., причем колонки в мем: называешь без цифр года - получаешь универсальный расчсет. PS. Для mem: можешь создавать из структуры базы, структуру в в mem: только одного года, append from .. переносить данные и считать, что быстрее пробуй. То же можешь сделать и с REQUEST SQLMIX, rddSetDefault( "SQLMIX" ) есть примеры
|
|
|
|
| постоянный участник
|
Пост N: 7565
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.09.23 14:52. Заголовок: SergKis пишет: вот ..
SergKis пишет: цитата: | вот можешь в mem: переносить только колонки года, считать, брать другого года колонки в mem:. снова считать ..., причем колонки в мем: называешь без цифр года - получаешь универсальный расчсет. |
| Нет, это база одного года, по каждому абоненту. Кол-во абонентов соответствует кол-ву записей в базе. Правда 1/5 часть базы можно не считать, абоненты ушли. Я хочу целиком базу записать в "mem:", не разбираться считать или не считать эту запись.
|
|
|
|
|
| постоянный участник
|
Пост N: 1669
Зарегистрирован: 27.01.07
|
|
Отправлено: 22.09.23 14:57. Заголовок: Andrey пишет: Я хоч..
Andrey пишет: цитата: | Я хочу целиком базу записать в "mem:", не разбираться считать или не считать эту запись |
| Для начала надо выяснить, сколько времени будет занимать перенос диск->память --- память->диск. Может выяснится, что овчинка выделки не стОит. И таки да, памяти может не хватить и будет BSOD
|
|
|
|
| |
Пост N: 7814
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.09.23 15:22. Заголовок: Andrey пишет: Вопро..
Andrey пишет: цитата: | Вопрос по ускорению расчётов по DBF |
| Пересмотри алгоритм в плане оптимизации
|
|
|
|
| постоянный участник
|
Пост N: 1670
Зарегистрирован: 27.01.07
|
|
Отправлено: 22.09.23 15:27. Заголовок: Dima пишет: Пересмо..
Dima пишет: цитата: | Пересмотри алгоритм в плане оптимизации |
| +1 Может даже в отдельный поток вынести. Пусть себе считает.
|
|
|
|
| постоянный участник
|
Пост N: 7566
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.09.23 12:20. Заголовок: PSP пишет: Для нача..
PSP пишет: цитата: | Для начала надо выяснить, сколько времени будет занимать перенос диск->память --- память->диск. Может выяснится, что овчинка выделки не стОит. И таки да, памяти может не хватить и будет BSOD |
| Сделал небольшой тест на МиниГуи. #define _HMG_OUTLOG REQUEST DBFCDX, DBFFPT, HB_MEMIO REQUEST HB_CODEPAGE_RU1251, HB_CODEPAGE_RU866, HB_CODEPAGE_UTF8 #include "hmg.ch" /////////////////////////////////////////////////////////////////////////// PROCEDURE MAIN LOCAL cFile, cFile2, cMsg, tTime, nSize, nSize2 SET WINDOW MAIN OFF cFile := GetStartupFolder() + "\Abon2023.dbf" cFile2 := "mem:" + cFileNoPath( cFile ) // create/open in memory via HB_MEMIO tTime := HB_DATETIME() nSize := hb_vfSize(cFile) / 1024 / 1024 hb_vfCopyFile( cFile, cFile2 ) nSize2 := hb_vfSize(cFile2) / 1024 / 1024 wApi_Sleep( 100 ) cMsg := 'Файл успешно скопирован !;;' cMsg += cFile + ' - Размер файла: ' cMsg += HB_NtoS(nSize) + ' Мбайт; =======>>>>>> ;' cMsg += cFile2 + ' - Размер файла: ' cMsg += HB_NtoS(nSize2) + ' Мбайт;;' cMsg += "Затрачено времени " + HMG_TimeMS( tTime ) ? AtRepl( ";", cMsg, CRLF ) ? Repl("-._.",19) + Repl(CRLF,20) HB_vfErase(cFile2) // delete after use wApi_Sleep( 100 ) cMsg := HB_MemoRead( _SetGetLogFile() ) AlertInfo( cMsg, "Program operation log" ) RETURN Вот результат: Файл успешно скопирован ! D:\TEMP\1Test\Abon2023.dbf - Размер файла: 321.66 Мбайт =======>>>>>> mem:Abon2023.dbf - Размер файла: 321.66 Мбайт Затрачено времени 00:00:00.461 Видно нужно всё таки сделать расчёт по базе в памяти !
|
|
|
|
| постоянный участник
|
Пост N: 1671
Зарегистрирован: 27.01.07
|
|
Отправлено: 23.09.23 13:09. Заголовок: Andrey пишет: Сдела..
Andrey пишет: цитата: | Сделал небольшой тест на МиниГуи. |
| Это - с диска в память. А обратно? А индексы при расчете используются? Где они будут? цитата: | Видно нужно всё таки сделать расчёт по базе в памяти ! |
| Попробуй)
|
|
|
|
| постоянный участник
|
Пост N: 7568
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.09.23 16:12. Заголовок: PSP пишет: Это - с ..
PSP пишет: цитата: | Это - с диска в память. А обратно? |
| А обратно такое же время будет. D:\TEMP\1Test\Abon2023.dbf - Размер файла: 321.66 Мбайт =======>>>>>> mem:Abon2023.dbf - Размер файла: 321.66 Мбайт =======>>>>>> D:\TEMP\1Test\newAbon2023.dbf - Размер файла: 321.66 Мбайт Затрачено времени 00:00:00.748
|
|
|
|
| постоянный участник
|
Пост N: 4402
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.09.23 17:32. Заголовок: Andrey пишет Видно н..
Andrey пишет цитата: | Видно нужно всё таки сделать расчёт по базе в памяти ! |
| Попробуй на PC с малой памятью (когда там excel, chrom запущен), открой как dbf, создай индекс с тэгами, по бегай по базе, потом говори "ГОП"
|
|
|
|
| |
Пост N: 7815
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.09.23 17:43. Заголовок: SergKis пишет: Попр..
SergKis пишет: цитата: | Попробуй на PC с малой памятью (когда там excel, chrom запущен), открой как dbf, создай индекс с тэгами, по бегай по базе, потом говори "ГОП" |
| +1
|
|
|
|
| постоянный участник
|
Пост N: 1672
Зарегистрирован: 27.01.07
|
|
Отправлено: 23.09.23 19:53. Заголовок: Andrey пишет: А обр..
Andrey пишет: цитата: | А обратно такое же время будет. |
| Не буду отговаривать))
|
|
|
|
| |
Пост N: 7816
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.09.23 21:13. Заголовок: PSP пишет: Не буду ..
PSP пишет:
|
|
|
|
|
| Администратор
|
Пост N: 4116
Зарегистрирован: 23.05.05
|
|
Отправлено: 24.09.23 12:04. Заголовок: Андрей, а тебе получ..
Андрей, а тебе получается многопользовательская работа с сетевым доступом к БД совсем не нужна, раз ты так вольно позволяешь себе копировать таблицу с диска в память и обратно ?
|
|
|
Ответов - 42
, стр:
1
2
3
All
[только новые]
|
|