🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: fj.lang.visualbasic
2 messages
2 total messages Started by Hirofumi Sun, 18 Jan 1998 00:00
ODBC呼び出し失敗(トランザクション)
#798
Author: Hirofumi
Date: Sun, 18 Jan 1998 00:00
51 lines
2064 bytes
はじめまして。

サーバとクライアント双方にNT4.0を使用しています。
サーバ上でSQLサーバを稼動し、クライアントからVBを使用してアクセス
するプログラムを作成していますが、次のようなコードを実行すると
実行時エラー 3146(ODBC呼び出しは失敗しました) が発生します。

要約すると、トランザクション中であるテーブルをオープンし、追加・変更を
行った後クローズし、後程オープンし直そうとするとエラーがおきます。
SQLサーバへはACCESSのMDBでテーブルをリンクさせ、
Jet経由でアクセスしています。

SQLサーバにあるテーブルをローカルのMDBに作成して同じ操作を
実行した場合はもんだいなくどうさします。

そこで質問ですが、

1、原因はなんでしょう?
2、この現象に遭った方、どのように回避されたのでしょうか(代替案など)

以下、サンプルです。

	dim DB as database
	dim SQL as string
	dim REC as Recordset
	dim DBNAME as string

	DBNAME="C\Projects\DB\TEST.mdb"

	set DB = DBEngine.Workspaces.OpenDatabase(DBNAME)

	DBEngine.Workspaces(0).BeginTrans

	SQL = "Select * From Table1"
	set REC = DB.OpenRecordset(SQL,dbOpenDynaset)

	REC.Addnew
	REC.Fields(0) = 9999
	REC.Fields(1) = 1111
	REC.Update
	
	REC.Close	'テーブルをいったんクローズ
	
	'ここでDBとは関係ない処理をしばらく行う

	’同じテーブルをオープン
	SQL = "Select * From Table1"
	set REC = DB.OpenRecordset(SQL,dbOpenSnapshot)'!!!ここでエラー
	
以上、よろしくお願いいたします。
Re: ODBC呼び出し失敗(トランザクション)
#804
Author: 長久保
Date: Mon, 19 Jan 1998 00:00
23 lines
1121 bytes


Hirofumi <bintang@mitene.or.jp> wrote in article
<34C2164F.51DD9316@mitene.or.jp>...
(略)
> 	set DB = DBEngine.Workspaces.OpenDatabase(DBNAME)
> 
> 	DBEngine.Workspaces(0).BeginTrans
> 
> 	SQL = "Select * From Table1"
> 	set REC = DB.OpenRecordset(SQL,dbOpenDynaset)
> 
> 	REC.Addnew
> 	REC.Fields(0) = 9999
> 	REC.Fields(1) = 1111
> 	REC.Update
> 	
> 	REC.Close	'テーブルをいったんクローズ
CommitTrans をやってないからとかいう問題じゃないですよね

-- 
よろずや kin-chan
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads