Access MDBの読込みでエラー
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
makiyama
居住地: 静岡県
投稿数: 13
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
Access MDB(以降、MDBと表記します)のレコードを読み込んで、そのレコードをそのままPervasiveに登録・更新するタスクを実行したところ、以下の現象が発生して困っております。
【環境】
・uniPaaS Version 1.9g PT1
・MDB(Access95形式)をODBC経由で参照
・Pervasive PSQL Summit v10
【現象】
1. 実行中に以下のメッセージが表示される。
「処理に失敗しました.他のユーザか処理によってレコードが変更されています.データソース: [MDBのテーブル名]」
2. Pervasiveを参照すると、登録されたデータの末尾に他のデータの一部と思われるゴミが付いてしまう(文字種問わず)。
例)正:大阪府 誤:大阪府県 ※MDBには「大阪府」と登録されている
例)正:123456 誤:123456012 ※MDBには「123456」と登録されている
1.の現象については、ログを確認したところ、MDBのフィールド「処理済区分」を更新するUPDATE文でNO_DATA_FOUNDが発生したことに起因しているようですが、タスクには処理済区分以外のMDBへの更新処理は無く、外部プログラムからのMDBへのアクセスは無いので、NO_DATA_FOUNDになること自体が理解できないのです。
今回新たに2.の現象が確認されたことで、uniPaaS内部でバッファをクリアせずに上書きしたためにデータがおかしくなり、UPDATE文のWHERE句の条件に合致せずに1.の現象が発生し、2.のようなデータが登録されているのではないかと想像しています。
Magicプログラム未経験のため、設定漏れなどがありそうな気がしています。
ご存知なことや疑わしい点などがありましたら、ご教示頂ければ幸いです。
よろしくお願いいたします。
【環境】
・uniPaaS Version 1.9g PT1
・MDB(Access95形式)をODBC経由で参照
・Pervasive PSQL Summit v10
【現象】
1. 実行中に以下のメッセージが表示される。
「処理に失敗しました.他のユーザか処理によってレコードが変更されています.データソース: [MDBのテーブル名]」
2. Pervasiveを参照すると、登録されたデータの末尾に他のデータの一部と思われるゴミが付いてしまう(文字種問わず)。
例)正:大阪府 誤:大阪府県 ※MDBには「大阪府」と登録されている
例)正:123456 誤:123456012 ※MDBには「123456」と登録されている
1.の現象については、ログを確認したところ、MDBのフィールド「処理済区分」を更新するUPDATE文でNO_DATA_FOUNDが発生したことに起因しているようですが、タスクには処理済区分以外のMDBへの更新処理は無く、外部プログラムからのMDBへのアクセスは無いので、NO_DATA_FOUNDになること自体が理解できないのです。
今回新たに2.の現象が確認されたことで、uniPaaS内部でバッファをクリアせずに上書きしたためにデータがおかしくなり、UPDATE文のWHERE句の条件に合致せずに1.の現象が発生し、2.のようなデータが登録されているのではないかと想像しています。
Magicプログラム未経験のため、設定漏れなどがありそうな気がしています。
ご存知なことや疑わしい点などがありましたら、ご教示頂ければ幸いです。
よろしくお願いいたします。
投票数:0
平均点:0.00
nobukoshi802
投稿数: 118
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
uniPaasは、ODBCは動作対象外になっているので
AccessMDBをMS-SQLに変換後
uniPaasで操作する方法はダメですか?
AccessMDBをMS-SQLに変換後
uniPaasで操作する方法はダメですか?
投票数:0
平均点:0.00
makiyama
居住地: 静岡県
投稿数: 13
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
nobukoshi802様
ご回答ありがとうございます。
確かにODBCは動作保証の対象外なんですよね。私も少々気になってはいたものの、V7で動作していたという実績と、なんとなく動作していたので大丈夫だと信じていました。
再度デバッグモードで、ODBC経由で取得直後のデータを参照しながら実行したところ、取得時点で既におかしな状況になっていました。ODBCドライバのバグかも…ですね。
とりあえず、ODBCを介さない方法を検討してみます。
ご回答ありがとうございます。
確かにODBCは動作保証の対象外なんですよね。私も少々気になってはいたものの、V7で動作していたという実績と、なんとなく動作していたので大丈夫だと信じていました。
再度デバッグモードで、ODBC経由で取得直後のデータを参照しながら実行したところ、取得時点で既におかしな状況になっていました。ODBCドライバのバグかも…ですね。
とりあえず、ODBCを介さない方法を検討してみます。
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
こんにちは。ちょっと時間空きましたけど。
似たような環境でACCESS MDBのデータを
Magicから読み込む事はよく行っております。
uniPaaS Version 1.9g
ACCESS MDBは2000か2003形式
Pervasive PSQL Summit v10
コントロールパネル → データソース(ODBC)
ユーザーDSN を作成。
Magic側で、データベースを作成。
Magicアプリケーション側で
データソース名に、ACCESSのテーブル名を指定し定義取得。
読み込めますよ。
他社が作成したMDBデータをMagicに取り込むとかよく行います。
似たような環境でACCESS MDBのデータを
Magicから読み込む事はよく行っております。
uniPaaS Version 1.9g
ACCESS MDBは2000か2003形式
Pervasive PSQL Summit v10
コントロールパネル → データソース(ODBC)
ユーザーDSN を作成。
Magic側で、データベースを作成。
Magicアプリケーション側で
データソース名に、ACCESSのテーブル名を指定し定義取得。
読み込めますよ。
他社が作成したMDBデータをMagicに取り込むとかよく行います。
投票数:3
平均点:10.00
makiyama
居住地: 静岡県
投稿数: 13
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
nkmt様
随分とお返事が遅くなりまして、申し訳ございません。
nkmt様からの回答通りにデータ定義をやり直したところ、文字型で定義されていた部分が悉くUnicodeで定義しなければならなかったことが判明しました。データ定義をやり直したプログラムで実行したところ、問題がすべて解決されました。
数ヶ月に渡って悩みに悩んで解決せぬまま、リリースまで1ヵ月というところだったので、心から安堵しております。ありがとうございました!!(^-^)
随分とお返事が遅くなりまして、申し訳ございません。
nkmt様からの回答通りにデータ定義をやり直したところ、文字型で定義されていた部分が悉くUnicodeで定義しなければならなかったことが判明しました。データ定義をやり直したプログラムで実行したところ、問題がすべて解決されました。
数ヶ月に渡って悩みに悩んで解決せぬまま、リリースまで1ヵ月というところだったので、心から安堵しております。ありがとうございました!!(^-^)
投票数:0
平均点:0.00