Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.16;
Скачать: [xml.tar.bz2];

Вниз

Btrieve и Delphi   Найти похожие ветки 

 
kalishenko   (2003-04-29 20:16) [0]

Если кто-то знает, как работать с Btrieve-базами помогите живими примерами.


 
kalishenko   (2003-04-30 14:24) [1]

Неужели никто не сталкивался с Btriev-ом. Мне бы хотя бы найти BtrConst.pas


 
sniknik   (2003-04-30 15:11) [2]

какой? у меня их 3 штуки отыскалось. запостю пожалуй самый маленький. :о) (живой пример открытия тавлицы Table1.Open;) правда помогло? :о))
(*****************************************************************************)
(* MODULE: BTRCONST* *)
(* RIGHTS: Reggatta Systems - COPYRIGHT 1995 - 1999 *)
(* DESCR.: This module contains text constant definitions *)
(*****************************************************************************)
Unit BtrConst;
{$I BSE.INC}
{$I BAPI.INC}
Interface

Const
BTRIEVE_DRIVER_DESC = "BTRIEVE";
BAPI_BTRIEVE_SECTION = "Btrieve Client";
BAPI_BTRIEVE_OPTIONS = "Options";
BAPI_DLL_NAME = "DLLName";
BAPI_ERROR_TEXT = "Btrieve Status %d - %s";
SSQL_ERROR_TEXT = "Scalable SQL Status %d - %s";
BAPI_UNKNOWN_ERROR = "Btrieve Error %d.";
BAPI_CANT_LOAD_BTRIEVE : PChar = "Btrieve Library WBTRCALL.DLL not Found";
BAPI_OWNER_TOKEN : PChar = ";OWNER:";
SSQL_DB_PREFIX = "@";
SSQL_LOCAL_TYPE = "LOCAL";
SSQL_REMOTE_TYPE = "REMOTE";


BAPI_INTL_SECTION = "Intl";
BAPI_ANSIOEM_FLAG = "IgnoreAnsiOem";
BAPI_OEMANSI_FLAG = "IgnoreOemAnsi";

BAPI_FIELD_SECTION = "Fields";
BAPI_READ_FIELD_FLAG = "Read";
BAPI_WRITE_FIELD_FLAG = "Write";
BAPI_SMALLINTASBYTE = "SmallIntAsByte";
BAPI_STRING_PAD_SPACES = "StringPaddedSpaces";
BAPI_RETURN_INTS_FLAG = "IntegersShowAsZero";
BAPI_IGNORE_SQL_DBS = "IgnoreSQLDatabases";
BAPI_RECORD_SECTION = "Records";
BAPI_TRUERECORDCOUNT = "TrueRecordCount";

BAPI_RESOURCE_TOKEN : PChar = ";RES:";

BTR_IMAGE_TOKEN = "111";
BTR_BINARY_TOKEN = "222";

Implementation

end.


а если серьезно, сходи на сайт http://www.pervasive.com/ может чего и отыщеш (это как искать будеш). ну и поищи на яндексе по Titan, Btrieve. на Torry тоже посмотри.


 
kaa1971   (2003-05-03 14:46) [3]

Сталкивался. Если за выходные не найдешь - свисти.
У меня завалялись кой-какие компоненты, поищу на работе...


 
kalishenko   (2003-05-05 21:00) [4]

На http://www.pervasive.com/ выкладывают половинчатые проекты, которые нужно переделывать (кроме того чего-то не договаривают). Главное, нашел проект, который по их словам показывает работу с таблицами. Так прикол в том, что проект был расчитан еще на Delphi3, и требует еще не поставляемой с проектом библиотеки. Так что, братцы, помогайте, чем можете.

А насчет компонент, это интересно...

А во еще вопрос: Чей это формат баз - *.dta (это ведь тоже Btrieve или нет?) и *.dat.


 
sniknik   (2003-05-05 23:57) [5]

расширение может ни о чем говорить (или нет не так, расширение ни о чем сказать не может, определенно).

у меня в одной базе Btrieve встречаются расширения Btr, New, Old, $$$. - о чем сказ? да ни о чем. (кроме того что можно любое поставить)

насчет сайта странно, я оттуда много чего скачал и многому научился. но работал в основном с Pervasive сервером 7.0 (есть уже 2000) и (недолго) с пакетом Titan Btrieve.
но ладно не нашол так не нашол вышлю пару компонент(?)пакетов, незнаю до них руки не дошли сам будеш разбиратся, они бесплатные (в отличии от Pervasive/Titan) и что немаловажно мелкого размера в отличие от ... (/). хотя мог бы и сам поискать, честно говоря, их немало.


 
kalishenko   (2003-05-06 15:06) [6]

