ACCESS MDB、数値項目 Null
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
ACCESS MDBをMagicから定義取得して、読取専用にしたODBC設定でMagicから読み、SQL Serverへデータ移行する処理を作っております。
Magicから見たMDBのとある数値項目がNull許可になっており、稀に数値ではなくNulllになっている事が判明しました。
SQL Serverへの書き出しリンクの条件に「その数値項目が 500番でない場合!」と設定をした所、数値項目がNullの分は、書き出しリンクが出来ませんでした。
そこで、Magicのデータリポジトリ上のMDBのその数値項目をNull許可しない!(読取専用なので物理変換も無し)にした所、先程の書き出しリンクが成功しました。
これはMagicがNullだな!許可しないになってるな!0扱いします!という事で、書き出しリンクが成功したという事で考え方は合ってますでしょうか?
以上を踏まえ、MDBを定義取得した後で、数値項目は全て
Null 許可しない! に変えた方がいいような気がしました。
作法的に正しいのは、ISNULLで質問しながらがいいのかもしれませんが、それは大変なのでやりたくありません。
Magicから見たMDBのとある数値項目がNull許可になっており、稀に数値ではなくNulllになっている事が判明しました。
SQL Serverへの書き出しリンクの条件に「その数値項目が 500番でない場合!」と設定をした所、数値項目がNullの分は、書き出しリンクが出来ませんでした。
そこで、Magicのデータリポジトリ上のMDBのその数値項目をNull許可しない!(読取専用なので物理変換も無し)にした所、先程の書き出しリンクが成功しました。
これはMagicがNullだな!許可しないになってるな!0扱いします!という事で、書き出しリンクが成功したという事で考え方は合ってますでしょうか?
以上を踏まえ、MDBを定義取得した後で、数値項目は全て
Null 許可しない! に変えた方がいいような気がしました。
作法的に正しいのは、ISNULLで質問しながらがいいのかもしれませんが、それは大変なのでやりたくありません。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
nkmtさん
見た限りではそれでいいような気もします。
ただ、AccessとSQL ServerはいずれもMicrosoftの製品ですので、
Accessから直接、SQL Server書き込みをして、そのあとにMagic
から定義取得したほうが簡単だとは思いますが。
見た限りではそれでいいような気もします。
ただ、AccessとSQL ServerはいずれもMicrosoftの製品ですので、
Accessから直接、SQL Server書き込みをして、そのあとにMagic
から定義取得したほうが簡単だとは思いますが。
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
Tandaさん こんばんは。
返信ありがとうございます。
すみません、私の説明が不足しておりました。
ACCESS MDBを全く異なるレイアウトのSQL Serverのデータへ
値の変換などもかけながらの移行でした。
それと
Accessから直接、SQL Server書き込みをして・・・
とありましたが、SQL ServerもODBCに登録出来るのですね。
実験した所、ACCESS MDB上のデータを直接SQL Serverへエクスポート出来ました。
またいずれ使う事も有ると思います。
教えて下さりありがとうございました。
追伸:MDBのデータをSQL Serverへエクスポート後、Management Studioでデータ閲覧するとNullになってる箇所がよくわかりますね。
返信ありがとうございます。
すみません、私の説明が不足しておりました。
ACCESS MDBを全く異なるレイアウトのSQL Serverのデータへ
値の変換などもかけながらの移行でした。
それと
Accessから直接、SQL Server書き込みをして・・・
とありましたが、SQL ServerもODBCに登録出来るのですね。
実験した所、ACCESS MDB上のデータを直接SQL Serverへエクスポート出来ました。
またいずれ使う事も有ると思います。
教えて下さりありがとうございました。
追伸:MDBのデータをSQL Serverへエクスポート後、Management Studioでデータ閲覧するとNullになってる箇所がよくわかりますね。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
nkmtさん
はい、変換自体もAccess内で事前にやっておくほうが、ODBCを
経由しないぶん、手間も不具合も回避できるかと思います。
それと、Accessはすでに純正でSQL Serverへの書き込みができ
たと思いますが、ODBC経由でやられたのでしょうか?
はい、変換自体もAccess内で事前にやっておくほうが、ODBCを
経由しないぶん、手間も不具合も回避できるかと思います。
それと、Accessはすでに純正でSQL Serverへの書き込みができ
たと思いますが、ODBC経由でやられたのでしょうか?
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
ACCESSのMDBをODBC登録し、Magicからそれを定義取得して読むのが今回の案件には最適でした。
(データ移行を何度も何度も試しているので。)
> それと、Accessはすでに純正でSQL Serverへの
> 書き込みができたと思いますが、ODBC経由で
> やられたのでしょうか?
そうですね。SQL ServerをODBC登録し、
ACCESSからエクスポート → ODBC・・・SQL Server
を今回初めて経験しました。
(データ移行を何度も何度も試しているので。)
> それと、Accessはすでに純正でSQL Serverへの
> 書き込みができたと思いますが、ODBC経由で
> やられたのでしょうか?
そうですね。SQL ServerをODBC登録し、
ACCESSからエクスポート → ODBC・・・SQL Server
を今回初めて経験しました。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
nkmtさん
参考までですが。
Magicに取り込む前の処理手順として、AccessとSQL Serverとの
間だけのやり取りだけでしたら、ODBCはいっさい経由しないで
いけるはずですよ。もともと、ODBCはMicrosoftが考案した
手続きでして、Microsoft製の製品以外とのやり取りでデータを
行き来させる目的でできたものですので。
Microsoftとしては、MDBはいずれ全面的にSQL Serverに移行させ
たい考えなのだと思います。
参考までですが。
Magicに取り込む前の処理手順として、AccessとSQL Serverとの
間だけのやり取りだけでしたら、ODBCはいっさい経由しないで
いけるはずですよ。もともと、ODBCはMicrosoftが考案した
手続きでして、Microsoft製の製品以外とのやり取りでデータを
行き来させる目的でできたものですので。
Microsoftとしては、MDBはいずれ全面的にSQL Serverに移行させ
たい考えなのだと思います。
投票数:1
平均点:10.00
pu_mahalo
居住地: 大阪
投稿数: 775
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
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)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
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
Tandaさん、Puさん、情報ありがとうございます。
方法1だけわかりました。
方法3は在りかはわかりましたが、使い方がわかりませんでした。
方法2は64bitOSのせいなのか
Microsoft Jet 4.0 OLE DB Provider
が出てきませんでした。
方法1だけわかりました。
方法3は在りかはわかりましたが、使い方がわかりませんでした。
方法2は64bitOSのせいなのか
Microsoft Jet 4.0 OLE DB Provider
が出てきませんでした。
投票数:0
平均点:0.00