問題タブ [dbm]
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.
perl - Perl DBM ファイルを効率的に空にするにはどうすればよいですか?
次のようにデータベースを空にするスニペットを含むコードを継承しました。
これは通常は問題ありませんが、このクリーンアップ コードが呼び出される前にデータベースが非常に大きくなることがあります。これは通常、ユーザーが何か重要なことをしたい場合です。
これを行うより良い方法はありますか?
berkeley-db - BerkeleyDB の代替?
現在使用している Berkeley DB の代わりに使用できる dbm のようなライブラリを探しています。私が切り替えた主な理由は、BDB のライセンス料がかなり高いことです (オープン ソース アプリは無料ですが、雇用主はさまざまな理由でこの特定のアプリをオープン ソース化することを望んでいません)。
qdbm を簡単に調べましたが、多くのキー (数百万) と大きなデータ項目 (> 1 ~ 5 メガバイト) のニーズを満たすとは思えません。検索を続ける前に、dbm のようなライブラリがたくさんあるようです。
perl - タイムスタンプを DBM データベースに保存するにはどうすればよいですか?
簡単なファイル共有サービスを実装しています。現在、私はファイルベースのデータベースを使用しています (私のニーズに合っているため)。
ご覧のとおり、アップロードのタイムスタンプを文字列として保存することを提案しています。これは、現在は表示するだけでよいためです (localtime() を使用してタイムスタンプを人間が読める形式で取得するとします)。しかし、これは私にはやや悪いようです。後で、ある期間からのアップロードなどを表示したい場合はどうなりますか?
サードパーティの CPAN モジュールを使用せずにタイムスタンプを DBM データベースに保存する一般的な方法は何ですか? 後でそれらをプルしてユーザーに表示するにはどうすればよいですか (私の状況では、文字列に変換します)。
database - DBM データベースの理想的な文字列の長さは?
DBM データベース (Berkeley や GDBM など) を使用する場合、長い文字列を少なくしてデータを保存するのと、短い文字列を多く使用してデータを保存するのとではどちらが良いですか? どちらの方法でも簡単にデータを構造化できます。私はパフォーマンスの意味で「より良い」ものを探していますが、他の意味にも興味があります。
php - PHP 5.x の DBM または SQLite
DB機能を提供しないサーバー(ホスティング会社名を開示したくない)でサイトがホストされているクライアントがあります。
非常にシンプルな CMS ベースのサイトを開発しましたが、実装には MySQL を使用しています。
PHPにはDBのような機能が組み込まれていることをどこかで読みました。私はそれらを使用したことがありません。
これらは何ですか、そしてそれらはどれほど信頼できますか?
DBM 機能を使用するのと、SQLite 機能を使用するのとでは、どちらがより望ましいでしょうか?
SQLite の場合、php.ini ファイルを変更する必要がありますか? はいの場合、ホスティング プロバイダーが php.ini ファイルへのアクセスを許可していないため、これは私たちにとってはうまくいきません。
ティア
python-3.x - dbm.error: db タイプは dbm.bsd ですが、モジュールは使用できません (Python 3.0)
2.5 で作成した shelve ファイルを開こうとしていますが、質問のタイトルに記載されているエラーが表示されます。
データは必須ではありませんが、どうしても欲しいです。
ファイルを見ると、lib\dbm\__init__.py
4 種類の dbm モジュールが認識されますが、私のシステムでは dbm.dumb しか見つかりません。
これを開く方法を知っている人はいますか?
dump.py ファイルのような bsd.py ファイルはありますか?
取得するには2.5をインストールする必要がありますか?
また、このファイルを作成したときに、古いインストールに Panda がインストールされていた可能性があります。
Panda に付属している Python インストールは標準ですか、それともこのファイルが付属している可能性がありますか?
ありがとう!
database - perl スクリプト/dbm を新しいサーバーに移動し、dbm から移行しますか?
サイトを新しいサーバーにミラーリングする任務を負っています。古いサイトにはいくつかの Perl スクリプトがありますが、内部的に見る限り (Perl については何も知りませんが、コーディング全般、特に PHP/js/etc についてはかなりよく理解しています)、古いものに依存していません。サーバ。とはいえ、データベース ファイルを調べて適切な記事ファイルを見つけるこのスクリプトを実行しようとしても、何も取得されません。
基本的に、これは初歩的な古い CMS であり、私が説明したように、PAG ファイルでファイル名を検索して表示しました。私はここで少し迷っています。新しいサイトでミラーリングが機能しない理由はありますか? パーミッションを確認しました。Perl が同じ/usr/etcディレクトリにインストールされていることを確認しました。別の記事によると、次のようなコマンドが表示された場合、dbmを使用していると思います。
それはdbmでなければなりませんよね?
関連するメモとして、信じられないほど洗練された Perl スクリプトを使用せずに、その PAG ファイルの情報を元のファイルとマージする方法はありますか? つまり、個別に保存するのではなく、ファイル自体にその情報を含む 100 個のテキスト ファイルを再作成しますか?
編集:以下の最初の回答に感謝します。その HASH とマスクについて説明できますか? .pag ファイル (データベース名) が実際に .pl ファイルで以前に定義された場所にあり、バイナリで転送されたことを再確認しました。それでも、どういうわけか、正しく開くことができません!
EDIT 3: OK、申し訳ありませんが、ここで最終編集:以下のダイ コード (Shwern) を使用したところ、DB ファイルが適切なディレクトリに存在するにもかかわらず (articles.pag と article.dir の 2 つのファイルですが、変数は拡張子のない「記事」のみを参照する)、その DB ファイルが見つからないことがわかりました。適切な権限があれば... では、ここでの質問は、一体何が起こっているのかということです。これらは異なるバージョンの perl ですか? それとも、基本的で愚かなことをしているだけですか?記録のために(はい、ひどいです)私はまだシェルアクセスを持っていませんが、私はそれに取り組んでいます...私は「新しいWeb」スキルのためにこれを行うように頼まれました.私は確かに適切ではありません.ファイルを読んで理解することはできますが、perl や dbm のような人です。最終的な提案として、元のサーバーの人々 (コーダーではない) にこれの ASCII ダンプを作成するように依頼する方法 (スクリプトなど) を知っている人はいますか? これを CSV に取り込んでファイルに戻して、別のデータベースで再利用できるようにする必要があります...なんて悪夢でしょう!
ruby - Ruby上のBerkeleyDBのキーと値は、int、float、またはその他のタイプではなく、文字列である必要がありますか?
RubyでBerkeleyDB(DBM)を使用する場合、ハッシュのキーと値は文字列でなければならないようです。それらは他のデータ型にすることができますか?
結果:
ruby - Ruby で DBM を使用する場合、db[1] = 2 は問題ないのに、print db[1] でエラーが発生するのはなぜですか?
Ruby で DBM を使用する場合
db[1] = 2 は問題ないが、db[1] を出力するとエラーが発生することを知っている人はいますか?
db["1"] が有効である必要がある場合、両方のケースに適用されず、1 つのケースにのみ適用されるのはなぜですか?
perl - Perl DBM ハッシュのランダム要素にアクセスするにはどうすればよいですか?
スパイダー サイトの負荷を分散するためにランダムに選択する URL のリストを含む Perl DBM ハッシュがあります。その結果、キーをランダムに選択するか、n 番目の要素を選択したい (n をランダム化できるようにするため)。
これがハッシュの概念に反することは承知していますが、これは可能ですか?
注: ハッシュ サイズが大きすぎてすべてのキーを読み込んでランダムに選択できないという重要な点を見逃していました。