(現在 過去ログ5 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■668 / inTopicNo.1)  外部db接続問い合わせその後
  
□投稿者/ 長門孝雄 -(2005/11/17(Thu) 20:33:06)
    過日、外部dbの接続で問い合わせさせいただいた者ですが、
    その後、K3に2回問い合わせしたのですが、
    桐では主キーの削除などの処理はされていないので、oracle
    の設定に問題があるという回答でした。
    しかし、oracleにリンク接続したaccessでは問題なく
    やはり納得がいかず、今度はaccessで新たに簡単なtblを2個
    作成し、odbc接続でAccessに1対多の接続をして多側のレコード
    を削除したら結合した1側の主キーレコードが削除されていまいます。
    やはり、なにか間違った結合をしているのか悩んでいる次第です。
    なにかヒント等ありましたら何卒よろしくお願いいたします。
    
    os windows2000 桐 ver9(2005) access2003 です
    
    
    

引用返信 [メール受信/OFF] 削除キー/
■674 / inTopicNo.2)  Re[1]: 外部db接続問い合わせその後
□投稿者/ うにん -(2005/11/18(Fri) 13:00:36)
    > その後、K3に2回問い合わせしたのですが、
    > 桐では主キーの削除などの処理はされていないので、oracle
    > の設定に問題があるという回答でした。
    
    主キーの削除はしてないですが、SQLのトレースを見たら、1側でもレコード削除をしているようです。
    
    > やはり納得がいかず、今度はaccessで新たに簡単なtblを2個
    > 作成し、odbc接続でAccessに1対多の接続をして多側のレコード
    > を削除したら結合した1側の主キーレコードが削除されていまいます。
    
    同様なことをやってみましたが、確かに削除されます。
    1側の(と多側もですが)主キーを結合結果に入れないようにしても、更新可能に設定しているため
    
    "SELECT A1.`Text`,A2.`Fkey`,A2.`text`,A1.`PKey`,A2.`Pkey` FROM `t1` A1,`t2` A2 WHERE (A1.`PKey`=A2.`Fkey`)\ 0"
    
    両方とも`PKey`(主キーのフィールド)が加えられていて、行削除すると
    
    "DELETE FROM `t1` WHERE `PKey`=?"
    
    と1側をDELETEした後で
    
    "DELETE FROM `t2` WHERE `Pkey`=?"
    
    多側をDELETEしていました。
    (だもんで、Accessの方で参照整合性を定義してあると、1側の削除でエラーになって多側も削除されなかったり)
    
    ただし、結合した表で削除している以上、「多側のレコード」を削除しているのではなく
    削除しているのはあくまで結合レコードなので、これがまずい動作なのかは微妙です。
    (結合表と違って、結合画面で1-nのような表示はされてませんし。でも結合表では
    「結合レコードを削除すると、外部キー側のレコードが削除されます。」となっているし、
    1側の結合項目が主キーであることはわかっているのだから結合表と同様の動作を期待しますよね〜)
    
    > なにかヒント等ありましたら何卒よろしくお願いいたします。
    
    削除は単一の表で行なうしかないのでは?
    

引用返信 [メール受信/OFF] 削除キー/
■675 / inTopicNo.3)  Re[2]: 外部db接続問い合わせその後
□投稿者/ 長門孝雄 -(2005/11/18(Fri) 14:15:39)
    うにんさん早速のご返事ありがとうございます。
    検証までしていただいて感謝しております。
    やはり、桐の処理は変だとおもいます。これだとoracleの表どうしの結合は
    無理ですね。
    外部dbだと表引きは使えないし、例えば売上明細テーブルに社名、品名の項目が
    必要になり正規化とはいかなくなります。削除レコードのない売上明細等は実務では
    無理です。
    フォームで計算式で社名、品名を表示するにしても、そのテーブルは全くoracleと
    同じデータとは限らときもあります。
    この辺はaccessのクエリーにおよばないのでしょうか。
    原因がわかっただけ、すっきりしました。本当にありがとうございました。
    
    

引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -