loop させるには?

解決


ハレルヤ  2007-06-04 20:14:58  No: 98876

いつもお世話になっております。
csvファイルを読み込み  既存のテーブルにUPDATEしようとしていますが、
どうLOOPすればいいかよくわかりません。
レコードが130行ぐらいあります。
環境は
  vb6.0 oracle 9  です。データベースとの接続はoo4o使ってます。


Dim strCSVLine    As String       'CSVレコード
Dim intFp         As Integer      'ファイル番号
Dim strFlie        As String       'CSVファイル
Dim strSqlmsg      As String       'SQL文格納
  strFlie = dir(\*.csv)
  intFp = FreeFile
 Open strFile For Input As #intFp
    Call CoOrcl_Connect  ' DBと接続
    Do While Not EOF(intFp)
        Line Input #intFp, strCSVLine
      strSqlmsg = "UPDATE JOKENMST SET ShOHINCD =strCSVLine "
  loop


通ってみた  2007-06-04 20:19:44  No: 98877

提示コード中の「Do」「Loop」がどのような意味を持っているか理解していますか?


モーヲタ  2007-06-04 20:22:50  No: 98878

>どうLOOPすればいいかよくわかりません。
貴方が既に示されているLOOP方法で良いと思いますが。。。

>Do While Not EOF(intFp)
>    Line Input #intFp, strCSVLine
>    strSqlmsg = "UPDATE JOKENMST SET ShOHINCD =strCSVLine "
>loop

もしかしてSQL文が記述できないと言いたいのでしょうか?
それではまず、csvと言っていますからカンマ区切りなのでしょう。
ではそのカンマ区切りで区切ってSQL文を生成すればよいです。
SQL文自体は貴方しか仕様を知らないので貴方自身で作っていく
しかないですよ(条件文など)。


ハレルヤ  2007-06-04 20:24:50  No: 98879

通ってみた 2007/06/04(月) 20:19:44 
提示コード中の「Do」「Loop」がどのような意味を持っているか理解していますか?

はい、
ただのLOOPさせるのはわかりますけど、
それをテーブルにUPDATAするのがちょっとわからないです。
テーブルのレコードも130ぐらいありますので


ハレルヤ  2007-06-04 20:30:46  No: 98880

モーヲタ様

CSVファイルとテーブルのレイアウトはまったく同じです。
テーブルの主キーと内容が違っていればUPDATAしようと思います。
こういう場合って  テーブルもLOOPさせないと全レコードをUPDATE
するのはむりですか?


モーヲタ  2007-06-04 20:42:57  No: 98881

>CSVファイルとテーブルのレイアウトはまったく同じです。
であればプログラム作るよりもSQLLoader使った方が速そうな気も。。。

>テーブルの主キーと内容が違っていればUPDATAしようと思います。
>こういう場合って  テーブルもLOOPさせないと全レコードをUPDATE
>するのはむりですか?

いいえ、UPDATEしようとする条件文のレコードが既にデータベースに
存在するか問い合わせれば良いです(SELECT文で)。
または反則技ではありますが強引に更新して重複エラーが起きたら
UPDATE文を発行するとか。。。(例外処理で引っかける)

#やはりDB関連の質問でしたか。
#質問内容が「どうLOOPしたらよいか分かりません」では
#回答者みなさん、LOOPの仕方が分からないのかなって思いますよ。
#質問は相手(回答者)に分かるように質問しましょう。


ハレルヤ  2007-06-04 20:45:45  No: 98882

すみません。  やっぱり  そうでした。
DBの全レコードをひとつの変数格納してから  実行したら
全レコードがUPDATEできました。  ありがとうございました。


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加