ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

ACCESS MDB、数値項目 Null

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 .5 | 投稿日時 2016-8-30 16:33 | 最終変更
nkmt  長老   投稿数: 1668
ACCESS MDBをMagicから定義取得して、読取専用にしたODBC設定でMagicから読み、SQL Serverへデータ移行する処理を作っております。

Magicから見たMDBのとある数値項目がNull許可になっており、稀に数値ではなくNulllになっている事が判明しました。

SQL Serverへの書き出しリンクの条件に「その数値項目が 500番でない場合!」と設定をした所、数値項目がNullの分は、書き出しリンクが出来ませんでした。

そこで、Magicのデータリポジトリ上のMDBのその数値項目をNull許可しない!(読取専用なので物理変換も無し)にした所、先程の書き出しリンクが成功しました。

これはMagicがNullだな!許可しないになってるな!0扱いします!という事で、書き出しリンクが成功したという事で考え方は合ってますでしょうか?

以上を踏まえ、MDBを定義取得した後で、数値項目は全て
 Null 許可しない! に変えた方がいいような気がしました。

作法的に正しいのは、ISNULLで質問しながらがいいのかもしれませんが、それは大変なのでやりたくありません。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-8-30 18:08
Tanda  長老   投稿数: 2151
nkmtさん

見た限りではそれでいいような気もします。

ただ、AccessとSQL ServerはいずれもMicrosoftの製品ですので、
Accessから直接、SQL Server書き込みをして、そのあとにMagic
から定義取得したほうが簡単だとは思いますが。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2016-8-30 23:49 | 最終変更
nkmt  長老   投稿数: 1668
Tandaさん こんばんは。
返信ありがとうございます。

すみません、私の説明が不足しておりました。
ACCESS MDBを全く異なるレイアウトのSQL Serverのデータへ
値の変換などもかけながらの移行でした。

それと
Accessから直接、SQL Server書き込みをして・・・
とありましたが、SQL ServerもODBCに登録出来るのですね。

実験した所、ACCESS MDB上のデータを直接SQL Serverへエクスポート出来ました。
またいずれ使う事も有ると思います。
教えて下さりありがとうございました。

追伸:MDBのデータをSQL Serverへエクスポート後、Management Studioでデータ閲覧するとNullになってる箇所がよくわかりますね。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-8-31 12:30
Tanda  長老   投稿数: 2151
nkmtさん

はい、変換自体もAccess内で事前にやっておくほうが、ODBCを
経由しないぶん、手間も不具合も回避できるかと思います。

それと、Accessはすでに純正でSQL Serverへの書き込みができ
たと思いますが、ODBC経由でやられたのでしょうか?
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2016-8-31 13:18
nkmt  長老   投稿数: 1668
ACCESSのMDBをODBC登録し、Magicからそれを定義取得して読むのが今回の案件には最適でした。
(データ移行を何度も何度も試しているので。)

> それと、Accessはすでに純正でSQL Serverへの
> 書き込みができたと思いますが、ODBC経由で
> やられたのでしょうか?

そうですね。SQL ServerをODBC登録し、
ACCESSからエクスポート → ODBC・・・SQL Server
を今回初めて経験しました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-8-31 13:33
Tanda  長老   投稿数: 2151
nkmtさん

参考までですが。

Magicに取り込む前の処理手順として、AccessとSQL Serverとの
間だけのやり取りだけでしたら、ODBCはいっさい経由しないで
いけるはずですよ。もともと、ODBCはMicrosoftが考案した
手続きでして、Microsoft製の製品以外とのやり取りでデータを
行き来させる目的でできたものですので。

Microsoftとしては、MDBはいずれ全面的にSQL Serverに移行させ
たい考えなのだと思います。
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-8-31 17:49
pu_mahalo  長老 居住地: 大阪  投稿数: 775
Puです

方法1)Management Studioでimportする 
   import元 AccessのMDB
import先 sql client

方法2)Management Studioで AccessのMDBをリンクして
insert into 文でSQLserverのTBLに流し込む


方法3)SSIS(SQL Server Integration Service)で変換する
でわ〜でわ〜
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-8-31 23:04 | 最終変更
nkmt  長老   投稿数: 1668
Tandaさん、Puさん、情報ありがとうございます。

方法1だけわかりました。

方法3は在りかはわかりましたが、使い方がわかりませんでした。

方法2は64bitOSのせいなのか
Microsoft Jet 4.0 OLE DB Provider
が出てきませんでした。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約