データベースコンポーネント使用時におけるIDの自動生成に入力中の回答があります。ページを離れますか?※ページを離れると、回答が消えてしまいますページを離れるA回答を続ける入力中のお礼があります。データベースコンポーネント使用時におけるIDの自動生成について質問させていただきます。現在DelphiでTQuery,TDatabase,TDataSourceを使用し、データベースに接続、DBGridでレコードを一覧表示し、DBEditとDBNavigatorでレコードの新規登録や編集が行えるようにしています。ひとつ方法を思い付き実際やってみて今のところうまくいってはいるのですが、私が採択した方法だと少々問題があります。exe起動時にレコードをソート、IDのフィールドで一番値の大きい数値を取得し、新規作成時にはその値に+1してDBEditに挿入するようにしています。これだと、いくらIDの値が小さいレコードを削除しても値の大きいレコードがある限り、新規作成時にIDとして挿入される値は大きくなるばかりなのです。稚拙な文章で申し訳ありませんが、お教えいただければと思います。通報するこの質問への回答は締め切られました。01:16>exe起動時にレコードをソート、IDのフィールドで一番値の大きい数値を取得し、新規作成時にはその値に+1してDBEditに挿入するようにしています。普通はこの方法ですね。そのために、IDの桁数を十分大きく設定しておきます。毎日1000件くらいの新規登録があったとしても、IDの桁数を8桁にしておけば100年は大丈夫です。それでも、空き番が多くなって使いづらくなってきたら、IDをリナンバリングすることもあります。しても空き番を作りたくないのであれば、レコードを削除したときに削除IDリストを作成しておき、新規作成時にはその削除IDを使用するという方法もあります。通報するこの回答へのお礼なるほど。いう方法があるのですね。非常に参考になりました。ありがとうございました。06:00色々なDBでいわゆるオートナンバーフィールドで欠番が生じるのは同じようです。お考えの筋道は主流である。通報するこの回答へのお礼ありがとうございます。他サイトでのQ&Aまでお付けいただいて。自分のつたないプログラミングスキルに少し自信が持てました。Delphiのコンポーネントの作り方を教えてください。回答数ランキングです。SQLDelphi+InteBase何がわからないのか、わかっていない状況です。dbExpressのSQLConnection・SimpleDataSet、DataAccessのDataSource、DataControlsのDBGridを利用しています。テーブル名」とかSQL文を書くことによって、希望のデータが表示されることまでは理解できました。テーブル名'とすると、エラーにはなりますが、テーブルは空になっているのでtry文できりぬけています。根本的にSQL文をどこに記述したらよいのかわかっていません。どなたか、お助けを・・・AベストアンサーまずDelphiの教則本を1冊でも購入する事をお勧めします。書店では少ないですがネットで探せば結構色々と出てきます。Delphiのバージョンが不明ですがWin32の開発であればDel7もDel2006も実質変わりはありません。ご質問に簡単に回答させて頂きます。(変な所はどなたか突っ込みをお願いします)SimpleDataSetは大雑把にQueryコントロール+DataSetProvider+DataSource+ClientDataSetの塊みたいなものと考えて下さい。最初はSimpleDataSetを使わず上記の4コントロールを配置してDBGridに接続すれば構造が分かり易いと思います。話がそれてしまいましたがSQLを発行するのはQuery系コントロールです。ADO用とかdbExpress用とか色々ありますのでご注意を。ヘルプや書籍を見るなどしてまずは試行錯誤してみて下さい。QUERYの集計結果について16C#で、ContextMenuStripに動的...17Web予約システムを構築するには...18vb.netでのアプリケーションを...19イベントログファイル(.evt)の...20unzip32.dllの利用について(64b...SQL:TIMESTAMPの期間検索を指...AWKで1項目以外を簡単に出力し...C#で変数名の取得4サブレンジ分割されたNDB(富士...5Accessの画像挿入のVBAコード6Accessの更新前処理について。D...7日付と文字列を条件としてDLook...8ACCESSで日別集計をする場合9ACCESSで視覚的タイムテーブル...10VBAからPDFのテキストフィールド11クリスタルレポートの式フィー...12COBOL初心者です。Inc.Q質問する(無料)Q&A検索goo検索gooIDで新規登録・ログイン新規登録する(無料)会員の方はこちら外部サービスのアカウントで新規登録・ログインYahoo!で新規登録・ログインGoogleで新規登録・ログインTwitterで新規登録・ログインFacebookで新規登録・ログインdアカウントで新規登録・ログイン※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。会員でない方、会員になるとあなたも質問や回答ができるようになります!!親切・丁寧な回答が集まる場30分以内に回答がもらえ回答数は平均3件!匿名(ニックネーム)での投稿なので。