• ベストアンサー
  • 困ってます

ストアドプロシージャについて

教えてください。 NT4.0上でAccess2000+MSDEで使用しているのです。 ストアドプロシージャでUPDATE文のあとにSELECT文を使い更新したデータを受け取ろうとしているのですが、実行すると「ストアドプロシージャは実行されましたがレコードは返されませんでした。」とメッセージが表示されるだけなのです。UPDATE文を注釈にするとレコードは返されるのでデータはあるのだと思います。 宜しくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数400
  • ありがとう数9

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.3
  • who
  • ベストアンサー率21% (4/19)

う~ん、確かにこれだけ見れば問題なさそうですね。 回答できないので、申し訳ないのですが、回避策としては、UPDATEとSELECTを逆転してSELECTしてからUPDATEしてはどうでしょうか。 SELECTのdataの部分をリテラル(固定)でSELECTし、その後、UPDATEしてみては? このUPDATEとSELECT文だけですと、処理上、問題ないかとは思うのですが... 問題の回答になっておりませんが、上記の回避策などで対応できないでしょうか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

どうもありがとうございます。SELECTした後UPDATEで回避します。

関連するQ&A

  • ユーザからADPのストアドプロシージャを修正できないようにする

    Microsoft Access2000のADPを通じて、MSDEを操作するデータベースを作成しました。 社内のユーザに ADPを変換したADEファイルを配付しようとしていますが、このままでは、ユーザが不用意にストアドプロシージャを修正してしまう恐れがあります。 ユーザからADEのストアドプロシージャを修正できないようにする方法はありませんでしょうか?

  • WindowsXP Professional でASPからデータベース(access)に登録できない。

    windows2000 ,access2000 ,IIS 5.0 の環境で、ASPプログラムを作成 しました。WEBで設定した内容をDB(access)に登録(update)する物です。 これを、WindowsXP Professional ,access2000,IIS5.1で動かすと、DBから データを読み取る(select)事は可能だが、登録(update)する事は出来ません。 [Microsoft][ODBC Microsoft Access Driver] 更新可能なクエリであることが必要です。 この様なメッセージが出ます。 おそらく、XPのアクセス権限の設定だと思うのですが、わかりません。 どなたか、ご指南をお願いします。

  • どうやって実行するの?

    今まで バック:SQL Server フロント:ACCESS2000 でシステム構築を経験してきました。 今までUPDATE文や、INSERT文はACCESS側でクエリを 作り、ODBC経由で実行してきましたが、 上司より、 「SQL-Server上でデータ更新をしてほしい」 といわれました。 この場合、SQL-ServerのどこにUPDATE文を書けば 良いのでしょうか? ACCESSのクエリのデザインビューみたいなので 作成できるのでしょうか? 教えてください。

その他の回答 (2)

  • 回答No.2
  • yu-ji
  • ベストアンサー率19% (15/78)

commitする必要はなのでしょうか? commitで確定しなければ検索してもデータは抽出されないのではないでしょうか? 素人なのでわかりませんが。。。 アドバイスになってます??

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • who
  • ベストアンサー率21% (4/19)

これだけの情報では推測でしかお話できませんが、おそらく、UPDATE文を注釈にするとレコードは返されて、注釈にしなければレコードがないのでしたら、普通に考えると、そのUPDATE文が実行されたことにより、SELECT文の対象データが、対象データ以外の形に更新されているのではないでしょうか? 違うようであれば、そのSELECT文やUPDATE文の大体の内容を教えて頂けないでしょうか。

共感・感謝の気持ちを伝えよう!

質問者からの補足

質問が要領を得なくてすいません。 ストアドの内容は Alter Procedure Data_Search @KeyIndex int As UPDATE TABLE1 SET data='○○' WHERE [index]=@KeyIndex; SELECT [index], data FROM TABLE1 WHERE [index]=@KeyIndex; return です。それとTABLE1は [index] int data nchar(桁数17) です。その他のテーブル等はありません。このテーブルとストアドだけのデータベースです。 [index]を更新していないのでSELECT文で抽出されると思ったのですが抽出されないのです。 すいませんがもう一度よろしくお願いします。

