OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

VB6からSQLServer7に加工したデータを、正常に追加できません。なぜ?

  • 困ってます
  • 質問No.160736
  • 閲覧数134
  • ありがとう数19
  • 気になる数0
  • 回答数2
  • コメント数0

VB6から、SQLServerに対して
加工したデータを追加するプログラムをしています。
(環境:Windows2000 Pro + VB6[SP5] + SQLServer[7.0])

一度、「sampletable」のデータを全件削除した上で、
必ず2回以上実行するループ処理の中で、Insert文を発行しています。

がしかし、プログラム実行後にSQLServerのデータベースを検索してみると、
何故か、最後に実行したInsert文しか、正常に実行終了していないようなのです。
(最後のループ処理でInsertされたデータしか、追加されてないのです。)

何か、プログラム上で、おかしいところとか
抜けているところとかございましたら、教えて下さい。


<サンプルプログラム>
' SQL Server へ接続
Set cn = New ADODB.Connection
cn.Open "Provider=SQLOLEDB;" & _
"Data Source=(localhost);" & _
"Initial Catalog=database", "login", "passwd"

' 一度、テーブルデータを削除する
strSQL = "delete from sampletable"
Set rs = cn.Execute(strSQL)

Do 'このループ処理は、2回以上、必ず動作します。
・・・
(データ加工処理)
・・・

' データを追加する
strSQL = "INSERT INTO sampletable(xxx, xxx, xxx) " & _
"VALUES('" + HENSUU-A + "','" + HENSUU-B + "','" + HENSUU-C + "')"
Set rs = cn.Execute(strSQL)
Loop

' SQL Server 接続を閉じる
cn.Close
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル9

ベストアンサー率 28% (10/35)

同じようにやってみたらうまくいきました。

ので、予想ですが
「HENSUU-A」というのは数値ですか?
数値なら
「HENSUU-A + "','"」ここでエラーになってしまいそうな気がします。
文字列の結合には「&」がおすすめです。
お礼コメント
noname#2802

あーっ!
そうです。数値型でした(*^.^*)
いやぁ、お恥ずかしい限りです。
(いつも、SQL書くときって、シングルコーテを書くのがクセになってました・・・)
明日、試してみます。ありがとうございました。

と・こ・ろ・で、
エラーが発生したかどうかをチェックする方法って、どうすれば良いのでしょう?
そもそも、そういうロジックを入れておけば、原因がわかったのかも知れないのですが、
いかんせん、VBでDB処理するの初めてなもんで・・・。
もし良かったら、教えてくださいませ。
投稿日時 - 2001-10-31 22:05:09
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル9

ベストアンサー率 28% (10/35)

>(いつも、SQL書くときって、シングルコーテを書くのがクセになってました・・・) っていうか数値型と文字列を「+」で結合したら 型が一致しないってエラーになりそうな気がしたんですが・・・? > エラーが発生したかどうかをチェックする方法って、どうすれば良いのでしょう? エラーが発生しそうな場所より前に -------------- Sub Proc1() On ...続きを読む
>(いつも、SQL書くときって、シングルコーテを書くのがクセになってました・・・)
っていうか数値型と文字列を「+」で結合したら
型が一致しないってエラーになりそうな気がしたんですが・・・?

> エラーが発生したかどうかをチェックする方法って、どうすれば良いのでしょう?
エラーが発生しそうな場所より前に
--------------
Sub Proc1()
On Error Goto ErrProc
'エラーが発生しそうな処理
Exit Sub
ErrProc:
MsgBox "エラーが発生しました。"
End Sub
--------------
のように「On Error GoTo ErrProc」と
書いておけばエラーが発生したときにErrProcに飛んでくれます。
お礼コメント
noname#2802

無事に解決いたしました。
何から何まで、わかり易く親切に教えて頂いてありがとうございました。
投稿日時 - 2001-11-01 11:44:37


このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