• 締切済み

delphiとデータベースについて(追加)

変数でという事が分からなかったみたいなので詳しく説明します。データベースで生年月日を20001220というように持っています。それをdelphi側で取り出し、2000/12/20というような感じでDBGridに表示したいという事です。 データベースから取り出す際に、delphi側で、自由に使用できたらと思っています。誰かお願いします。

みんなの回答

  • lucilis
  • ベストアンサー率40% (4/10)
回答No.3

状況がよくわからないのでいくつか仮定の上で話します。 前提としてTQueryを使用している。 目的の項目は文字列型で、"20001231"のように年4桁月2桁日2桁の固定文字列である。 文字列型を日付型として取り出したい。 TQueryの名前はQuery1,目的の項目名をDATE とすると。 変数宣言は var Birthday:TDateTime; s:string; DBから変数への格納。 s:=Query1.FieldByName('DATE').AsString; Birthday:=EncodeDate(StrtoInt(Copy(s,1,4)),StrtoInt(Copy(s,5,2)),StrtoInt(Copy(s,7,2))); とゆう具合になります。

kenzouu
質問者

補足

たびたび、すみません。分かりやすい説明ありがとうございます。教えてもらったとおりにやったのですが、うまくできません。 出来れば詳しいソースがほしいのですが・・・・・・ 先程教えて頂いたのに加え、onClickしたというイベントを起してText.Editに入れるというまでの一連の過程を作ってもらえないでしょうか? お願いします。

  • lucilis
  • ベストアンサー率40% (4/10)
回答No.2

単に表示上の問題ならTQueryに静的項目を追加し項目のEditMaskに !9999/99/00;0;_ の様に指定すれば表示されます。 変数として取り出してプログラム中で使用するなら年月日をそれぞれ文字列として取り出してEncodeDate関数で日付型に変換すればいいと思います。

kenzouu
質問者

補足

回答ありがとうございます。もう少し詳しく聞きたいのですが・・・・・ もう少し詳しく説明します。 変数として取り出すという事ですが、データベースからデータを取り出し表示する事は出来るのですが、データベースから取り出し変数に格納する方法を教えて下さい。

noname#18951
noname#18951
回答No.1

Delphi使いのT.Nakです。 フォーマットが固定されているという条件なら、 dt := '20001220'; temp := Format('%s/%s/%s',[Copy(dt,1,4),Copy(dt,5,2),Copy(dt,7,2)]); で可能だと思います。

kenzouu
質問者

補足

回答ありがとうございます。もう少し詳しく聞きたいのですが・・・・・ もう少し詳しく説明します。 変数として取り出すという事ですが、データベースからデータを取り出し表示する事は出来るのですが、データベースから取り出し変数に格納する方法を教えて下さい。

関連するQ&A

  • delphiとデータベースについて

    delphi4とoracle8i(体験版)でソフトを作ってるのですが、データベースからデータを抽出し、変数として使用したいのですが、その方法が分かりません。誰か助けて下さい。

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

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

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

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

  • delphi5について。

    delphiを始めて3日目の初心者です。 質問があります。 同じフォーム内にDBGridとEditがあります。 DbGridには全部で3つフィールド「Ename」「Ejusyo」「Edenwa」があり全部で5行表示。 EditはそれぞれEdit1,2,3が3つあります。 例: Ename Ejusyo Edenwa 青木  東京都  1234 木村  山梨   2223 佐藤  群馬   5555 斉藤  岩手   4444 高木  大阪   9999 例えば「青木」のレコードをマウスでクリックすると Edit1に青木、Edit2に東京、Edit3に1234を1セットとして表示させたいのです。 ちなみに斉藤をクリックすれば Edit1に斉藤、Edit2に岩手、Edit3に4444を表示する。 こう処理したい場合にはどう記述すればよいですか? 超初心者です。わかりやすく教えていただければ助かります。

  • Delphi 6

    Delphi6でプログラミングしているのですが 何分不慣れなもので・・・・ もし、お知りの方おられましたら ご教授お願い致します。 ******************************** あるpasファイルにてvarで定義した変数を色々な .pasファイルで使用したいのですがどうすれば よいのでしょうか?

  • Delphiのチャートについて

    Delphiのチャートで下軸を時刻表示したいと思っています。 時刻は固定値をいれれば良いのですがうまく表示しません。 下軸はBottonAxisでAddを使用すればよいのではと思うのですが、 FastLineSeriesを使用しなけばならず、下軸はデータが必要無い と思うのですがどうなんでしょうか? 説明がわかりずらいと思いでしょうか、どうか教えて下さい。

  • DelphiのTListについて

    DelphiのTListについて、 使い方がよく理解できません。 教えていただけないでしょうか? または、分かり易い説明のあるサイトを教えていただけませんか? ・使用目的はフォルダ構成をTListで管理しようとしています ・リスト構造についての知識はあるつもりです 環境 Delphi:Delphi6 Personal

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

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

  • データベースの検索

    visual basic6からaccessをデータベースにして自作アプリを作成しています。 そこでVBからデータベースのデータを日付検索を行いたいのですがやり方がわからないのでお願いします。 やりたいことは、VBの画面上から何年何月何日~何年何月何日と年月日を入力してデータベース内にある年月日情報からその条件にあったものだけを取り出すという処理です。 検索する際に年月日は手入力とカレンダーからの入力を考えているのですがカレンダーの表示の仕方もわかりません>< この質問を読んでご理解していただけた方はどのような方法が一番適しているかを教えてください;; お願いいたします。。。

  • Delphi SQL

    Delphi+InteBase 何がわからないのか、わかっていない状況です。 dbExpressのSQLConnection・SimpleDataSet、DataAccessのDataSource、DataControlsのDBGridを利用しています。 SimpleDataSetのDataset.CommandTextに「SELECT * FROM テーブル名」とかSQL文を書くことによって、希望のデータが表示されることまでは理解できました。 「SELECT MAX(ID) FROM テーブル名」など値を返す場合は、どのようにしたらよいのでしょうか? またCommandText:='DELETE FROM テーブル名'とすると、エラーにはなりますが、テーブルは空になっているのでtry文できりぬけています。 根本的にSQL文をどこに記述したらよいのかわかっていません。 どなたか、お助けを・・・

専門家に質問してみよう