問題タブ [btrieve]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - パーベイシブなしで Btrieve?
Pervasive から何かを購入せずに Btrieve データベースにクエリを実行できるライブラリはありますか? C# または Python でコードを書きたいと思っています。
c# - ファイル内で変更されたバイトの開始範囲と終了範囲の決定
私は、全文検索用にカスタム CRM ソフトウェアに保存されているメモをインデックス化する、社内で使用するための小さな実験的なユーティリティに取り組んでいます。これらのメモは、Btrieve データベース (NOTES.DAT というファイル) に保存されます。Pervasive の ADO.NET プロバイダーを使用して、データベースに接続し、インデックス作成用のメモを取得することができます。ただし、インデクサーは現在、各メモをループし、5 分ごとに再インデックスを作成します。これは非常に効率が悪いようです。
残念ながら、CRM ソフトウェアがメモが変更されたことをインデックス サービスに通知する方法はありません。これは、データベースがリモート マシンに存在する可能性があるためです (また、開発者は、私と通信するための手順を作成するつもりはありません)。これは今のところ単なる趣味のプロジェクトなので、ネットワーク経由でサービスを提供することはできません)。
あきらめるのではなく、この機会に raw Btrieve データベースについてもう少し学びたいと思います。というわけで、私の計画は…
CRM ソフトウェアは ODBC ドライバーではなく Btrieve API を使用するため、NOTES.DAT ファイルを共有する必要があります (つまり、クライアントのインストールでは、ネットワーク上でファイル自体を認識できる必要があります)。このファイルを (FileSystemWatcher などを使用して) 監視し、変更されたバイトを特定したいと思います。その情報を使用して、その位置のレコードを計算し、その主キーを取得しようとします。次に、インデクサーは、Pervasive の ADO.NET プロバイダーを使用してそのレコードのみを更新します。
問題は (Btrieve ファイルの構造がまだよくわからない、または生データから主キーを決定できるかどうかを除いて) バイトの開始と終了の範囲を決定する方法がわからないことです。 NOTES.DAT で変更されました。
2 つのバージョンを比較することもできますが、それは NOTES.DAT のコピーをどこかに保存することを意味します (そして、それは非常に大きくなる可能性があるため、フルテキスト インデックス サービスが必要になります)。
これを行う最も効率的な方法は何ですか?
ありがとう!
編集: 1 つのトランザクションで複数のメモを追加、編集、または削除する可能性があるため、可能であれば、メソッドは複数の個別のバイト範囲を決定できる必要があります。
c - C DLL の代替を作成していますか?
Btrieve API 呼び出しを別のライブラリ (.NET で記述され、COM 経由で呼び出される) に渡すことができるように、w3btrv7.dll の非常に単純な代替を記述したいと考えています。基本的に、C の BTRCALL 関数のシグネチャを模倣する必要があります。しかし、私は C プログラマーではありません... まったく。関数をエクスポートする DLL を作成する方法についてはかなり良い考えを持っていると思いますが、それ以上はわかりません。
基本的な署名は次のようになります。
操作コード- 整数
位置ブロック- 128 バイト配列
データ バッファー- これに関する詳細はあまりわかりませんが、データ バッファー長パラメーターで指定された長さのバイト配列だと思います。
Data Buffer Length - 繰り返しますが、多くの情報はありませんが、これは以前のバイト配列の長さを指定する整数であると想定しています。
キー バッファ- 最大サイズが 255 バイトのバイト配列
Key Buffer Length - 前のバイト配列の長さ
キー番号- 2 バイト整数
この署名に一致する C の関数を提案できる人はいますか?
ruby - Btrieve/パーベイシブ データベースと Ruby
Ruby レベルから Btrieve/Pervasive db を操作するソリューションはありますか? 宝石?多分誰かがそのようなことを経験したことがありますか?
それとも、Jruby を介して Java ライブラリを使用しますか? 私はJrubyを使ったことがない
vb.net - VB.Netを使用して.btrファイルを読み取る
VB.netを使用して.btrファイル(text.btr)からAccessデータベースにデータをインポートする必要があります。グーグルで検索しましたが、解決策が見つかりませんでした。
どんな助けでも非常に高く評価されるでしょう。
ありがとう、ヨギ
date - Btrieve 日付整数
これは私の質問です:
Pervasive Control Center を介して Btrieve ファイル (.dat) からデータを移行していますが、整数として定義されているが日付であるフィールド タイプがあります。エクスポートすると、番号 733772 として表示されます。
従来のシステムでは日付が正しく表示されますが、同じ形式でエクスポートできないか、少なくとも変換できません。この数値をExcelなどで変換する方法を知っている人はいますか?
vb6 - Btrieve GetNextExtended ステータス 62
Btrieve で GetNextExtended(36) 操作を実行できません。ステータスコード 62 を返す呼び出しは次のとおりです。
コードを検索した後、コードが m_byteRecordBuffer に保存されているデータバッファーのエラーを示していることを示す多数のサイトを見つけました。その変数に格納されている値は次のとおりです。
シンプルなものが欠けていることを願っています。どんな助けでも大歓迎です。
odbc - Btrieve (ファイル) 所有者の問題
Btrieve (Pervasive) データベースから多数のテーブルをエクスポートする任務を負っていますが、テーブルの 1 つが問題になっています。Pervasice Control Center を使用していますが、実行するSELECT * FROM <troublesome table>
と次のエラーが発生します。
これを Google で検索したところ、DDF ファイルには「所有者」が存在する可能性があることがわかりましたが、これを正しく理解していれば、すべてのテーブルがそのファイルに含まれています。しかし、このエラーの原因となっているテーブルは 1 つしかないため、何が起こっているのかわかりません。
誰か助けてください。
vb6 - BtrieveGetNextExtended'UC'オプションが1つのレコードのみを繰り返し返す
私はPervasiveSQL2000i SP4に取り組んでおり、BtrieveAPIを介してデータにアクセスしています。最近、GetNextExtended操作を詳しく調べ、「EG」オプションを使用しましたが、の最初のレコードは常に無視されていました。最初のレコードも考慮に入れるために、「UC」オプションに切り替えることにしましたが、これにより、同じレコードが繰り返し返されました。私が生成するデータバッファには「用語」が含まれていません。
どんな助けでも大歓迎です。
これは、「UC」オプションが使用され、同じレコードが繰り返し返されるMKDEトレースログの抜粋です。
トレースログに注意してください。トランザクション0008から0011まで、すべてのデータは0007とまったく同じであるため、これらのエントリは、必要な簡潔さのために省略されています。0011の後、同じレコードを無期限に返し続けるため、ループを手動で停止しました。
sql - 一連の .btr および .lck ファイルを読み取り可能な SQL に変換する方法は?
多数の .btr および .lck ファイルがあり、それらを SQL Server データベースにインポートする必要があります。
どうやってやるの?