
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
あ、そっちのほうでしたか(^^;
そういう仕様があるのは知っていたんですが、「Insertが出来るんだからコレには該当しないんじゃないか」などと勝手に思っておりました。
主キーが付いていなくても行挿入は出来るんですねぇ。勉強になりました。
でわ。
No.4
- 回答日時:
DAOでOracleにつないだ経験は殆ど無いですし、自宅にOracle入れているわけでもないので、甚だ不確実な回答ではありますが、
Private Sub コマンド0_Click()
Dim wspc As DAO.Workspace
Dim conn As DAO.Connection
Dim sSql As String
Set wspc = DAO.CreateWorkspace("WSPC_NAME", "USER_NAME", "PASSWORD", dbUseODBC)
Set conn = wspc.OpenConnection("hoge", dbDriverNoPrompt, False _
, "ODBC;dsn=hoge;Trusted_Connection = yes")
sSql = ""
sSql = sSql & "UPDATE TEST1 SET NAME = 'V' WHERE NO = 9"
conn.Execute sSql, dbExecDirect
conn.Close
Set conn = Nothing
wspc.Close
Set wspc = Nothing
End Sub
みたいな書き方をしてもダメでしょうかねぇ。
(ちなみに、接続文字列はMSDE用のものなんで、適当に書き換えてやってください。)
ODBC Directで繋いでるんで、もしこれで成功するようであれば、原因がDAOのどっかにある可能性が高くなりますよね。
上記でもダメだったとしたら、Oracle側でしょうかねぇ。(基本的なことなんですが、主キーやその他の制約に引っかかったりしてないでしょうか? 或いはトリガが暴発してしまっていたり… 他の処理が排他ロックをしていたりといった可能性は?)
この回答への補足
ありがとうございます。
この問題は解決しました。
なんと、主キーがなければupdateまたはdelete文の実行ができないらしい。(JETワークスペース)の仕様らしい・・・
No.3
- 回答日時:
とりあえずは、Oracle側のエラーメッセージは取得できませんでしょうか?
oo4oなら、OraSession.LastServerErrortextとかで取得できるはずですし、ADOなら Connection.Errorsだったっけ…
それが判れば、Oracleのマニュアルでエラーコードを辞書引きすれば、それとなく原因が見えてくるような気がします。(蛇足になるやも知れませぬが、OTNから電子マニュアルが入手できます。)
あとは、該当部分のソースコードや、Oracleのバージョン、使用しているミドルウェア、etcの情報があれば、回答が付き易いと思いますよ。
参考URL:http://otn.oracle.co.jp/
この回答への補足
DBアクセスには「DAO」を使っています。
該当部分のソースコードは以下のようになっています。
--------------------------------------------
Dim WkDB As Workspace
Dim Db As Database
Dim Connect As String
Dim SQL As String
Set WkDB = DBEngine.Workspaces(0)
WkDB.BeginTrans
Connect = "ODBC; " & _
"UID=" & _
ユーザ名 & _
";PWD=" & _
パスワード
Set Db = Workspaces(0).OpenDatabase( _
DataSorce名, _
False, _
False, _
Connect _
)
SQL = "アップデート文"
Db.Execute SQL <- ここでエラーとなってしまいます。
--------------------------------------------
よろしくお願いします。
No.2
- 回答日時:
テーブルの結合はしてないのですか・・・。
どうしてなんでしょうね。UPDATE の SQL と、そのテーブルの各カラムの型を教えてもらえれば、もしかすると何かわかるかもしれません。(が、もしかすると何もわからないかもしれません。)
ところで、「更新できないクエリー」というのは、「更新できない SQL です。」という意味だと考えればいいと思います。UPDATE の SQL と INSERT の SQL は異なる SQL なので、「更新できない UPDATE でも、INSERT は大丈夫」というのは意味をなさないと思います。
この回答への補足
ありがとうございます。SQL文の問題ですかね?
SQL文は以下のような形になります。ちょっとわかりにくいかもしれません。
このSQL文はSQLPLUS上ではちゃんと処理されます。
UPDATE XXXXXX SET ~~~~=176811,~~~~=177521,~~~~=178231,~~~~=168853,~~~~=169364,~~~~=170130,~~~~=1040910,~~~~=170148,~~~~=170166,~~~~=170184,~~~~=170202,~~~~=170220,~~~~=170238,~~~~=1021158,~~~~=1191396 WHERE YYYYY=1 AND YYYYY='001' AND YYYYY='200000' AND YYYYY=1 AND YYYYY=1998
ちなみに、
UPDATE XXXXX SET ~~~~=0
という基本的な文にしてみてもダメでした・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS VBAでテーブル内の特定...
-
VBAでoracleDBのupdate
-
「ご処理進めて頂きますようお...
-
お家デートをしててハグを長い...
-
CloseとDisposeの違い
-
C言語でグラフ作成??
-
UWSCでループ処理がうまくいき...
-
エクセルVBAで、MsgBox やInput...
-
EXCEL VBA マクロ 実行する度に...
-
「PC Helpsoft Driver Updated...
-
VBA エンターキーでイベントに...
-
【Excel VBA】マクロボタンを表...
-
メルカリのメルカードで買い物...
-
VBAでループ内で使う変数名を可...
-
日本語の文字化けを直す方法
-
汎用機(ACOS)におけるJCLの記...
-
エクセルの画面にユーザーフォ...
-
エクセルで、日付を入力すると...
-
EXCEL VBA 複数のImageコントロ...
-
パソコンについて GPUをCPUの代...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS DCOUNTの抽出条件について
-
アクセスで定数を利用したい。
-
データがあれば○○なければのSQL
-
Access vbaで重複レコードの削...
-
【access】複数のフィールドの...
-
sql文で削除クエリを書く
-
VBAでテーブル名とカラム名を動...
-
【PHP/MySQL】コード上で生成...
-
DAOでSQLServerに接続し、LeftJ...
-
Accessリンクするテーブルが見...
-
ACCESSで購入回数を表示する方...
-
ACCESS VBAでテーブル内の特定...
-
CMD.Executeの結果をメッセージ...
-
アクセスのテーブルのフィール...
-
BBSのレスを表示させるためのSQ...
-
SQL EXCEL VBA 接続
-
重複した複数のレコードを1レ...
-
社員名簿から検索する関数
-
Access から Excelのシートをイ...
-
Accessについて
おすすめ情報