|
|
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
Привет всем С недавних пор пришлось сталкнуться с Btrieve под Nowell (это полный ....) С конектом к базе проблема отпала сразу (до меня люди постарались). Драйвер INTERSOLVE 3.00 Btrieve справляеться с этим прилично. Но запросs на SQL пишуться с большим скрипом. Первая неожиданость возникла с выборкой дат, оказалось что эта зверюга хавает даты в фигурных скобках. Были еще неготорые неприятности которые удалось обойти, но осталась самая главная. В базе сплошь и рядом встречаються таблицы с зарезервироваными в SQL именами полей. Пример: select * from account where group=22 - Само собой не пашет попробывал в dbexpl32.exe написать запрос: select * from account where account."group"=22 - заработало, но точно такой же запрос в Делфи нивкакую не идет. Если кто знает как с этим справиться буду очень благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2005, 16:59 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
Какая версия Btrieve (Pervasive) стоит ? Через что цепляешся ODBC,PDAC,DTI или др.? Вот это в Delphi + PDAC работает. PS.ServerName:= 'Serv_DT'; PQ.DatabaseName:= 'MyBase'; // s:= .... PQ.SQL.Text:= s; PQ.Open; PQ.First; 1. s:= 'Select * from MyBase1 where MyBase1."group"=22' 2. s:= 'select * from MyBase1 where group=22' 2. s:= 'select * from MyBase1 where MyData = :DT'; PQ.ParamByName('MyData').AsDateTime := Now; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2005, 08:00 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
8-й Pervasive Цепляю через ODBC и в BDE алайс на ODBC DSN доступ через драва Intersolv а что за PDAC первый раз слышу о таком, если можно поподробнее, может с PDAC выйдет вариант получше. ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2005, 15:08 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
Зайди на сайт pervasive.com скачай. http://www.pervasive.com/developerzone/access_methods/pdac.asp Pervasive Direct Access Components (PDAC) for Delphi and C++ Builder. PDAC это фирменные компоненты для доступа к Pervasive, не надо ODBC и BDE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2005, 10:11 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
УХ ТЫ !! Уже качаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2005, 10:16 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
Работает как и говорил без ODBC и BDE Но у меня что то не получаеться с SQL работать. В PvDatabase в параметре DATABASENAME пишу путь к базе, в PvTable выбираю тот же DATABASENAME, в PvDatabase connected=TRUE и все ОК С SQL же ничего не выходит. В PvSqlDatabase в параметре DATABASENAME пишу путь к базе, в PvQuery выбираю тот же DATABASENAME, в PvSqlDatabase connected=TRUE и ... Пишит что в ODBC DSN и дефолт драйвер не заданы. чё он лезит в ODBC непойму. Есть предположение, может это из за того что у нас сам сервер не под управлением Pervasive, а под NOVELL BTRIEVE? Pervasive ставиться на клиентских машинах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2005, 13:35 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
Версия btrieve (pervasive) не ниже 7, а лучше не ниже 8.6, под 6.xx SQL не робит. Скачай и замени pervasive, конвертор базы у них есть в поставке, с ключом разберемся :) . Это для PVSQL не ниже 8.0 ( конкретно 9.1) var PQ1: TwwPvQuery; PvSQL1: TPvSqlSession; begin DataModPVSW.DM.PvSQL1.active := False; DataModPVSW.DM.PvSQL1.ServerName := NameServ; // имя или IP сервера DataModPVSW.DM.PvSQL1.ServerAdminUser := ''; // паролей нет - доступ DataModPVSW.DM.PvSQL1.ServerAdminPassword := ''; // открыт всем DataModPVSW.DM.PvSQL1.active := True; DataModPVSW.DM.pq1.SQL.Clear; DataModPVSW.DM.pq1.Close; DataModPVSW.DM.pq1.Params.Clear; DataModPVSW.DM.pq1.DatabaseName:= NameDSN; // Имя базы s:= 'Delete from T_PP where TrDataTime < :DataTimeMes'; DataModPVSW.DM.pq1.SQL.Text := s; DataModPVSW.DM.pq1.Params.ParamValues['DataTimeMes']:= d; try begin DataModPVSW.DM.pq1.Open; end except on E: Exception do begin DataModPVSW.DM.pq1.Close; LogAddDT(lgERR, E.Message); end end; .............. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 09:52 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
Куда ставить Pervasive? Если на сервер, то это на данный момент невозможно, сервак работает под NOWELL BTRIEVE 6.15, может в дальнейшем и перейдем на Pervasive, но сечас нет свободного сервака чтоб прокатать на нем все ньюансы :( Если на клиенский компьютер, то у меня есть Pervasive Client 9.1. Но тос\лку с него я думаю не будет. Я не могу задать ServerName или IP, эта сволочь работает по IPX. Сейчас (используя драва Intersolve) я прописую путь к базам (*.btr,*.ddf) в настройках ODBC DSN. И DatabaseName, какой я впишу туда, если нодо DSN сщздавать в одбц, то опять же, сервак не под управлением PERVASIVE. Заранее прошу прощения если я чё то не так понял, но если я ошибся пожалуйста напиши подробнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 12:16 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
Btrieve 6.xx сделан в 1982 году, нет SQL на нем. Новое на сервер ставить надо, таблицы остаются теже тока описание их сделать надо в базе и все. Использовать под 6.xx можно тока TPvSession, TPvDatabase, TPvTable, TPvBatchMove, а эти нельзя TPvSQLSession,TPvSQLDatabase,TPvQuery,TPvUpdateSQL,TPvSQLStoredProc. Так что тебе придется пока пользовать TPvTable и все что с ним связано или использовать прямой доступ (Standard Btrieve Operation Call , это быстрее работает чем TPvTable, но объяснить на пальцах сложно). Это из их доки Upgrading from Btrieve 6.15 After I upgrade the database engine on NetWare, is the SQL engine (SRDE) going to interpret Btrieve calls, or is it necessary to continue running the Btrieve.nlm? Pervasive.SQL includes a new version of Btrieve.nlm. It also includes a new module named nwmkde.nlm. In the new architecture, Btrieve.nlm is a stub that calls nwmkde.nlm to perform operations. You must have both of these modules running. On NetWare, will the 6.15 Btrieve NLM interface with the new MicroKernel engine, or will the 8.x version of Btrieve NLM have to be loaded to continue accessing the current Btrieve files? You cannot use the 6.15 version of Btrieve.NLM with Pervasive.SQL. You must load all NLMs from the same product version. Is there a tool that replaces Xtrieve? There is no direct replacement, but you should consider using Crystal Reports for Btrieve as an excellent upgrade from Xtrieve for reporting on and querying Btrieve data. Upgrading and Migration How can I migrate a Btrieve database from NetWare to a Windows32-bit platform or vice versa? Shut down the Btrieve engine on the source computer and copy all the database files from the source computer to the target computer. Install Pervasive.SQL 9 SP1 (9.1) Server engine on the target computer. Create a new database using existing DDFs and data files. Share the server resource as appropriate. Win32 Clients: No change DOS Clients: If moving to Windows, replace BREQUEST with BREQNT or BREQTCP. If moving to NetWare, replace BREQNT or BREQTCP with BREQUEST. See also the readdos.txt file installed with the database engine. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 13:58 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
Я знаю что SQL на нем нету, но драйвер INTERSOLVE 3.00 Btrieve позволяет работать с SQL. К сожалению подробнее не смогу расказать как и где все это закручено (не я делал), но приблезительно попробую. INTERSOLVE ставиться на клиенскую тачку (на серваке вообще ниче не меняеться), на эту же тачку ставиться Pervasive (впринципе любой, но 100% 8.5 и 9.1 работают). Сам драйвер предоставляет доступ к данным. В ODBC создаеться DSN с указанием каталога сожержащего базы Btrieve. В BDE делаеться алиас с типом INTERSOLVE 3.00 Btrieve и ODBC DSN = DSN созданый выше. Короче говоря INTERSOLVE->Pervasive = SQL запросы меня этот вариант вполне устраивает, но я начал этот топик из за того что (правильно ты сказал) "Btrieve 6.xx сделан в 1982 году" следовательно о зарезирвированых словах SQL они понятия не имели, следовательно поля с именем group, order и т.д. встречаються сплошь и рядом. Чесно незнаю как обьяснить, но тут какой то загадочный стандарт SQL ( я понимаю что не в Pervasive и не в INTERSOLVE эот стандарт), но вот такой и только такой запрос срабатывает при написании программ в DELPHI select * from account where da_date={12/12/2005} именно в фигурных скобках. Незнаю как это определили но это факт, а запрос select * from account where account."group"=22 не работает, я уверен что у него вместо кавычек можно поставить какою небуть загагулину и он заработает, вот я и хотел узнать, может кто знает какую именно. Пробывал в dbexpl32.exe написать точно такой же запрос: select * from account where account."group"=22 - заработало Почему? помоему dbexpl32.exe написан на той же DELPHI. Но в том же dbexpl32.exe запрос select * from account where da_date={12/12/2005} - неработает, мне уже крышу срывает от таких вариантов. Может знаешь что можно еще попробывать вместо кавычек в запросах типа select * from account where account."group"=22 может что и получиться с этого. Заранее извини за беспокойства ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 15:03 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
" драйвер INTERSOLVE 3.00 Btrieve позволяет работать с SQL." Я так думаю (уверен) что это псевдо SQL, кот. текст запроса раскладывает на стандартные команды btrieve, в стандартные команды входит и расширенная выборка с фильтрами (если у тебя есть описание таблиц в файлах *.ddf иначе таблицы отдельно описывается в проге). Что там в качестве разделителей х.з. "select * from account where da_date={12/12/2005} именно в фигурных скобках.Незнаю как это определили но это факт, а запрос select * from account where account."group"=22 не работает" А эти ? select * from account where account.group={22} select * from account where group={22} Посмотри еще T I T A N D A T A B A S E I N T E R F A C E (TM) SUPPORTING BTRIEVE(R) AND PERVASIVE.SQL(R) http://www.reggatta.com/downloads.htm Я его лет 8 назад смотрел, подробности уже не помню, знаю что через ODBC и ему нужны *.ddf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 08:02 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
select * from account where account.group={22} - [INTERSOLV][ODBC Btrieve driver]Missing SQL Clause: BY. select * from account where group={22} - [INTERSOLV][ODBC Btrieve driver]An empty SQL clause was found не работает :( блын "Что там в качестве разделителей х.з." - что такое х.з.? *.ddf у меня есть, но чем можно их просмотреть? Titan for Btrieve я скачал позавчера, неплохая тоже штука если бы не этот преславутый SQL (снова). Он требует Pervasive 7 (ну я думаю 9.1 тоже покатит) или Scalable SQL (на сайте Pervasive-а я его так и не нашел). Как я тонял эти штуки надо ставить на клиентском компьютере (опять же, как я понял) У меня стоит Pervasive 9.1 а SQL-лем даже и не пахнет. Странно все это и непонятно (для меня по крайней мере). Просто я переходил с ORACLE (представь в каком я шоке). Ну это все лирика. Процес по видимому застрял прочно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 10:14 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
Под windows (для примера) cтавить на сервер надо PSQL_Windows_Server. на клиента PSQL_Windows_Client. И будет SQL как из под Pervasive.SQL Control Center (на сервере и на клиенте), так и из своих прог. Без серверной части ничего работать не будет. *.ddf это табицы в кот. хранятся описание баз, таблиц, встр. функций, процедур, триггеров, репликации и т.д. Cмотрятся и правится все или спец. редакторами или Pervasive.SQL Control Center, можно и из своих программ запросами или командами. Пока не переберешся на новую версию , не будет тебе SQL однозначно, нет его в принцпипе на 6.xx. Все прибамбсы типа PDAC, Titan. АtiveX и д.р. нужны тока на клиенте ,они просто обеспечивают доступ к базе на сервере из под Deplhi и др. х.з. - х.. знает. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 12:21 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
Ну наконец какртина прояснилась и виден свет в конце тунеля. Спавибо за все. Пойду сервак искать шоб с Novell-а спрыгнуть. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 12:50 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
Bpahttp://www.pervasive.com/developerzone/access_methods/pdac.asp Pervasive Direct Access Components (PDAC) for Delphi and C++ Builder. PDAC это фирменные компоненты для доступа к Pervasive, не надо ODBC и BDE.Там есть такие PDAC: PDAC 9.5 (Supports PSQL 9.5 and Delphi 2006), PDAC 9.1 (Supports PSQL 8.7, 9.1), PDAC 8.5 (Supports PSQL 8.5, 8.6, 8.7), PDAC 8 (Supports PSQL 8.0, 8.1) Какой мне нужно использовать для работы с данными лежащими а PSQL2000i? В описании PDAC 9.1 (Supports PSQL 8.7, 9.1) написано : Note: If you will use this release of PDAC with the Pervasive.SQL 2000i SP4 engine, you must first install an update to the 2000i engine. This PDAC release depends on changes included with this engine update, which is available in the form of a HotFix installation. You can find this installation along with instructions in the Developer Center at http://www.pervasive.com/developerzone/access_methods/pdac.asp. Т.е. при наличии всех SP все будет Ok? А в состав SDK входят PDAC(чтоб не качать 19Mb...)? Где можно взять SDK? Для того, что бы прописать алиас БД в BDE мне нужно скачать Titan ? Сколько он весит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2007, 10:49 |
|
||
|
Btrieve+Delphi+Sql
|
|||
|---|---|---|---|
|
#18+
авторА в состав SDK входят PDAC(чтоб не качать 19Mb...)? Где можно взять SDK? Какая разница где? Всё равно качать. Только для Delphi7, без доков, библиотека в архиве весит 1.5M авторДля того, что бы прописать алиас БД в BDE мне нужно скачать Titan ? Сколько он весит?[/quot] Titan устарел, новые версии не поддерживает. Смотри на www.reggatta.com. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 09:01 |
|
||
|
|

start [/forum/topic.php?fid=56&gotonew=1&tid=2016256]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
13ms |
get first new msg: |
6ms |
get forum data: |
4ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 325ms |

| 0 / 0 |
