• ベストアンサー

一時的なワークスペースのようなものはありますか?

現在仕事でデータ移行プログラムを作成しています。 内容的にはCSVファイルからデータを読み出し、多少のチェック後、 DBのテーブルに登録するといったものです。 今回何を質問しているかというと CSVを一行ごとに読み込んでチェック、テーブルへ登録していたのですが、 チェック項目には全体のデータを参照しないと確認できない項目が 追加されました。 この項目をチェックするために一時的にCSVから読んだデータを登録しておける テーブルを作ったりしたいのですが、それができるかと もしできるのであればその方法も教えていただきたいです。 環境は 言語:VB6.0 DB:SQLSerever2000 です。 ほぼ未経験で開発の現場に入ってしまったため困っています。 もしお分かりの方いらっしゃいましたらお力貸していただけないでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

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で接続が閉じられると一時テーブルは消滅する。 こんな感じではどうでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

noname#22222
noname#22222
回答No.4

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

全文を見る
すると、全ての回答が全文表示されます。
  • 7marine
  • ベストアンサー率36% (59/160)
回答No.3

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

全文を見る
すると、全ての回答が全文表示されます。
noname#22222
noname#22222
回答No.1

「SQL Server 2000 と一時テーブルの問題」に関する悩みは多いですね!ズバリという回答は少ないようです。そこで、別角度からの私見と私流の処方を述べさせていただきます。 その昔は、構造体変数にレコード情報を記録しランダムファイルに記録していました。私は、この「構造体変数にレコード情報を記録する」という手法を、今でも使っています。この利点は、処理速度が確保される点にあります。なお、構造体変数は、当然のことながら配列変数です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CSVデータの取り込み

    開発環境 言語 VB6.0 DB  ACCESS 一つ目は、CSVデータをACCESSに保存したいのですがどうしたらいいですか? 開発環境 言語 VB6.0 DB  ORACLE9i 二つ目は、CSVデータをORACLE9iに保存したいのですがどうしたいいですか? どうかよろしくお願いします。

  • オラクル データ移行について

    こんにちは 2つのDBより新しい1つのDBにテータを移行することになりました。 VB.NETでプログラムを作成し移行しようと思っています。 今までは1つのDB内での移行は行った事があります。 今、悩んでいるのは他のDBのテーブルを参照したいのですが方法がわかりません。 よろしかったら教えていただけませんか? オラクルバージョンは11Gです。 VB.NET2008でプログラムを作成するつもりです。 よろしくお願いいたします。

  • テーブルの作り方で困っています

    Oracle10gを使っています。 項目の順番がバラバラなcsvのデータを並べ換えてテーブルに登録したいのですが、 項目数はcsvによって違っていて、テーブルに登録する項目の数もcsvによって変わります。 例) AAA.csvの場合 元々は1,2,3,4,5,6の順番で項目が並んでいるが、登録する項目と順番は→3,1,2,4,5 BBB.csvの場合 元々は1,2,3,4,5,6の順番で項目が並んでいるが、登録すると項目と順番は→2,3,1,5,4,6 (AAA.csvとは違って、6番目の項目もテーブルに登録したい) といった感じです。 登録するテーブルはデータをプールする場所で、本登録するテーブルにこのテーブルのデータを移したら移し元のデータを消そうと思っています。 登録する側のテーブルの項目数がはっきりと決められないので、毎回テーブルをドロップ→違う項目数で再作成しようかとも思ったのですが、複数の人がこの処理を行いたい場合はやっぱりやめておいたほうがいいですよね? 分かり難い質問で申し訳ありません…。 何か良い知恵がありましたら、ご教授願います。 よろしくお願いします。

  • access → Oracleへのデータ移行(VB.NETで)

    お知恵を貸してください。 ただ今、VB.NETでアクセスで開発されたアプリケーションを、 VB.NETに移行する開発をしているのですが、その中で、 現在のDBはアクセス、移行後のDBはオラクル10gなんですが、 何か良い移行方法は無いでしょうか? ちなみに、テーブル名、レコード名は変更しますので、そのまま移行ではありません。 私が考えているのは、アクセスのデータをエクセルにコピペし、 それを.NETで読み込んでテープルに入れて1レコードずつ オラクルに書き込んで行こうと考えております。 しかし、上記の方法でエクセルの読込方法が良く分かりません。 一旦、エクセルに取込む方法の場合の読込方法を教えてください。 また、もっと効率の良い方法をご存知でしたら教えてください。 開発環境は  OS : windows XP Pro 開発ソフト : VB.NET DB : Access 2003 SP2 DB : Oracle 10g です。なにぶん、VBでの開発経験が浅いので、 猿でも分かるように(W)お教えいただけると幸いです。

  • Access ODBCからのリンクのリレーションシップ

    教えてください。 今 Access2000を使ってDBを作っています。 なんとかODBCにテーブルを置いてリンクさせるところまで たどり着いたのですが、 そのテーブルを使ってリレーションシップを組もうと思うと 参照整合性他2つあるチェック項目がチェックできない 状態になってしまっています。 (参照整合性にチェックを入れたいのですが) なぜなのでしょうか? もうさっぱりわからず・・・ どなたか教えてください。

  • DATE型の省略値について

    環境:Oracle9i 9.2.0 言語:VB6 日付型の項目に秒まで設定しているデータがあります。 そのデータがたまたま0時ぴったりに登録されました。 「2006/04/06 00:00:00」の状態で登録されましたが、その後VBアプリから上記項目を取得しようとすると「2006/04/06」のみで取得されてしまいます。 ある人に確認すると内部的に省略されてるからだということです。 VBアプリからの取得時に「2006/04/06 00:00:00」で取得するようにできますでしょうか? 上記問題はデータをCSVでバックアップする為の目的で発生しており、CSV出力機能はVB6で作成しています。 内容はユーザ所有テーブル名称を全て読込み、その中でSQL文を作成し実行しています。その為、TO_CHAR関数などをSQLに明示的に設定はできればしたくないです。 Oracleの設定などで省略しないように変更ができる方法などありませんでしょうか? どなたかアドバイスお願い致します。

  • VB.NET DataGridView Web連携

    VB.NETの開発でアプリの実行端末にDB接続の環境がない可能性を考えてWebアプリとの連携を考えています VB.NETで開発したフォームのDataGridViewに表示するデータをWebアプリ(ASP、サーブレットなど)と連携するためにはどうすれば良いですか? 考えているのは単純にURLにパラメータを付けてReqeustして結果をカンマ区切りなどで出力したデータをResponseし、一行ずつ分解してDataGridViewの項目に設定していけばいいのかな?って思っています。 他に良いやり方などあれば教えて頂きたいです。

  • CSV変換

    現在VBからAccessにあるデータをCSVでエクセルに吐き出すという処理をおこなっているのですが、今やってる方法はAccessのテーブルにある項目を一つ一つプログラムによって出力しているのですがテーブルにある項目全てを一気にCSVに変換する方法はありますでしょうか?

  • 処理速度の見積もり時間について。

    処理速度の見積もり時間について。 Oracle 10gを使用し開発を行っています。 処理速度について伺いたいことがあり、投稿致しました。 現在、PL/SQLを使用しCSVファイルよりデータを読み込み、 テーブルをチェックし、条件に合致するようならデータのUPDATEを 行うという処理をしています。 このCSVファイルのデータは何百万件と大量のデータで、 処理速度を懸念しております。 そこで処理速度についてですが、どのようにすれば見積もることが できるのでしょうか? 具体的な方法をご教授頂けるとありがたいです。 そもそもCSVファイルを一行ずつ読み込んで、テーブルに対し UPDATEを掛けるというやり方自体間違っているのでしょうか? 一時テーブル等を使用した方が良いのではないかとも思うのですが・・・。 以上、宜しくお願い致します。

  • vb.netからpsqlコマンドを実行するには

    DBサーバー:Linux、Postgresql 8.4.9 クライアント:Windows7 pro、vb.net 2010 にて開発を行っております。 ■経緯 copyコマンドを使用して、クライアントにあるcsvファイルのデータを DBテーブルに一括登録したいと考えております。 まず、「COPY table FROM 'csvファイルパス' 」で試したところ、  ファイル経由のCOPY FROM、COPY TOを行うにはスーパーユーザでなければなりません  標準入出力経由のCOPYは誰でも実行可能です。またpsqlの\\copyも誰でも実行できます 旨のエラーが返ってきた為、下記の方法を考えております。 ■質問内容 psqlからのcopyにより、登録を行おうと考えている。 その際に、vb.netからpsqlコマンドの実行がそもそも可能なのかどうか、 (Linux上のpsqlコマンドなのだから、vb.netから実行できない?) 根本的なところからの質問となってしまいますが よろしくお願いいたします。 また、上記実装を開設してるサイトなどもございましたら、 ご教授願います。よろしくお願いいたします。

このQ&Aのポイント
  • Windows11でパーソナル編集長Ver.14を再インストール後、作業中にシャットダウンしてしまう問題に困っています。
  • 現在のバージョンで作業したいが、アップグレードしても同じ状況になるか不安です。
  • ソースネクスト株式会社の製品・サービスに関する質問です。
回答を見る