コンテキスト:Windows7、VBScript、ADODBおよびADOX。ADODBコマンドと複雑なSQLコマンド?
データベースを作成し、3つのテーブルを作成し、そのうちの1つにデータを読み込み、これらのテーブルに対して一連のSQL文を発行しようとするVBScriptコードを記述しました。
最後のステップを除いてすべて正常に動作します:SQLステートメントは、Access独自のクエリビルダに取り込まれるとうまく動作します。 Access以外では動作しないようで、エラーメッセージはありません。 SQL文はエコーされ、明らかに実行されますが、アクセスデータベースの内容は変更されません。私は理由を理解することができません。
Const dbFile = "C:\database.mdb"
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Mode=Read|Write;Data Source=" & dbFile
...
Const adVarWChar = 202
Const adLongVarWChar = 203
Const adDouble = 5
Const adInteger = 3
Const adCmdText = 1
Const adLockOptimistic = 3
Const adOpenDynamic = 2
Const adCmdTable = &H0002
Const adUseClient = 3
...
Set objConn = CreateObject("ADODB.Connection")
objConn.CursorLocation = adUseClient
objConn.Open strDSN
Set objCmd = CreateObject("ADODB.Command")
Set o = createobject("Std.Ini2")
o.Load "C:\Queries.ini"
d = o.GetValue("Setup", "Queries", vbNullString)
a = Split(d, ", ")
For Each s In a
cmd = o.GetValue(s,"Query",vbNullString)
WScript.Echo cmd
With objCmd
Set .ActiveConnection = objConn
.CommandText = cmd
.CommandType = adCmdText
.CommandTimeout = 60
.Prepared = True
.Execute
End With
Next
Std.Ini2は、独自のツールの1つで、INIファイルとの対話です。 INIのうち
例スライスは、次のとおりです。
[Qry-01b-Delete Products from Extg product-import]
Query=DELETE [Product-import].* FROM [Product-import];
[Qry-02-Append Feed To Product-import]
Query=INSERT INTO [Product-import] (product_sku, product_name, product_price) SELECT Feed.Col1, Feed.Col2, Feed.Col3 FROM Feed;
[Qry-03a-Delete All Records From Exisiting Category Path Builder]
Query=DELETE [Tbl_Category Path builder].* FROM [Tbl_Category Path builder];
[Qry-03b-Append Products to Category Builder]
Query=INSERT INTO [Tbl_Category Path builder] (SKU, Product) SELECT Feed.Col1, Feed.Col2 FROM Feed;
3つのテーブルを、あなたが働いている可能性として、「製品のインポート」、「フィード」と呼ばれ、「Tbl_Categoryパスビルダー」。
VIZあなたは、例えば健全性チェックを行っていますそのテーブルの 'Feed'には、エラー処理がオンである(On Error Resume Next'を使用しないなど)、' RecordsAffected'プロパティなどを使用してトランザクションをコミットすることを省略していないというデータが実際に含まれています。 – onedaywhen
... there残念ながら、あなたのシナリオを再現し、エンドツーエンドでテストするのに十分な詳細はここにありません。より完全で単純化されたバージョンを投稿する可能性はありますか? – onedaywhen