[pgsql-jp: 40769] Re: ストアドファンクションの順次実行

Yukihito Miso oira3ryu @ gmail.com
2011年 5月 5日 (木) 17:33:13 JST


すいません、転記洩れでした。
このようにn_idにパラメータとして渡しているつもりなのですが
渡っていないようです。

            if (cmb_n_id.SelectedItem == null)
            {
                da.SelectCommand.Parameters.Add(new NpgsqlParameter("n_id",
                NpgsqlTypes.NpgsqlDbType.Integer, 0, "n_id",
                ParameterDirection.Input, false, 0, 0, DataRowVersion.Current,
                DBNull.Value));
            }
            else
            {
                DataRowView row = (DataRowView)cmb_n_id.SelectedItem;
                da.SelectCommand.Parameters.AddWithValue("n_id", row["n_id"]);
            }

だいぶC#寄りの話になってしまっているので恐縮です。

このような方法をとらずとも代替案などがあればお願いいたします。

2011/5/4, Itagaki Takahiro <itagaki.takahiro @ gmail.com>:
>> ERROR: 42601: syntax error at or near ":"
>>>>      da.Fill(ds, "results");の部分でエラーになってしまいます。
>
> :n_id に値をセットする処理が必要なのではないでしょうか?
>
>
>
>> 以下が、エラーになるコードです。
>>
>>   public partial class FormReportsResults : Form
>>   {
>>   private NpgsqlConnection m_conn = new
>> NpgsqlConnection(PostgreSQLTEst.Properties.Settings.Default.PostgresConnect);
>>    // (接続は間違いなくできています)
>>    private NpgsqlDataAdapter da = new NpgsqlDataAdapter();
>>    private DataSet ds = new DataSet();
>>     public FormReportsResults()
>>      {
>>   InitializeComponent();
>>      }
>>      private void FormReportsResults_Load(object sender, EventArgs e)
>>           da.SelectCommand = new NpgsqlCommand
>>           (
>>               "SELECT create_tmp_records1(var_col_TIME_function(:n_id));"
>>               + "SELECT
>> insert_tmp_records1(var_col_TIME_sub_function(:n_id));"
>>               + "SELECT
>> create_tmp_records2(var_col_TIME_function(:n_id));"
>>               + "SELECT
>> insert_tmp_records2(var_col_COALESCE_sub_function(:n_id), :n_id);"
>>               + "SELECT
>> create_tmp_records3(var_col_TIME_function(:n_id));"
>>               + "SELECT insert_tmp_records3(var_col_function(:n_id),
>> :n_id);"
>>               + "SELECT
>> create_tmp_records4(var_col_TIME_function(:n_id));"
>>               + "SELECT insert_tmp_records4(var_col_function(:n_id),
>> :n_id);"
>>               + "SELECT
>> create_tmp_records5(var_col_TIME_function(:n_id));"
>>               + "SELECT insert_tmp_records5(var_col_function(:n_id),
>> :n_id);"
>>               + "SELECT create_tmp_records(var_col_TIME_function(:n_id));"
>>               + "SELECT insert_tmp_records(var_col_function(:n_id));"
>>               + "SELECT update_tmp_records4(var_col_function(:n_id));"
>>               + "SELECT update_tmp_records5(var_col_function(:n_id));"
>>               + "SELECT * FROM tmp_records;",
>>                   m_conn
>>           );
>>      da.Fill(ds, "results"); ' ←ここでエラー
>>      CrResults myReport = new CrResults();
>>      myReport.SetDataSource(ds);
>>      CrvResults.ReportSource = myReport;
>>       }
>
>
> --
> Itagaki Takahiro
>


pgsql-jp メーリングリストの案内