1

私はデータベース プログラミングにかなり慣れていないので、基本的な CRUD アプリを動かそうとしています。クラディを使用データ ディクショナリを読み取り、各テーブルに基づいてフォームを作成する非常に限られたアプリケーションがあります。

いくつかのテーブルには広範な外部キー エントリが含まれているため、キーが参照するエントリとして各外部キー列を表示するために必要な結合操作をアプリで実行したいと考えています。汚い!この機能があると主張しています-CGI::AutoFormフォームの作成に使用します。フォームを起動して実行するには、参照テーブルに列ごとにエントリを提供する必要がありますui_table_column

すべてのテーブルと関連する列に対して SQL ステートメントを記述するのではなく、1 つの列に対して適切なプロセスを実行しようとしています。

このテーブルの私の DDL から:

CONSTRAINT `fk_Holder_Sample1`
FOREIGN KEY (`sample_id`)
REFERENCES `sample` (`sample_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,

そして、AutoForm SQL エントリを設定する私の試み:

INSERT INTO ui_table_column (
    table_name, field_name, appear_order, heading, searchable, updatable, insertable, input_control_type, multi_insert_delimiter,
    search_control_type, search_mult_select, use_data_dict, datatype, default_value, required, input_size, input_maxlength, brief_heading,
    alt_mask_field, mask_table_name, mask_field_name, id_field_name, no_cache, radio_checkbox_cols, field_group, element_attrs, help_summary)
VALUES (
    'SAMPLE', 'SAMPLE_ID', 10, 'ID', 'Y', 'N', 'N', 'TEXT', NULL,
    'SELECT', 4, 'Y', NULL, NULL, NULL, NULL, NULL, NULL,
    NULL, 'sample', 'name', 'sample_id', 'Y', NULL, NULL, NULL, NULL);

INSERT INTO ui_table_column (
    table_name, field_name, appear_order, heading, searchable, updatable, insertable, input_control_type, multi_insert_delimiter,
    search_control_type, search_mult_select, use_data_dict, datatype, default_value, required, input_size, input_maxlength, brief_heading,
    alt_mask_field, mask_table_name, mask_field_name, id_field_name, no_cache, radio_checkbox_cols, field_group, element_attrs, help_summary)
VALUES (
    'SAMPLE', 'SAMPLE_NAME', 20, 'Name', 'Y', 'Y', 'Y', 'TEXT', NULL,
    'MATCH TEXT', NULL, 'Y', NULL, NULL, NULL, NULL, NULL, 'Name',
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

INSERT INTO ui_table_column (
    table_name, field_name, appear_order, heading, searchable, updatable, insertable, input_control_type, multi_insert_delimiter,
    search_control_type, search_mult_select, use_data_dict, datatype, default_value, required, input_size, input_maxlength, brief_heading,
    alt_mask_field, mask_table_name, mask_field_name, id_field_name, no_cache, radio_checkbox_cols, field_group, element_attrs, help_summary)
VALUES (
    'HOLDER', 'SAMPLE_ID', 30, 'sample', 'Y', 'Y', 'Y', 'SELECT', NULL,
    'SELECT', 4, 'Y', NULL, NULL, NULL, NULL, NULL, 'Sample',
    NULL, 'sample', 'NAME', 'SAMPLE_ID', 'Y', NULL, NULL, NULL, NULL);

アプリ ページを更新しても (ブラウザを更新して を呼び出すだけapachectl)、変更はありません。つまり、Holder ページのフィールドとしてまだ Sample ID が表示されます。

誰かがこれで成功したか、私が間違っていることについて私にアドバイスできますか?


編集: SO からの沈黙は、この特定のフレームワークが広く使用されていないことを示していると考えています。それでは、私の質問を少し開いて、どのような解決策を使用したかをお尋ねしたいと思います。私は実際にCatalyst::Plugin::AutoCRUDを試しています。

4

2 に答える 2

2

学習者が別のフレームワークで終了した後に回答しましたが、今後の参考のために、これらのフィールドは大文字にする必要があります。

上記の例では、1 番目と 3 番目の挿入ステートメントは次のようになります。

于 2012-05-23T22:38:03.367 に答える
0

編集でモジュールを使用することになりました。明日はこれを閉鎖としてフラグを立てます。

于 2012-05-20T14:09:27.843 に答える