Спасибо, буду разбираться.


 
KAA1971   (2003-05-06 22:33) [7]

У меня Btrieve (Pervasive 2000) работает с 2 расширениями:
- *.dat - базы данных и *.ddf - файлы описаний структуры dat-ов.
Хотя у тебя может быть (и скорее всего) по-другому, тогда мои компоненты вряд ли помогут.


 
sniknik   (2003-05-07 00:16) [8]

KAA1971 © (06.05.03 22:33)
в том то и дело что запросто будет "по-другому".

открой DDF Easy в нем базу, и попытайся добавить этой базе таблицу, будет "Table Name" и "Table Location" вот у этого местарасположения броуз какие расширения открывает? (у меня семерка может не сойтись) btr,dat,dta,mkd - но самое показательное что там по умолчанию стоит - Any Files (*.*) - т.е. фактически что бог на душу положит. А ведь ето именно имя таблици в "миру" то есть то каким файлом ее система видеть будет. И никакой уверенности что какая нибудь база другого типа так же не поступает.

ddf кстати не обязателен, структуру можно в код "вшить", с помощью Titan-а, довольно легко (у него там утилита была, формировала вставки в код (но толком уже не помню, у нас титан только под 5дельфи был и естественно как перешли на 6е его забросили, ну не покупать же, тем более что в основном уже через ODBC драйвера от первасвиля работа шла, в итоге давно это было...:-))


 
Sergant   (2003-05-07 07:45) [9]

Есть неплохой компонент FreeBtrieve, который позволяет работать с базами Btrieve. У меня он спокойно открывает базы RS-Bank и RS-Retail. Единственный недостаток - компонент давно не развивается и в нем нет возможности фильтрации.


 
snake1977   (2003-05-07 09:30) [10]

Найди ковертер Btrive->DDF
а так же ,ODBC драйвера для бетрива и используй соединение через BDE к ODBC
у меня работает нормально, можно выполнять полнофункциональные SQL запросы и прочее
единственный косяк, замеченный мною, это надо в настройках алиаса в BDE настроить RowSetSize=1 иначе при выполнении TDataSet.Open будет происходить групировка базы (почему до сих пор так и не понял ;) )


 
Роман Василенко   (2003-05-07 09:34) [11]

Сходи на http://www.kylecordes.com/bag


 
kir68   (2003-05-07 10:43) [12]

На www.pervasive.com к 2000i pervasiv-у (к Btriev-у в том числе) есть компоненты PDAC, есть SDK c развитым API. Компонеты удобные, точно такие же как и BDE-шные TTable и tQuery. API тоже доступный. Если чего будет не понятно пиши.


 
snake1977   (2003-05-07 10:50) [13]

а вот и не совсем так , там есть для Pervasive2000 PDAC , но для ранних версий Pervasive там ничего нет :(
и если стоит просто Btrive ,без Pervasive то тоже ничего с PDAC не получится :(


 
Евгений   (2003-05-07 12:00) [14]

Мы долгое время использовали продукт Titan Btrieve. Это набор компонент, позволяющий работать с таблицами Btrieve.


 
kalishenko   (2003-05-07 17:33) [15]

У меня как раз тот случай, когда Pervasive стоит, но не используется напрямую (поставил в ознакомительных целях). Работаем просто с Btrieve (формат базы *.dta).

Попробовал FreeBtrieve - по-моему, чепуха (во-первых база не открылась, ругается, а во-вторых, неудобно).

Евгений
Не можешь выслать набор компонент Titan Btrieve на мыло?


 
sniknik   (2003-05-07 18:13) [16]

kalishenko (07.05.03 17:33)
> Не можешь выслать набор компонент Titan Btrieve на мыло?

весельчак! ;о)) во первых 3мега во вторых платный.

> У меня как раз тот случай, когда Pervasive стоит, но не используется напрямую (поставил в ознакомительных целях). Работаем просто с Btrieve (формат базы *.dta).

тогда нафига это все? у тебя уже есть ODBC-шный драйвер (а в 2000-м и OLE DB-шный) используй их.
для коннекта через ADO строка будет вроде этой (это для ODBC, у меня семерка, OLE DB нет)
D:\zArhive\DATA - путь к базе (файлы ddf), вся структура описана в них (где лежат файлы *.dta например)

Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DRIVER={Pervasive Software ODBC-32};DATAPATH=D:\zArhive\DATA;UID=;DDFPATH=D:\zArhive\DATA;BOB=;NullEnabled=no;FeaturesUsed=yes;LoginScript=;AccessFriendly=no;DateFormat=mdy;TranslateDLL=;TranslateOption=;"


 
kalishenko   (2003-05-07 19:19) [17]

