mysql:8510
From: take_tk <take_tk <CQK01016@xxxxxxxxxx>>
Date: Tue, 16 Dec 2003 21:08:12 +0900
Subject: [mysql 08510] Re: Delphi+Mysql で Jpeg を登録
たけ(tk)です [mysql 08507] Re: Delphi+Mysql で Jpegを登録 にて takuma watanabe <takuma@xxxxxxxxxx> さん曰く: > > ソートを掛けた並びのキーのデータセットを取得する方法ではどうでしょうか? > すみません。どのような内容かがいまいち理解できずにいます(^^;; > もう少し詳しく教えていただけませんか? あ、う、う。たけ(tk)が使っているのはApollo(DelphiをRubyでラップしたもの) なので……、うまく説明できるかな。Delphiに直すとすると…… CalcField の作り方はご存じですか? ご存じだとして……。 (1)queryを2個(キー用とデータ用)用意しておいて、 (2)データ用のquery2のsqlには'select * from USER where USERID = :key' をセットしておきます。 (3)キー用のquery1をグリッドに結びつけます。 (4)キー用のquery1にキー項目以外の項目を CalcField として追加します。 (5)キー用のquery1でOnCalcField を定義して、次のようにします。データ用 のquery2を開いて、そこからデータをコピーします。 procedure TForm1.Query1CalcFields(DataSet: TDataSet); begin Query2.params['key'].AsString := Query1['USERID'].AsString; Query2.open; Query1['USER_KIND'].AsInteger := Query2['USER_KIND'].asInteger; Query1['USERNAME'].AsString := Query2['USERNAME'].asString; // …… 必要な項目をコピーする …… Query2.close; end; (6)キー用のquery1のsqlは次のようにします。 'select USERID from USER orderby USERNAME' (7)これでquery1をopenすれば、グリッドに USERNAME 順で表示されるのでは ないかと思います。 ---- * Apolloではこんな感じ(↓)でうまくいっています。 def new_datset_grid( info ) // TQuery.create に相当。 dataset = info.new_query // キー項目名 key_field_name = info.key_field_name // キー項目以外の項目名を保存する。 calc_fields_data = info.field_data.select{|f| f[0] != key_field_name } calc_fields = calc_fields_data.collect{|f|f[0]} // キー取得用queryのsqlをセットする。 dataset.sql_text_ex = "select %k from %q order by %k" // 計算項目を追加する。 dataset.add_calc_fields( calc_fields_data ) // OnCalcFields イベントハンドラをセットする。Query1CalcFields 相当。 dataset.on_calc_fields = proc{|dataset| hash = info.key_select( dataset.key_value ) // Query2 に相当 calc_fields.each{|f| dataset[f].value = hash[f] } } return dataset end * 実を言うと、DelphiでのCalcFieldの追加方法を思い出せませんデス。上で 使っている add_calc_fields では実行時に動的に追加している。 http://www.freeml.com/message/ap-ext@xxxxxxxxxx/0000007 def add_calc_field( fname, ftype, fsize, index=nil ) * Apolloはここ(↓) http://www.moriq.com/apollo/index.html take_tk = kumagai hidetake
8470 2003-12-10 19:10 [takuma watanabe <tak] MyODBC の DLL でモジュール違反 8484 2003-12-12 13:43 ┣[takuma watanabe <tak] 8492 2003-12-16 10:01 ┗[takuma watanabe <tak] Delphi+Mysql で Jpeg を登録 8493 2003-12-16 10:12 ┣[遠藤 俊裕 <endo_t@xx] 8494 2003-12-16 10:28 ┃┗[takuma watanabe <tak] 8495 2003-12-16 10:35 ┃ ┗[遠藤 俊裕 <endo_t@xx] 8497 2003-12-16 11:25 ┃ ┗[Ito Takahiro <taka@x] 8498 2003-12-16 12:00 ┃ ┗[takuma watanabe <tak] 8499 2003-12-16 12:25 ┃ ┗[遠藤 俊裕 <endo_t@xx] 8496 2003-12-16 11:13 ┣["TAKAHASHI, Tomohiro] 8500 2003-12-16 15:12 ┣["TAKAHASHI, Tomohiro] 8501 2003-12-16 16:12 ┃┗[takuma watanabe <tak] 8503 2003-12-16 16:23 ┃ ┗[遠藤 俊裕 <endo_t@xx] 8512 2003-12-16 22:03 ┃ ┗["TAKAHASHI, Tomohiro] 8517 2003-12-17 10:33 ┃ ┗[遠藤 俊裕 <endo_t@xx] 8502 2003-12-16 16:17 ┗[take_tk <CQK01016@xx] 8504 2003-12-16 16:25 ┣[遠藤 俊裕 <endo_t@xx] 8505 2003-12-16 16:36 ┗[takuma watanabe <tak] 8506 2003-12-16 18:50 ┣[take_tk <CQK01016@xx] 8507 2003-12-16 19:01 ┃┗[takuma watanabe <tak] -> 8510 2003-12-16 21:08 ┃ ┗[take_tk <CQK01016@xx] 8511 2003-12-16 21:30 ┃ ┗[takuma watanabe <tak] 8513 2003-12-16 22:04 ┗["TAKAHASHI, Tomohiro] 8514 2003-12-16 22:14 ┗[takuma watanabe <tak]