- - PR -
同じテーブルを2つ使う方法
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-09-10 10:41
ということは、SQLが直接の原因ではないのですね。
DataSetなど用いているのでしたら、 それを作り直してみては如何でしょうか? _________________ まゆりん @ わんくま同盟 Blog る。 |
|
投稿日時: 2004-09-10 10:57
デバッグ手順
1.障害発生の手順及び状況を記録。 2.障害発生の手順を再実行し同一状況になるかエラーの再現性を確認。 3.エラーの発生箇所を特定する。 4.エラーの発生理由と特定する。 5.エラーの発生理由を排除する。 6.障害発生の手順でエラーが発生しないか検証 これが基本概略手順です。今回は、運良く再現性がある様なので、 引き続き発生箇所を特定し、次に発生理由を特定する必要があるのですが、 何故、発生箇所と発生理由を別けて調査するのかと申しますと、 例えばもし、noriさんの作成されたプログラムにて 1.提示のSQL文を発行 2.上記1の結果を別テーブルにInsert と言う処理構成になっている場合、2番にてエラーになっている可能性があります。 では2番が間違っているのか?と言えばそうでは無く、 1番の処理にて2番の書込先テーブルの制約に違反するデータが取得出来てしまう 仕様の漏れまたは、考慮不足が存在するかもしれないのです。 実際そうならば、発生箇所が2番、発生理由が1番となります。 はたまた、存在する筈が無いデータ構成のレコードが誰かのテストデータにより 取得してエラーになる事も開発環境ではある事です。 その場合の第1発生理由が、誰かが作成した不整合なテストデータとなります。 技術知識も大切ですが、一つ一つの仕事手順を覚える事方がはるかに大切です。 頑張って下さい。 # 日本語修正 [ メッセージ編集済み 編集者: はにまる 編集日時 2004-09-10 11:04 ] |
|
投稿日時: 2004-09-10 11:26
皆さん、ありがとうございます!
皆さんのアドバイスを元に、頑張ってみます☆ また連絡します。 |
|
投稿日時: 2004-09-10 22:13
過去の投稿を見ても、アダプタウイザードで生成するとエラーがでる確率が高いようですね。ところが、私は一度も見たことがないのは何でだろう?DELETE文やUPDATE文を作らないようにオプションを変更しているからかな?
|
|
投稿日時: 2004-09-13 15:36
Jitta様、ありがとうございます。
自分も同じように!と思ってやってみたのですが、 オプションを選択することができず、結果は同じでした;; もしやVS.NETのインストールに問題があるのでしょうか、、、。 皆さんのご指摘のように、原因はSQL文ではないようです。 'クラスA Public Class TABLE_A Private conn As OleDb.OleDbConnection Private adp As OleDb.OleDbDataAdapter Private cmd As OleDb.OleDbCommand Private ds As DataSet 'Aテーブルから条件を指定してレコードを抽出し、 '対象レコードがあるかをチェック Public Function A_Get_Record(ByVal shain_no As String) As String ds= New DataSet() ・・・・・・・・・・・・・・・・・・・・・・・・・ sql = "SELECT TABLE_A.SINSEI_YMD, " & _ ・・・・・・・・・・・・・・・・・・・・・・・・・ "WHERE TABLE_A.SHAIN_NO = '" & shain_no & "'" adp.Fill(out_ds, "TABLE_A") End Function 'Aテーブルから抽出したレコードを返す Public Function Ds_Fill(ByVal out_ds) As DataSet ds.Clear() adp.Fill(ds, "TABLE_A") End Function 'A_Get_Recordを実行した後、Ds_Fillを実行して 'DataGridに表示する。 Private Sub Page_Load( ) Dim Table_a As New TABLE_A() rc = Table_a.A_Get_Record(shain_no) If rc = True Then Table_a.Ds_Fill(DataSet1) With DataGrid1 .DataSource = DataSet1.Tables() .DataBind() End With End If End Sub ロジックは以下のようになっております。 どんなことでも結構です。 アドバイス、お願いいたします。 |