Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.16;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.014 c
8-50400
Tolea
2003-02-27 17:02
2003.06.16
Помогите нарисовать гладкии график


7-50539
Wassily
2003-04-13 16:44
2003.06.16
программно установить картинку на рабочем столе.


14-50460
Mic_2000
2003-05-29 15:46
2003.06.16
Как из процедуры вызвать другую процедуру с параметрами в Ib6


1-50335
Yakudza
2003-06-03 15:15
2003.06.16
Как покрасить строчку в BDGrid`е


3-50217
dimm
2003-05-26 11:26
2003.06.16
Как очистить данные кешированные запросом IBQuery?