掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SQL後の表で編集してApplyUpdateするには? (ID:40863)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
dbExpressでのSQL表の編集の仕方が分かりません。 下記のように、 SQLで表を作成して、DBGridで既存行を変更した後、ApplyUpdatesすると 『ORA-00904: "ITEMMEI": 無効な識別子です。』 『レコードが見つかりません。キーを指定されていません』 とエラーになります。 新規行の場合は、エラーは発生しません。 どのようにすべきなのでしょうか? 例えば、表AのNO:004、NUM:45.6 → 56.7 変更した後、ApplyUpdatesする と、エラー。 ■データベース 表A *NO ITEMNO NUM 001 001 12.3 002 001 23.4 003 002 34.5 004 002 45.6 表B *ITEMNO ITEMMEI 001 ABCDE 002 BCDEF 003 CDEFG *:主キー ■フォーム上 SQLConnection1 SimpleDataSet1 SimpleDataSet2 DataSource1 DBGrid1 ※SimpleDataSet1のTStringField NO, ITEMNO, ITEMMEI, NUM ITEMMEIのプロパティは FieldKind: fkLookup FieldName: ITEMMEI KeyFields: ITEMNO LookupDataSet: SimpleDataSet2 LookupKeyFields: ITEMNO LookupResultField: ITEMMEI ■プログラム procedure TForm1.FormShow(Sender: TObject); begin SimpleDataSet2.DataSet.CommandType := ctTable; SimpleDataSet2.DataSet.CommandText := 'B'; SimpleDataSet1.Close; SimpleDataSet1.DataSet.CommandText := 'select A.NO, A.ITEMNO, B.ITEMMEI, A.NUM ' +' from A, B ' +' where A.ITEMNO=B.ITEMNO(+) ' +' order by A.NO '; SimpleDataSet1.Open; end; procedure TForm1.SimpleDataSet1BeforeScroll(DataSet: TDataSet); begin SimpleDataSet1.ApplyUpdates(-1); end; よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.