電子書籍の厳選無料作品が豊富!

現在仕事でデータ移行プログラムを作成しています。
内容的にはCSVファイルからデータを読み出し、多少のチェック後、
DBのテーブルに登録するといったものです。

今回何を質問しているかというと
CSVを一行ごとに読み込んでチェック、テーブルへ登録していたのですが、
チェック項目には全体のデータを参照しないと確認できない項目が
追加されました。

この項目をチェックするために一時的にCSVから読んだデータを登録しておける
テーブルを作ったりしたいのですが、それができるかと
もしできるのであればその方法も教えていただきたいです。

環境は
言語:VB6.0
DB:SQLSerever2000
です。

ほぼ未経験で開発の現場に入ってしまったため困っています。
もしお分かりの方いらっしゃいましたらお力貸していただけないでしょうか。

よろしくお願いします。

A 回答 (4件)

SQLSerever上にテンポラリテーブルを作って使用すれば良いと思いますが。


テーブル名の先頭に#を付けると一時テーブルとして認識されます。 一時テーブルは通常のテーブルと同じように操作することができます。接続が閉じられると自動的に消去されます。
例えばCSVファイルをTextfileとして
Dim strSQL As String
Dim cn As ADODB.Connection
   ・
' SQLServerへ接続を確立してTextfileから一時テーブルを作成する
strSQL = "select Textfile into #TempTable from Textfile"
cn.Execute strSQL

' 取得したレコードの確認のための処理をする

cn.Closeで接続が閉じられると一時テーブルは消滅する。
こんな感じではどうでしょうか。
    • good
    • 0

s_husky です。


昔ながらの我流に固執するのは良くありません。1#は、ゴミと認識して下さい。
    • good
    • 0

#2の方のように素直にテンポラリーテーブルを使用したほうが良いと思います


サーバがクライアントよりしょぼいハードウェアを使用している場合や通信環境が影響するかなりの遠隔地でないかぎりSQLServerの処理エンジンを使用したほうが高速です
SQL Serverではさらにテンポラリーストアドプロシージャも使用できます
T-SQLを使いこなせばチェックしてそのままInsertまでサーバリソースを使用して行うことができるので便利です
    • good
    • 0

「SQL Server 2000 と一時テーブルの問題」に関する悩みは多いですね!ズバリという回答は少ないようです。

そこで、別角度からの私見と私流の処方を述べさせていただきます。
その昔は、構造体変数にレコード情報を記録しランダムファイルに記録していました。私は、この「構造体変数にレコード情報を記録する」という手法を、今でも使っています。この利点は、処理速度が確保される点にあります。なお、構造体変数は、当然のことながら配列変数です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!