Спасибо большое. Заработало (я использавал Pervasive OLE DB Provider).


 
kalishenko   (2003-05-21 21:31) [18]

Возникла очередная проблема: перенос приложения на другие машины, на которых Pervasive не стоит. Как установить ODBC-шный драйвер без установки на машину Pervasive?


 
kalishenko   (2003-05-22 14:01) [19]

Ау-у-у-у-у!


 
sniknik   (2003-05-22 14:18) [20]

OLE DB драйвера в твоем случае это средство доступа к серверу Pervasive, если тебе к тойже базе доступится (на сервере где Pervasive) то достаточно установить драйвера (OLE DB/ODBC) на клиенте. если же ты файлы(базу) с данными с собой с машины на машину тягаеш то ты выбрал неверное средство для своей задачи. Изменяет базу именно SQL server Pervasive.


 
kalishenko   (2003-05-22 15:27) [21]

>если же ты файлы(базу) с данными с собой с машины на машину тягаеш...

Нет, база общая (на сети).

>достаточно установить драйвера (OLE DB/ODBC) на клиенте.

Как это сделать?


 
sniknik   (2003-05-22 15:35) [22]

инсталяция что та что другая отдельныя от сервера есть на сайте первасвиля. и в самой установке сервера есть (у меня ..\CLIENTS\ODBC\32\Setup.Exe, OLEDB нет но его в принципе в 7ке нет)
бери да устанавливай.


 
kalishenko   (2003-05-22 16:28) [23]

Вроде поставил. Только вот еще вопрос: иногда пишет, что не может подключиться к базе (указывает на путь к папке с *.dta). Выдает ошибку "Btrieve Error 73". Пару раз перегружу машину - все нормально. С такой ситуацией не сталкивались?


 
sniknik   (2003-05-22 17:08) [24]

не сталкивался.
но у них есть подробное описание сообщений и ошибок так хелп и называется "Status Codes And Messages" и в них же предположительно от чего и как исправить.
твое "73: The RI definition is out of sync" имеет около 10 возможных причин. смотри.


 
kalishenko   (2003-05-22 17:51) [25]

В хелпе пишут, что я наверное использую одну и ту же базу на 2-х серверах. Может все дело в том, что я указал DataSource и Location одну и ту же папку? Попутно вопрос, как редактировать файлы-словари (*.ddf)& че в них пишут?


 
Verg   (2003-05-22 18:43) [26]

А вообще, объясните, пожалуйста, из каких файлов состоит(может состоять) база данных BTrieve.
Что такое, например, *.btr ?


 
sniknik   (2003-05-22 20:37) [27]

kalishenko (22.05.03 17:51)
> Может все дело в том, что я указал DataSource и Location одну и ту же папку?
ХЗ. мабуть быть.

>Попутно вопрос, как редактировать файлы-словари (*.ddf)& че в них пишут?
запусти на сервере (или на клиенте поставь, клиентскую часть и подключи к базе и запусти) DDF Easy там что называется самый дружественный интерфейс(междумордие по руски :о) разберешся.

Verg © (22.05.03 18:43)
> А вообще, объясните, пожалуйста, из каких файлов состоит(может состоять) база данных BTrieve.
Что такое, например, *.btr ?
в том то и дело что из любых (гдето вверху уже писал), *.btr идно из распространенных расширений файлов с данными.


 
Verg   (2003-05-23 06:44) [28]


> в том то и дело что из любых (гдето вверху уже писал), *.btr
> идно из распространенных расширений файлов с данными.



А структура таблицы (имена и типы полей) хранится в отдельных файлах (.ddf). Я правильно понимаю?


 
DarkGreen   (2003-05-23 07:16) [29]

Правильно, стандартный словарь
file.ddf //Описание файлов (имена таблиц, наименование файлов и местоположение, флаги
field.ddf //Описание полей
index..ddf //Описание индексов
есть еще
attrib.ddf //Атрибуты полей (маска, дефолтные значения и т. д.
Соответственно, любой разработчик, для себя может этот словарь расширить, то бишь добавить что-то вроде
DataSource.ddf, DataSet.ddf и т.д.
Пароль для записи в эти файлы ..SC....
Вот только ручками эти файлы не стоит править, т. к. информация о структуре файла бетрива компонентами берется из словаря, и если неправильно информацию поменять, то эти компоненты потом будут весело глючить ;-)


 
DarkGreen   (2003-05-23 07:19) [30]

