VB6で「|(パイプ区切り)」のtxtファイルをDBに登録するには?

解決


くまちゃん  2004-01-10 23:14:59  No: 111215  IP: [192.*.*.*]

「|(パイプ)」区切りで区切られたテキストファイルをSQL-SERVERのテーブルに書き込むにはどのようにしたらいいでしょうか?
教えていただけますでしょうか?
input関数を使ってみたのですが「,(カンマ)」区切りしか対応していないようなので・・・。



テキストファイル(test.txt)
AAAA|NNNN|CCC
BBB|PPP|OOOO

編集 削除
岡田 之仁  2004-01-10 23:45:25  No: 111216  IP: [192.*.*.*]

プログラムを作成する・・・と言う見地からですと、なんとでも
なる話ですが・・・

1.  VB6としては、Line Input で、1行づつ読み込み、ADO経由で
    SQL Serverにインサートしていく。
2.  テキスト形式のデータとして、一旦、アクセスのMDBに
    インポートして(区切り記号は、『|』と設定)、後、MDB
    からSQL Serverにエキスポートさせる。
    ※  何度も行う場合は、テーブル名の重複になりますので、
        そこは、プログラム的に回避するとか・・・

1.はプログラム次第・・・
2.はテストしてみましたが、まわりくどいですが、これもOK

プログラムの醍醐味のところだと思いますが・・

ご検討下さい。

以上。

編集 削除
岡田 之仁  2004-01-10 23:47:50  No: 111217  IP: [192.*.*.*]

追伸・・・

1.のLine Input で読み出していく部分は、区切り記号である『|』
を文字列中から探し出して、トークンとして、各項目を切り出すと
言う手法が必要です。

文字列中から文字列を探し出すのは、InStr()ですネ!

頑張って下さい!

以上。

編集 削除
oku  URL  2004-01-11 00:19:08  No: 111218  IP: [192.*.*.*]

Split 関数を調べてみてください。

編集 削除
くまちゃん  2004-01-11 09:53:41  No: 111219  IP: [192.*.*.*]

岡田さん、okuさん  レスありがとうございます。
Line Input で1行ずつ読み込み、読み込んだ値を、split関数を利用して1フィールドずつに分解し、テーブルへinsertしようとしたのですが、
そのあたりで、つまずいています。loopの考え方や、値のとり方についてももう少し詳しく教えていただけたら幸いです。

編集 削除
oku  URL  2004-01-12 02:09:10  No: 111220  IP: [192.*.*.*]

Split 関数は1次元配列に作成するので
配列の指定された次元で使用できる最小の添字から
配列の指定された次元で使用できる添字の最大値まで
For文で回せばいいかと
LBound 関数とUBound 関数を調べてみてください。

編集 削除
魔界の仮面弁士  2004-01-12 14:32:24  No: 111221  IP: [192.*.*.*]

> 「|(パイプ)」区切りで区切られたテキストファイルをSQL-SERVERのテーブルに書き込むにはどのようにしたらいいでしょうか?
SQL Serverの場合は、「データ変換サービス(DTS)」を使うのが一般的でしょう。

管理ツールをインストールしてある場合は、スタートメニューから、
[プログラム]-[Microsoft SQL Server]-[データのインポートとエクスポート]を
選択してみてください。あとは、ウィザードの指示に従えばOKです。

プログラムから制御する場合は、下記を参照してみてください。
http://www.microsoft.com/japan/msdn/sqlserver/columns/dts/dts1.asp

編集 削除
くまちゃん  2004-01-12 16:22:36  No: 111222  IP: [192.*.*.*]

みなさんありがとうございました
結果として、1行ずつ読み込み配列にいれ
それをLOOPでまわすようにしました。
ありがとうございました。これからもお願いします

編集 削除