関連するQ&A

  • ACCESS2000について

    教えて頂きたい事があります。 現在、ASP+ACCESS2000で開発をしているのですが、 本番環境では、DBのACCESS2000をMSDEに移行して運用します。 ACCESS2000のアップサイジングウィザードを使う事で、 簡単にACCESSからMSDEに移行できるみたいなのですが、 私が使用している端末のACCESS2000で、アップサイジングウィザードを実行しようとすると、「機能がインストールされていません。Office PremiumのCDを・・・」 と表示されたのですが、ソフトの管理者の方に尋ねたところ、 「ウチには、Premiumはない。Professionalでいい???」って言われました。 PremiumのCDを要求されたのですが、ProfessinalのCDでも、 アップサイジングウィザード機能はインストールできるのでしょうか? よろしくお願い致します。

  • このISAMでは、リンクテーブル・・

    access2000にcsvデータをリンクさせ、テーブルを開いてレコードを変更しようとすると「このISAMでは、リンクテーブル内のデータを更新することはできません」というメッセージが出ます。 これは標準ですか? リンクテーブルでcsvデータを更新する方法はあるものですか? #リンクはこれまで未経験なので、さっぱり不明。

  • ストアドプロシージャについて

    いつもお世話になっております。 ストアドプロシージャで以下のようなことをしたいのですが、可能しょうか。 ある会員テーブルから1件のレコード(10個のカラムで構成されている)を取得します。その10個のカラム⇒10個のレコードとして別の一時的なテーブルに格納したいのですが可能でしょうか。 イメージとしては、 (1)Select Clm1,Clm2,Clm3~,Clm10 from MstMember 条件句 (2)(1)の結果をtmpTBLに格納。中身としては、、、 <tmpTBL> Clm1 Clm2 Clm3 Clm10 とここまで書きましたが、やりたいことはSelect文で取得したレコードのカラム1~10を順番に参照したいだけです。 素人質問で大変恐縮ですがご教示頂けますと幸いです。

  • ストアドプロシージャーの作成方法

    実行環境・・・CSE update文を5つ発行したくストアドプロシージャを使おうと思ったのですが上手くいかず 困っています。 create function 関数名 引数なし AS 'update文1,update文2,・・・・,update文5' language ='sql'; と行っているのですが、エラーが出てしまいます。 参考書に載っている引数ありのだと上手くいくのですが・・・ なにかやり方が間違っているのでしょうか? ご教授お願いいたします。

  • ストアドプロシージャについて

    ストアドプロシージャで、Accessのクエリーを実行させテーブルの中の指定したIDのデータを削除させるという流れなのですが・・ 以下のソースで実行はできるのですが、削除ができていないので原因がわかりません。アドバイスお願いします。 package CallableStatement; import java.sql.*; import java.io.*; public class cCallableStatement { public static void main(String[] args) { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection db=DriverManager.getConnection("jdbc:odbc:sample","",""); CallableStatement cllDelete; int ID = 3;        // 削除 cllDelete = db.prepareCall("{call DELETE(?)}"); cllDelete.setInt(1,ID); cllDelete.executeUpdate(); } } 環境はwin2000 pro forte for java 4.0 jdk : 1.4 データベース: Access2000

  • レコード操作ツール探してます

    windowsで動くレコード操作ツールありませんか^-^?(追加/更新/削除できるもの) よろしくお願いします。 1)Access2000のリンクテーブルやパススルークエリ 2)mysql.exe でもそれなりにできるのですが、もーーーと便利なソフトウェア探してます。 1)Access2000のリンクテーブルは、定義したデータベースにprimary keyがないとデータ更新できない... 2)mysql.exe コマンド打つのめんどい ※かねやんMySQLAdmin.exeでいけるかと思いましたが、レコードいじれませんでした。

    • ベストアンサー
    • MySQL
  • Access2000で最適化をVBAで実行できますか?

    Access2000のメニューから操作する「最適化」をVBAで実行できませんか? データ(レコード)を削除したときなど、終了時に自動実行させたいのですが。 (オプションで設定すると、常に実行されるので) よろしくお願いいたします。

  • access2000最適化後のエラー

    Access2000のDBを業務で使用しています。DBを構築してから2年ほどが経ち、データ数も多くなったため、先日最適化処理を実行したところ、フォームからのデータ入力が全くできなくなりました。何をしようとしてもこのレコードはロックされていて更新できませんというメッセージがでます。原因・回避法をご存知の方がいらっしゃいましたら是非ご教示ください。ちなみに、システムは97時代に構築し、その後2000にバージョンアップしました。97時代は問題なく最適化できていました。

  • Access2000の削除クエリで消してしまったデータの復旧

    Access2000を使用していますが、うっかり抽出条件を入れるのを忘れて削除クエリを実行してしまい、テーブルの中のレコードをすべて消してしまいました。バックアップを取っていなかったので、データが無います。 何か削除したレコードを復旧させる方法はありますでしょうか。難しいとは思いますが、どうぞ宜しくお願いいたします。

  • こんなクエリを作りたいのですが

    ACCESS2000を使用しています。 あるレコードになにかしら値があればそのレコードをはじいて(のぞいて)表示されるようなレコードを作りたいのですがどのような方法がいいでしょうか?できるだけACCESS2000標準の方法で試したいと考えております。よろしくお願いします。