2 kalishenko (29.04.03 20:16)
На мыло сбросил.


 
Verg   (2003-05-23 07:43) [31]

Хорошо, но вот что я имею: я имею катаолог в котором после работы некоей софтины остается (ются) файлы *.btr и больше ничего.
Что это значит? Где структура таблиц БД? Или это какой-то вырожденный случай?


 
DarkGreen   (2003-05-23 07:59) [32]

Возможно это временные файлы этой софтины (ну забывает она их удалять) Как это проверить, а просто:

butil - stat ИмяФайла.Btr

Если выдаст информацию а файле, значит так и есть, если заругается, то возможно, это какие-нить файлы блокировок, но они ИМХО по другому называются, что-то вроде ~PVSW~.LOC
А зачем структура таблиц? Она, как здесь уже говорилось может быть зашита в программу. Кроме того, первасиву и Btrieve"у по фиг как ты интерпритируешь данные, в словаре поле может быть описано как KT_LSTRING(32), а ты в логике программы можешь сказать, что это 8 Longint"ов, и все будет работать, т.к. для первасива важны только индексы, на буфер данных ему по большому счету плевать.


 
Verg   (2003-05-23 11:33) [33]

Хм, т.е. в таком случае узнать структуру таблицы - это, по-сути, связяться с програмером софтины и узанть - "как там все?".
Зачудительно....

Буду разбираться.

Немного не по теме:
Слушайте, может это и в "потрепаться", но назовите мне N причин, по которым люди выбирают BTrieve взамен interbase, firebird, paradox, DBase наконец....
Тут "что-то" есть? Ведь не бесплатно, не просто, не стандартно.... гиммор сполшной...
Что за мотив? "Загадочное нечто, с которым только Я умею работать, потому Я такой ценный и незаменимый?". Эксклюзив, так сказать ?


 
kalishenko   (2003-05-23 14:30) [34]

Че-то не могу найти DDF Easy. Не подскажете, как зовут exe-шник?
Может у меня и не должно быть этой утилитки (у меня Pervasive.SQL 2000)?


 
sniknik   (2003-05-23 14:51) [35]

не знаю, 2000 видел только раз, демо(временную) версию, но вроде там все было очень похоже, и DDF Easy вроде тоже был. (может не там ишеш?)
екзешник у меня D:\PVSW\BIN\DDFTOOL.EXE


 
DarkGreen   (2003-05-23 15:33) [36]

2 Verg © (23.05.03 11:33)

> Немного не по теме:
> Слушайте, может это и в "потрепаться", но назовите мне N
> причин, по которым люди выбирают BTrieve взамен interbase,
> firebird, paradox, DBase наконец....

N = 0 или N = -1 :-)


 
DarkGreen   (2003-05-23 15:37) [37]

1. В поставке первасива нет DDF Easy
2. Поищите в ру-нете DDF Periscope


 
kalishenko   (2003-05-23 15:38) [38]

Такого здесь нет. В хелпе написали, что DDF Easy, как и DDF Sniffer интегрированы в Pervasive Control Center. Но как им пользоваться (в плане редактирования ddf-а), я не знаю.


 
sniknik   (2003-05-23 15:49) [39]

DarkGreen © (23.05.03 15:37)
как же нет в поставке, а у меня тогда откуда? ничего дополнительно не ставил только первасив сервер.

kalishenko (23.05.03 15:38)
так это наверное оно самое и есть, только названо по другому.
пользоватся легко. запускаеш, ищеш иконку открыть Database жмеш, вводиш путь DDF Path, жмеш Open Database. дальше как природа подскажет, там уже структура видна будет.
естественно у тебя будут отличия, надеюсь легкие. :о))


 
DarkGreen   (2003-05-23 16:25) [40]

2 sniknik © (23.05.03 15:49)
Версия сервера какая?
Зашел в Хелп, набрал DDF Easy, не было не одной ссылки. Весия первасива: 2000i SP3



Страницы: 1 2 вся ветка

Форум: "Базы";
Текущий архив: 2003.06.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.007 c
6-50411
Akni
2003-04-09 22:08
2003.06.16
Несколько вопросов по блокирующим сокетам


14-50507
Shpizel
2003-05-30 23:12
2003.06.16
Outlook


1-50391
TButton
2003-05-31 11:33
2003.06.16
DLL


6-50427
Rem100
2003-04-11 17:18
2003.06.16
Как отключить удаленных пользователей?


14-50431
Lunik
2003-05-29 12:08
2003.06.16
Реестр





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский