[pgsql-jp: 38008] MS-AccessでODBC接続時に更新ができない

加藤 丈晴 takeharu.kato.cp @ hitachi.com
2007年 2月 13日 (火) 14:19:11 JST


いつも拝見させていただいております。
加藤と申します。

本件ですが、原因究明方法が分からず四苦八苦しております。

現在、新規システム開発で、VineLinux上でのPostgreSQL運用を考えて
おります。
この環境でテーブルをCreateし,試しにMS AccessからODBC接続して,
テーブルへのInsert,Select,Updateを試したところ,Updateのみができ
ないという問題が発生しました。
<下記環境1>

 
状況把握のために,Windows環境のPostgreSQLでも同じ現象が出るか確認
したところ,Windows版では正常に動作します。
<下記環境2>


試しに,テーブルのCreate時に,DEFAULT now()を外した環境を構築して
みたところ,これも正常に動作しました。
(下記環境1で,Create Table文中のDEFAULT now()のみ外す)

以上を総合すると,DEFAULT now()を使用するにあたって,PostgreSQLの
環境設定等に不具合があったのかもしれないと考えております。
お心当たりのある方がございましたら,ご教授願いたく。

<環境1>
 	サーバ:
 		OS:VineLinux4.0
 		PostgreSQL 8.2.1 (ソースからコンパイル)

 	postgresql.conf修正箇所
 		# ERROR REPORTING AND LOGGING 項目
 		log_destination = 'stderr'
 		redirect_stderr = on
 		log_directory = 'pg_log'

 		# RUNTIME STATISTICS
 		stats_start_collector = on
 		stats_row_lovel = on

 		# AUTOVACUUM PARAMETERS
 		autovacuum = on

 	contrib の AdminPack の組込み
 	
 	クライアント:
 		OS:WindowsXP Pro
 		PostgreSQL8.2.1 on Windows(バイナリー配布版)
 		MS Access2003	(ODBC接続)


<環境2>
 	サーバ:
 		OS:Windows2000Server
 		PostgreSQL8.2.1 on Windows (バイナリー配布版)

 	クライアント:(環境1と同じクライアント)


<環境1,環境2共通>
データベース作成
 	Create database testdb ENCODING = 'EUC_JP';

テーブル作成
 	Create Table rbg.nht_Mitsumori(
		Mitsumori_No		VarChar(15)
 		,Zaiko_CD		VarChar(10)
 		,Kyoten_CD		VarChar(10)
 		,Torihikisaki_CD	VarChar(10)
 		,Torihikisaki_Name	VarChar(50)
 		,Hinmei			VarChar(100)
 		,Tani			VarChar(10)
 		,Tanka			Numeric(9,3)
 		,Mitsumori_Nengetsu	VarChar(10)
 		,Saiyo_FG		VarChar(1)
 		,Raireki_No		Numeric(3)	DEFAULT 1
 		,Insert_Date		Timestamp	DEFAULT now()
 		,Update_Date		Timestamp
 		,Del_Date		Timestamp
 		,Update_User		VarChar(15)
 		,IP_Addr		inet		DEFAULT inet_client_addr()
 		,IP_Addr2		inet
 		,SYS_NAME		VARCHAR(50)
 		,Lock_Date		Date
 		,CRCD			Numeric(1)	DEFAULT 2
 		,CONSTRAINT	nhi_mitsumori	PRIMARY KEY (Mitsumori_No)
 	)
 	;

<メッセージ>
	-------------------------------------------------------------------------------
 	データの競合
 	このレコードは他のユーザによって変更されています。[レコードの保存]を選択すると、
 	他のユーザを無視し、自分が行った変更を反映します。

 	[クリップボードにコピー]を選択すると、変更したデータはクリップボードにコピーされ、
 	他のユーザによる変更が反映されます。必要に応じて、クリップボードのデータを貼り付け、
	自分が変更したデータに戻すことができます。

	-------------------------------------------------------------------------------
	と表示され、[レコードの保存]が非アクティブになっております。

以上







pgsql-jp メーリングリストの案内