2011年5月 2日

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

お世話になっております。
よろしくお願いいたします。

FreeBSD 8.2 + PostgreSQL 9.0.4 + Npgsql
Windows 7 Pro + VS 2010 C# Proです。

イメージとしては
一時テーブルを作成

一時テーブルにインサート
をストアドファンクションを順次実行し繰り返す
その結果をFillしてCrystalReportsに渡したいのですが
デバッグすると

da.Fill(ds, "results");の部分で

  syntax error at or near "insert_tmp_records1"

でエラーになって止まります。
ストアドを順次実行する部分が間違っているのかと
思っているのですが、Npgsql: ユーザマニュアル等を
参考にしているのですが、解決に至っておりません。
どなたか誤りをご指摘いただければと思います。

da.SelectCommand = new NpgsqlCommand
(
"create_tmp_records1(var_col_TIME_function(:n_id));"
+ "insert_tmp_records1(var_col_TIME_sub_function(:n_id));"
+ "create_tmp_records2(var_col_TIME_function(:n_id));"
+
"insert_tmp_records2(var_col_COALESCE_sub_function(:n_id), :n_id);"
+ "create_tmp_records3(var_col_TIME_function(:n_id));"
+ "insert_tmp_records3(var_col_function(:n_id), :n_id);"
+ "create_tmp_records4(var_col_TIME_function(:n_id));"
+ "insert_tmp_records4(var_col_function(:n_id), :n_id);"
+ "create_tmp_records5(var_col_TIME_function(:n_id));"
+ "insert_tmp_records5(var_col_function(:n_id), :n_id);"
+ "create_tmp_records(var_col_TIME_function(:n_id));"
+ "insert_tmp_records(var_col_function(:n_id));"
+ "update_tmp_records4(var_col_function(:n_id));"
+ "update_tmp_records5(var_col_function(:n_id));"
+ "SELECT * FROM tmp_records;",
m_conn
);
da.SelectCommand.CommandType = CommandType.StoredProcedure;

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"]);
}

da.Fill(ds, "results");
CrResults myReport = new CrResults();
myReport.SetDataSource(ds);
CrvResults.ReportSource = myReport;


投稿者 xml-rpc : 2011年5月 2日 00:07
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/103522
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。