• 締切済み

Delphiのデータベースについて

msystemの回答

  • msystem
  • ベストアンサー率42% (79/186)
回答No.3

答えは、データを消す。(または、普段使わないデータを別テーブルや別ファイルのテーブルに退避して消す)これが一番だと思います。 paradoxやAccessなどのデータベースは、あまり行数が多いと危険だと思います。 スピードも極端に落ちますので、本格的なDBMSを使うことをお勧めします。(管理という仕事が増えますが・・・) InterbaseやMDEなどが値段的には手ごろですが、管理ツールがもうひとつというデメリットがあります。

関連するQ&A

  • Delphiで扱うデータベース上の日付について

    Delphiで扱うデータベース上の日付について  質問させていただきます。何かしらのマナー違反等ありましたらご指摘願います。  TDataBaseでデータベースにアクセスし、TQuery、TDatasourceでTDBEditにデータを表示させています。接続するテーブルには日付型のフィールドがありそれをTDBEditに表示させて、編集したのち更新する、もしくは行を挿入してから更新する場合、入力した値が正しく日付であるかどうかはどのようにチェックすればよろしいのでしょうか。  フィールドにはMaskEditプロパティで2010/06/07とTDBEditに表示するよう設定してあります。  文字列として保存したものをTDBEditに表示する際日付に変換して表示することも考えたのですが、データベース上で日付による絞り込みや並べ替えをするため、そちらは断念しました。  まとまりのない文章で申し訳ありませんが、お教えいただければ幸いです。よろしくお願いします。

  • Delphi BDE 複数ユーザによるデータベース共有ができない

    環境は、WindowsXP Delphi3.0 BDE→PARADOXを使用 複数ユーザによるデータベースの共有ができなくて困っています。 エラーメッセージは「テーブルは使用中です。テーブル:\\○○○\○○\○○.DB ユーザー:○○○○○」とでます。 複数というのはPC2台を使用しての共有なのですが、どちらもBDEの設定をそろえております。いろいろなサイトを探し回ったのですが何分初心者なので解決策が見つかりません。 ちなみにデータベースはサーバー上に上げています。 複数でなければエラーもなくきちんと動作します。 お分かりになる方いらっしゃいましたらご教授よろしくお願いいたします。

  • Delphi.Net 2006 MessageBoxの出力

    Delphi.Net 2006 でメッセージボックスを出力したいと思います。 メッセージボックスには、「はい」「いいえ」があり 選択できます。 以下の1行でも上手く行きません。実行時固まります。 なぜでしょう? MessageDlg('削除してよろしいですか', mtConfirmation, [mbYes, mbNo], 0);

  • Delphi 6 Personalのインストールについて

    こんにちは。 現在 Windows vista Ultimate 32bitに参考書の付録で付いていた Borland Delphi 6 Personalをインストールしようとしたのですが インストール番号とキーの入力を求められています。 しかし、参考書通りに進めようとしても、現在そのライセンス 情報を登録するURLが違っているようで登録ができません。 どなたか上記のライセンス情報を登録する方法をご存じありませんか?

  • Delphi データベースコンポーネント使用時におけるIDの自動生成に

    Delphi データベースコンポーネント使用時におけるIDの自動生成について  質問させていただきます。よろしくお願いします。現在DelphiでTQuery,TDatabase,TDataSourceを使用し、データベースに接続、DBGridでレコードを一覧表示し、DBEditとDBNavigatorでレコードの新規登録や編集が行えるようにしています。  ここでIDというフィールドを作り、これを主キーとして扱っていますが、レコードの新規作成時、自動的に連番で数値が挿入されるようにするにはどうすればいいのでしょうか?   ひとつ方法を思い付き実際やってみて今のところうまくいってはいるのですが、私が採択した方法だと少々問題があります。  exe起動時にレコードをソート、IDのフィールドで一番値の大きい数値を取得し、新規作成時にはその値に+1してDBEditに挿入するようにしています。しかしこれだと、いくらIDの値が小さいレコードを削除しても値の大きいレコードがある限り、新規作成時にIDとして挿入される値は大きくなるばかりなのです。  稚拙な文章で申し訳ありませんが、お教えいただければと思います。  よろしくお願いします。

  • ポスグレ、データベースについてです。

    初めまして。宜しくお願いします。 今の仕事で初めてデータベースを触ります。 そのデータベースについてなんですが、 一つのテーブルから6か7ぐらいの項目で約800行ぐらいの 降順に並びかえてからページにphpでリンクさせてるものがありまして そのページに当月と先月を一緒に出すようにしたいのですが、 やり方がよくわかりません。 SELECTで当月のみはだせているのですが、同じテーブルから 同じ形式で横に並べて表示してリンクさせる事はできるのでしょうか? できるのであれば教えて下さい。お願いします。 当方はデータベースが初めてなのですみませんが猿でも解るように説明してくださるかたで 自信があるかた宜しくお願いいたします。

  • データベース容量の算出方法について

    現在仕事上において、MYSQL4.1 & PHP4.3 を利用してアプリケーションを開発しています。 今回、MYSQL上の各データベースごとのディスク使用容量をWEB上で閲覧できる機能を追加することになりました。 現在以下の方法で算出しているのですが、出力されるのに1分以上掛かり、とても実用に耐えうる速度ではありません。 <各データベース容量の算出方法> 1. 独自のテーブルから登録されている各データベース名(40個)を取得 2. (1)で取得したデータベース名から、以下のクエリを実行し、テーブル(75個)の情報を取得。  show table status <取得したデータベース名> 3. (2)で取得したテーブル情報からData_lengthとIndex_lengthを足してテーブルの容量を算出。 4. 3で取得したテーブル容量を各データベースごとに合計する。 上記を繰り返して各データベースの容量を算出しています。しかし上記の方法ですと、全データベースの全テーブルにアクセスしていることになりますので、処理が非常に重くなります。 show table status がボトルネックになっているようなのですが、上記の方法以外にデータベース容量の算出方法がありましたら、どうかご教授頂けないのでしょうか? 本当に困っていますのでどのようなご意見でも結構です。 どうぞ宜しくお願い致します。

  • エクセルをデータベースとして使用する場合の限界は?

    エクセルをデータベース代わりに使用して、生産管理をしています。(主に納期の管理) 1つのブックを1つのテーブルとして使用して、製品マスターテーブルから製品情報を呼び出して、売上テーブルに書き込むといった感じです。 (売上用ブック=売上テーブル。製品マスターブック=製品マスターテーブル) 売上テーブルは、古くなった行(納品完了した行)はその月ごとに切り取って、別のブックとして保存しています。(使用しないデータでブックの容量が増えないようにするため。) 今までは、売上ブックは4,000件(行)くらいのデータ量でしたが、最近8,000件(行)にまで使用することがあります。(売上金額は伸びないのですが、小分けの注文が増えて)(製品マスターは1,500件くらいで固定してます。) 今までもブックを保存するときに失敗して、入力中のデータが消えたりすることがたまにありましたが、件数が増えてから頻繁に失敗するようになりました。 件数が増えたことが原因だと思いますが、もともとエクセルをデータベースとして使用する場合、行数の限界はどれくらいなのでしょうか? SQLサーバーなどでデータベース化したほうがよいでしょうか?(マルチユーザーとしても使用したいので) どなたか教えてください。

  • データベースのデータ型に関しまして

    現在、レンタルしているサーバのPHPmyAdminにて、データベースを作成しました。 データベースのエンジンはMyISAMになっており、InnoDB型がいいため、 テーブルの作成時にInnoDB型に設定をしました。 すると、構造タブでみるとデータベース:MyISAM テーブル:InnoDB となっておりますが、テーブルはInnoDBとして扱われているという認識でいいのでしょうか。 勉強中のため、詳しい方がおりましたら、教えていただけると助かります。

    • ベストアンサー
    • MySQL
  • データベースのインデックスについて

    Oracleや PostgreSQLのデータベースを考えています。 年月日 時間 商品名 在庫状況 増減 20210115 9:00 A 100 0 20210115 10:00 A 95 -5 20210115 11:00 A 92 -3 20210115 12:00 A 94 2 テーブルについてはデータの件数が50万、1日1万件の増減のあるテーブルとなります。 照会の種類が2種類あるため、2つのインデックス(インデックス(1)、インデックス(2))を持つことを想定しています。 照会種類(1):20万件の照会/1日 [照会内容]最新の情報を知りたいためテーブルに登録された最新のデータを回答する照会 [データベースについて]データが登録される度にインデック(1)を作成 照会種類(2):5000件の照会/1日 [照会内容]朝9:00の時点のデータを回答 [データベースについて]データの件数を考え朝9:00にインデックス(2)を作成 データベースの知識が少ないため、これらの運用は可能か教えて下さい。 (特定のインデックスのみ更新するようなやり方はできるのでしょうか?あれば、何というデータベース用語的なやり方でしょうか)