On-line: гостей 3. Всего: 3 [подробнее..]
АвторСообщение
администратор




Пост 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 ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 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" )

не получается?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2965
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.04.13 16:31. Заголовок: PSP пишет: не получ..


PSP пишет:

 цитата:
не получается?


Нет так падает Dbcreate

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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
...


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 868
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 08.04.13 16:38. Заголовок: Тогда ничего не надо..


Тогда ничего не надо указывать. "mem:test" достаточно.
https://groups.google.com/forum/?fromgroups=#!topic/harbour-users/d8C6cXWbR-E


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 205
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.04.13 16:40. Заголовок: Dima HB_MEMIO через ..


Dima
HB_MEMIO через mem: в имени dbf

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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')

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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 убивается база а индекс продолжает жить.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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" )



Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 583
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 08.04.13 18:39. Заголовок: Никак не пойму, чего..


Никак не пойму, чего именно вы хотите добиться.
Чтобы rddads работал через hbmemio ? Это невозможно, да и зачем ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2970
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.04.13 19:18. Заголовок: alkresin пишет: Что..


alkresin пишет:

 цитата:
Чтобы rddads работал через hbmemio ?



Нет конечно , чуть позже объясню и все станет ясно.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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" )




Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост 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, а драйвер ввода-вывода. Так что это можно использовать.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2972
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.04.13 21:47. Заголовок: Pasha пишет: FErase..


Pasha пишет:

 цитата:
FErase("mem:test.dbf")
FErase("mem:test.cdx")


Попробую , спасибо !!!

Pasha пишет:

 цитата:
Это не rdd,


Это я понял методом полевых испытаний ;)

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2973
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.04.13 09:18. Заголовок: Pasha А как по имен..


Pasha
А как по имени алиаса закрыть индексы , закрыть базу и потом из завалить ? Про mem: речь
Пробую функцию сочинить но пока не выходит. Что то типа memdrop(alias)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2841
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.04.13 11:35. Заголовок: Dima пишет: А как п..


Dima пишет:

 цитата:
А как по имени алиаса закрыть индексы , закрыть базу и потом из завалить ?



Это же обычная рабочая область, закрывается по dbCloseArea() вместе с индексами.
А валить файл и индекс надо как обычные файлы, только указать префикс "mem:" перед именем.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2789
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.04.13 11:40. Заголовок: SergKis пишет: Есть..


SergKis пишет:

 цитата:
Есть еще hb_dbdrop(dbf,ind,rdd,...) no VIA RDD parameter, use default


А это для чего ?
По доке не нашел...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 207
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.04.13 11:46. Заголовок: Andrey пишет:По доке..


Andrey пишет:
 цитата:
По доке не нашел...


см. DbCmd.c (на ней, я так понимаю, сделана dbDrop(...)) Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2975
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.04.13 12:13. Заголовок: Dima пишет: Решил с..


Dima пишет:

 цитата:
Решил сделать так


Так тоже не прокатило. Индексный продолжает жить в памяти.



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 42 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 179
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет